From 223dfcd4f8ee0abc4e34249929aab9506d89f02a Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 25 Jun 2025 21:35:35 +0100 Subject: [PATCH] refactor: move material asset dumpers to material folder --- .../AssetDumperMaterial.cpp | 2 +- .../AssetDumperMaterial.h | 0 src/ObjWriting/Game/IW4/ObjWriterIW4.cpp | 2 +- .../AssetDumperMaterial.cpp | 30 ++++--------------- .../AssetDumperMaterial.h | 8 ++--- src/ObjWriting/Game/IW5/ObjWriterIW5.cpp | 2 +- .../AssetDumperMaterial.cpp | 30 ++++--------------- .../AssetDumperMaterial.h | 8 ++--- src/ObjWriting/Game/T6/ObjWriterT6.cpp | 2 +- 9 files changed, 20 insertions(+), 64 deletions(-) rename src/ObjWriting/Game/IW4/{AssetDumpers => Material}/AssetDumperMaterial.cpp (99%) rename src/ObjWriting/Game/IW4/{AssetDumpers => Material}/AssetDumperMaterial.h (100%) rename src/ObjWriting/Game/IW5/{AssetDumpers => Material}/AssetDumperMaterial.cpp (52%) rename src/ObjWriting/Game/IW5/{AssetDumpers => Material}/AssetDumperMaterial.h (82%) rename src/ObjWriting/Game/T6/{AssetDumpers => Material}/AssetDumperMaterial.cpp (52%) rename src/ObjWriting/Game/T6/{AssetDumpers => Material}/AssetDumperMaterial.h (82%) diff --git a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperMaterial.cpp b/src/ObjWriting/Game/IW4/Material/AssetDumperMaterial.cpp similarity index 99% rename from src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperMaterial.cpp rename to src/ObjWriting/Game/IW4/Material/AssetDumperMaterial.cpp index 4655e75d..6e4c7579 100644 --- a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperMaterial.cpp +++ b/src/ObjWriting/Game/IW4/Material/AssetDumperMaterial.cpp @@ -15,7 +15,7 @@ #include #include -#define DUMP_AS_GDT 1 +// #define DUMP_AS_GDT 1 // #define FLAGS_DEBUG 1 using namespace IW4; diff --git a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperMaterial.h b/src/ObjWriting/Game/IW4/Material/AssetDumperMaterial.h similarity index 100% rename from src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperMaterial.h rename to src/ObjWriting/Game/IW4/Material/AssetDumperMaterial.h diff --git a/src/ObjWriting/Game/IW4/ObjWriterIW4.cpp b/src/ObjWriting/Game/IW4/ObjWriterIW4.cpp index 4aabfd87..d4713942 100644 --- a/src/ObjWriting/Game/IW4/ObjWriterIW4.cpp +++ b/src/ObjWriting/Game/IW4/ObjWriterIW4.cpp @@ -6,7 +6,6 @@ #include "AssetDumpers/AssetDumperLeaderboardDef.h" #include "AssetDumpers/AssetDumperLoadedSound.h" #include "AssetDumpers/AssetDumperLocalizeEntry.h" -#include "AssetDumpers/AssetDumperMaterial.h" #include "AssetDumpers/AssetDumperMenuDef.h" #include "AssetDumpers/AssetDumperMenuList.h" #include "AssetDumpers/AssetDumperPhysCollmap.h" @@ -23,6 +22,7 @@ #include "AssetDumpers/AssetDumperWeapon.h" #include "AssetDumpers/AssetDumperXModel.h" #include "Game/IW4/GameAssetPoolIW4.h" +#include "Material/AssetDumperMaterial.h" #include "ObjWriting.h" using namespace IW4; diff --git a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.cpp b/src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.cpp similarity index 52% rename from src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.cpp rename to src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.cpp index d564ba93..1e988f53 100644 --- a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.cpp +++ b/src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.cpp @@ -2,26 +2,16 @@ #include "Game/IW5/Material/JsonMaterialWriterIW5.h" #include "Game/IW5/Material/MaterialConstantZoneState.h" - -#include -#include -#include +#include "Material/MaterialCommon.h" using namespace IW5; -std::string AssetDumperMaterial::GetFileNameForAsset(const std::string& assetName) +void AssetDumperMaterial::DumpPool(AssetDumpingContext& context, AssetPool* pool) { - std::string sanitizedFileName(assetName); - if (sanitizedFileName[0] == '*') - { - std::ranges::replace(sanitizedFileName, '*', '_'); - const auto parenthesisPos = sanitizedFileName.find('('); - if (parenthesisPos != std::string::npos) - sanitizedFileName.erase(parenthesisPos); - sanitizedFileName = "generated/" + sanitizedFileName; - } + auto* materialConstantState = context.GetZoneAssetDumperState(); + materialConstantState->ExtractNamesFromZone(); - return std::format("materials/{}.json", sanitizedFileName); + AbstractAssetDumper::DumpPool(context, pool); } bool AssetDumperMaterial::ShouldDump(XAssetInfo* asset) @@ -31,18 +21,10 @@ bool AssetDumperMaterial::ShouldDump(XAssetInfo* asset) void AssetDumperMaterial::DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) { - const auto assetFile = context.OpenAssetFile(GetFileNameForAsset(asset->m_name)); + const auto assetFile = context.OpenAssetFile(material::GetFileNameForAssetName(asset->m_name)); if (!assetFile) return; DumpMaterialAsJson(*assetFile, *asset->Asset(), context); } - -void AssetDumperMaterial::DumpPool(AssetDumpingContext& context, AssetPool* pool) -{ - auto* materialConstantState = context.GetZoneAssetDumperState(); - materialConstantState->ExtractNamesFromZone(); - - AbstractAssetDumper::DumpPool(context, pool); -} diff --git a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.h b/src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.h similarity index 82% rename from src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.h rename to src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.h index 04c8e914..12e57790 100644 --- a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMaterial.h +++ b/src/ObjWriting/Game/IW5/Material/AssetDumperMaterial.h @@ -3,19 +3,15 @@ #include "Dumping/AbstractAssetDumper.h" #include "Game/IW5/IW5.h" -#include - namespace IW5 { class AssetDumperMaterial final : public AbstractAssetDumper { - static std::string GetFileNameForAsset(const std::string& assetName); + public: + void DumpPool(AssetDumpingContext& context, AssetPool* pool) override; protected: bool ShouldDump(XAssetInfo* asset) override; void DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) override; - - public: - void DumpPool(AssetDumpingContext& context, AssetPool* pool) override; }; } // namespace IW5 diff --git a/src/ObjWriting/Game/IW5/ObjWriterIW5.cpp b/src/ObjWriting/Game/IW5/ObjWriterIW5.cpp index bbbca5ce..f91bc449 100644 --- a/src/ObjWriting/Game/IW5/ObjWriterIW5.cpp +++ b/src/ObjWriting/Game/IW5/ObjWriterIW5.cpp @@ -5,7 +5,6 @@ #include "AssetDumpers/AssetDumperLeaderboardDef.h" #include "AssetDumpers/AssetDumperLoadedSound.h" #include "AssetDumpers/AssetDumperLocalizeEntry.h" -#include "AssetDumpers/AssetDumperMaterial.h" #include "AssetDumpers/AssetDumperMenuDef.h" #include "AssetDumpers/AssetDumperMenuList.h" #include "AssetDumpers/AssetDumperRawFile.h" @@ -15,6 +14,7 @@ #include "AssetDumpers/AssetDumperWeaponAttachment.h" #include "AssetDumpers/AssetDumperXModel.h" #include "Game/IW5/GameAssetPoolIW5.h" +#include "Material/AssetDumperMaterial.h" #include "ObjWriting.h" using namespace IW5; diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.cpp b/src/ObjWriting/Game/T6/Material/AssetDumperMaterial.cpp similarity index 52% rename from src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.cpp rename to src/ObjWriting/Game/T6/Material/AssetDumperMaterial.cpp index 169458c8..42581876 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.cpp +++ b/src/ObjWriting/Game/T6/Material/AssetDumperMaterial.cpp @@ -2,26 +2,16 @@ #include "Game/T6/Material/JsonMaterialWriterT6.h" #include "Game/T6/Material/MaterialConstantZoneState.h" - -#include -#include -#include +#include "Material/MaterialCommon.h" using namespace T6; -std::string AssetDumperMaterial::GetFileNameForAsset(const std::string& assetName) +void AssetDumperMaterial::DumpPool(AssetDumpingContext& context, AssetPool* pool) { - std::string sanitizedFileName(assetName); - if (sanitizedFileName[0] == '*') - { - std::ranges::replace(sanitizedFileName, '*', '_'); - const auto parenthesisPos = sanitizedFileName.find('('); - if (parenthesisPos != std::string::npos) - sanitizedFileName.erase(parenthesisPos); - sanitizedFileName = "generated/" + sanitizedFileName; - } + auto* materialConstantState = context.GetZoneAssetDumperState(); + materialConstantState->ExtractNamesFromZone(); - return std::format("materials/{}.json", sanitizedFileName); + AbstractAssetDumper::DumpPool(context, pool); } bool AssetDumperMaterial::ShouldDump(XAssetInfo* asset) @@ -31,18 +21,10 @@ bool AssetDumperMaterial::ShouldDump(XAssetInfo* asset) void AssetDumperMaterial::DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) { - const auto assetFile = context.OpenAssetFile(GetFileNameForAsset(asset->m_name)); + const auto assetFile = context.OpenAssetFile(material::GetFileNameForAssetName(asset->m_name)); if (!assetFile) return; DumpMaterialAsJson(*assetFile, *asset->Asset(), context); } - -void AssetDumperMaterial::DumpPool(AssetDumpingContext& context, AssetPool* pool) -{ - auto* materialConstantState = context.GetZoneAssetDumperState(); - materialConstantState->ExtractNamesFromZone(); - - AbstractAssetDumper::DumpPool(context, pool); -} diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.h b/src/ObjWriting/Game/T6/Material/AssetDumperMaterial.h similarity index 82% rename from src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.h rename to src/ObjWriting/Game/T6/Material/AssetDumperMaterial.h index 9f8c8703..99de31e7 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperMaterial.h +++ b/src/ObjWriting/Game/T6/Material/AssetDumperMaterial.h @@ -3,19 +3,15 @@ #include "Dumping/AbstractAssetDumper.h" #include "Game/T6/T6.h" -#include - namespace T6 { class AssetDumperMaterial final : public AbstractAssetDumper { - static std::string GetFileNameForAsset(const std::string& assetName); + public: + void DumpPool(AssetDumpingContext& context, AssetPool* pool) override; protected: bool ShouldDump(XAssetInfo* asset) override; void DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) override; - - public: - void DumpPool(AssetDumpingContext& context, AssetPool* pool) override; }; } // namespace T6 diff --git a/src/ObjWriting/Game/T6/ObjWriterT6.cpp b/src/ObjWriting/Game/T6/ObjWriterT6.cpp index 88df25d8..57a11992 100644 --- a/src/ObjWriting/Game/T6/ObjWriterT6.cpp +++ b/src/ObjWriting/Game/T6/ObjWriterT6.cpp @@ -5,7 +5,6 @@ #include "AssetDumpers/AssetDumperLeaderboardDef.h" #include "AssetDumpers/AssetDumperLocalizeEntry.h" #include "AssetDumpers/AssetDumperMapEnts.h" -#include "AssetDumpers/AssetDumperMaterial.h" #include "AssetDumpers/AssetDumperPhysConstraints.h" #include "AssetDumpers/AssetDumperPhysPreset.h" #include "AssetDumpers/AssetDumperQdb.h" @@ -25,6 +24,7 @@ #include "AssetDumpers/AssetDumperXModel.h" #include "AssetDumpers/AssetDumperZBarrier.h" #include "Game/T6/GameAssetPoolT6.h" +#include "Material/AssetDumperMaterial.h" #include "ObjWriting.h" using namespace T6;