2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-01 22:47:26 +00:00

refactor: use templated xmodel loading and dumping code for iw4

This commit is contained in:
Jan
2025-07-09 23:10:40 +01:00
parent a9c693d04d
commit 3daa8b0412
11 changed files with 70 additions and 563 deletions

View File

@@ -1,4 +1,4 @@
#options GAME (IW5, T5, T6)
#options GAME (IW4, IW5, T5, T6)
#filename "Game/" + GAME + "/XModel/XModelDumper" + GAME + ".cpp"
@@ -6,7 +6,10 @@
#set COMMON_HEADER "\"Game/" + GAME + "/Common" + GAME + ".h\""
#set JSON_HEADER "\"Game/" + GAME + "/XModel/JsonXModel" + GAME + ".h\""
#if GAME == "IW5"
#if GAME == "IW4"
#define FEATURE_IW4
#define GAME_LOWER "iw4"
#elif GAME == "IW5"
#define FEATURE_IW5
#define GAME_LOWER "iw5"
#elif GAME == "T5"
@@ -66,7 +69,7 @@ namespace
{
MaterialTextureDef* def = &material->textureTable[textureIndex];
#if defined(FEATURE_IW5)
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
if (def->semantic == TS_COLOR_MAP)
potentialTextureDefs.push_back(def);
#else
@@ -155,7 +158,7 @@ namespace
bool GetSurfaces(const XModel* model, const unsigned lod, XSurface*& surfs, unsigned& surfCount)
{
#if defined(FEATURE_IW5)
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
if (!model->lodInfo[lod].modelSurfs || !model->lodInfo[lod].modelSurfs->surfs)
return false;
@@ -722,7 +725,7 @@ namespace
if (xmodel.physPreset && xmodel.physPreset->name)
jXModel.physPreset = AssetName(xmodel.physPreset->name);
#if defined(FEATURE_IW5)
#if defined(FEATURE_IW4) || defined(FEATURE_IW5)
if (xmodel.physCollmap && xmodel.physCollmap->name)
jXModel.physCollmap = AssetName(xmodel.physCollmap->name);
#endif