diff --git a/src/ObjWriting/Game/IW3/ObjWriterIW3.cpp b/src/ObjWriting/Game/IW3/ObjWriterIW3.cpp index b0b828c2..ee2bc480 100644 --- a/src/ObjWriting/Game/IW3/ObjWriterIW3.cpp +++ b/src/ObjWriting/Game/IW3/ObjWriterIW3.cpp @@ -3,6 +3,7 @@ #include "Game/IW3/Image/ImageDumperIW3.h" #include "Game/IW3/Material/MaterialJsonDumperIW3.h" #include "Game/IW3/Techset/TechsetDumperIW3.h" +#include "Game/IW3/XAnim/XAnimDumperIW3.h" #include "Game/IW3/XModel/XModelDumperIW3.h" #include "LightDef/LightDefDumperIW3.h" #include "Localize/LocalizeDumperIW3.h" @@ -12,7 +13,6 @@ #include "Sound/LoadedSoundDumperIW3.h" #include "Sound/SndCurveDumperIW3.h" #include "StringTable/StringTableDumperIW3.h" -#include "XAnim/XAnimDumperIW3.h" using namespace IW3; diff --git a/src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.h b/src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.h deleted file mode 100644 index 7b6b78d9..00000000 --- a/src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "Dumping/AbstractAssetDumper.h" -#include "Game/IW3/IW3.h" - -namespace xanim -{ - class DumperIW3 final : public AbstractAssetDumper - { - protected: - void DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) override; - }; -} // namespace xanim diff --git a/src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.cpp b/src/ObjWriting/XAnim/XAnimDumper.cpp.template similarity index 89% rename from src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.cpp rename to src/ObjWriting/XAnim/XAnimDumper.cpp.template index 6afba940..6f86e8e9 100644 --- a/src/ObjWriting/Game/IW3/XAnim/XAnimDumperIW3.cpp +++ b/src/ObjWriting/XAnim/XAnimDumper.cpp.template @@ -1,4 +1,26 @@ -#include "XAnimDumperIW3.h" +#options GAME(IW3) + +#filename "Game/" + GAME + "/XAnim/XAnimDumper" + GAME + ".cpp" + +#set DUMPER_HEADER "\"XAnimDumper" + GAME + ".h\"" + +#if GAME == "IW3" +#define FEATURE_IW3 +#elif GAME == "IW4" +#define FEATURE_IW4 +#elif GAME == "IW5" +#define FEATURE_IW5 +#elif GAME == "T5" +#define FEATURE_T5 +#elif GAME == "T6" +#define FEATURE_T6 +#endif + +// This file was templated. +// See XAnimDumper.cpp.template. +// Do not modify, changes will be lost. + +#include DUMPER_HEADER #include "XAnim/CompiledXAnimWriter.h" #include "XAnim/FlatXAnimReader.h" @@ -15,7 +37,7 @@ #include using namespace xanim; -using namespace IW3; +using namespace GAME; namespace { @@ -62,21 +84,21 @@ namespace CommonDeltaQuatTrack result; if (deltaQuat.size > 0) { - const auto frameCount = static_cast(deltaQuat.size) + 1uz; + const auto frameCount = static_cast(deltaQuat.size) + 1u; result.m_frames2.reserve(frameCount); result.m_indices.reserve(frameCount); - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) result.m_frames2.emplace_back(deltaQuat.u.frames.frames[i].value[0], deltaQuat.u.frames.frames[i].value[1]); if (useByteIndices) { - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) result.m_indices.emplace_back(deltaQuat.u.frames.indices._1[i]); } else { - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) result.m_indices.emplace_back(deltaQuat.u.frames.indices._2[i]); } @@ -107,23 +129,23 @@ namespace deltaTrans.u.frames.size.z, }; - const auto frameCount = static_cast(deltaTrans.size) + 1uz; + const auto frameCount = static_cast(deltaTrans.size) + 1u; result.m_indices.reserve(frameCount); if (useByteIndices) { - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) result.m_indices.emplace_back(static_cast(deltaTrans.u.frames.indices._1[i])); } else { - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) result.m_indices.emplace_back(deltaTrans.u.frames.indices._2[i]); } if (deltaTrans.smallTrans) { result.m_frames_u8.reserve(frameCount); - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) { result.m_frames_u8.emplace_back( deltaTrans.u.frames.frames._1[i][0], deltaTrans.u.frames.frames._1[i][1], deltaTrans.u.frames.frames._1[i][2]); @@ -132,7 +154,7 @@ namespace else { result.m_frames_u16.reserve(frameCount); - for (auto i = 0uz; i < frameCount; i++) + for (size_t i = 0u; i < frameCount; i++) { result.m_frames_u16.emplace_back( deltaTrans.u.frames.frames._2[i][0], deltaTrans.u.frames.frames._2[i][1], deltaTrans.u.frames.frames._2[i][2]); @@ -172,9 +194,11 @@ namespace } } // namespace +#set CLASS_NAME "Dumper" + GAME + namespace xanim { - void DumperIW3::DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) + void CLASS_NAME::DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) { const auto* parts = asset.Asset(); diff --git a/src/ObjWriting/XAnim/XAnimDumper.h.template b/src/ObjWriting/XAnim/XAnimDumper.h.template new file mode 100644 index 00000000..a178dfda --- /dev/null +++ b/src/ObjWriting/XAnim/XAnimDumper.h.template @@ -0,0 +1,25 @@ +#options GAME(IW3) + +#filename "Game/" + GAME + "/XAnim/XAnimDumper" + GAME + ".h" + +#set GAME_HEADER "\"Game/" + GAME + "/" + GAME + ".h\"" + +// This file was templated. +// See XAnimDumper.h.template. +// Do not modify, changes will be lost. + +#pragma once + +#include "Dumping/AbstractAssetDumper.h" +#include GAME_HEADER + +#set CLASS_NAME "Dumper" + GAME + +namespace xanim +{ + class CLASS_NAME final : public AbstractAssetDumper + { + protected: + void DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) override; + }; +} // namespace xanim diff --git a/test/SystemTests.lua b/test/SystemTests.lua index d7ebe7a3..36ec875d 100644 --- a/test/SystemTests.lua +++ b/test/SystemTests.lua @@ -3,6 +3,8 @@ SystemTests = {} function SystemTests:include(includes) if includes:handle(self:name()) then includedirs { + "%{wks.location}/src/ObjLoading", + "%{wks.location}/src/ObjWriting", path.join(TestFolder(), "SystemTests") } end