feat: add templated iw4 material loading

This commit is contained in:
Jan
2025-06-26 22:25:29 +01:00
parent f897a41188
commit 2073265a86
17 changed files with 1924 additions and 1464 deletions

View File

@ -1,8 +1,12 @@
#options GAME (IW5, T6)
#options GAME (IW4, IW5, T6)
#filename "Game/" + GAME + "/Material/JsonMaterialWriter" + GAME + ".cpp"
#if GAME == "IW5"
#if GAME == "IW4"
#define FEATURE_IW4
#define HAS_WATER
#define GAME_LOWER "iw4"
#elif GAME == "IW5"
#define FEATURE_IW5
#define HAS_WATER
#define GAME_LOWER "iw5"
@ -214,7 +218,7 @@ namespace
assert(structured.alphaTestDisabled
|| structured.alphaTest == GFXS_ALPHA_TEST_GT_0
#ifdef FEATURE_IW5
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
|| structured.alphaTest == GFXS_ALPHA_TEST_LT_128
#endif
|| structured.alphaTest == GFXS_ALPHA_TEST_GE_128);
@ -222,7 +226,7 @@ namespace
jStateBitsTableEntry.alphaTest = JsonAlphaTest::DISABLED;
else if (structured.alphaTest == GFXS_ALPHA_TEST_GT_0)
jStateBitsTableEntry.alphaTest = JsonAlphaTest::GT0;
#ifdef FEATURE_IW5
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
else if (structured.alphaTest == GFXS_ALPHA_TEST_LT_128)
jStateBitsTableEntry.alphaTest = JsonAlphaTest::LT128;
#endif
@ -246,7 +250,7 @@ namespace
jStateBitsTableEntry.blendOpAlpha = static_cast<GfxBlendOp>(structured.blendOpAlpha);
jStateBitsTableEntry.colorWriteRgb = structured.colorWriteRgb;
jStateBitsTableEntry.colorWriteAlpha = structured.colorWriteAlpha;
#ifdef FEATURE_IW5
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
jStateBitsTableEntry.gammaWrite = structured.gammaWrite;
#endif
jStateBitsTableEntry.polymodeLine = structured.polymodeLine;