diff --git a/src/ObjWriting/Dumping/AbstractAssetDumper.h b/src/ObjWriting/Dumping/AbstractAssetDumper.h index d2be7d20..6d71a237 100644 --- a/src/ObjWriting/Dumping/AbstractAssetDumper.h +++ b/src/ObjWriting/Dumping/AbstractAssetDumper.h @@ -10,6 +10,7 @@ template class AbstractAssetDumper : public IAssetDumper { protected: + virtual bool ShouldDump(T* asset) = 0; virtual std::string GetFileNameForAsset(Zone* zone, T* asset) = 0; virtual void DumpAsset(Zone* zone, T* asset, FileAPI::File* out) = 0; @@ -18,6 +19,12 @@ public: { for(auto assetInfo : *pool) { + if(assetInfo->m_name[0] == ',' + || !ShouldDump(assetInfo->m_asset)) + { + continue; + } + std::string assetFilePath = utils::Path::Combine(basePath, GetFileNameForAsset(zone, assetInfo->m_asset)); FileAPI::DirectoryCreate(utils::Path::GetDirectory(assetFilePath)); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.cpp index 5e8c526c..9de4f841 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.cpp @@ -2,6 +2,11 @@ using namespace T6; +bool AssetDumperQdb::ShouldDump(Qdb* asset) +{ + return true; +} + std::string AssetDumperQdb::GetFileNameForAsset(Zone* zone, Qdb* asset) { return std::string(asset->name); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.h b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.h index 845da5ff..5ae6a2c1 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.h +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperQdb.h @@ -6,6 +6,7 @@ class AssetDumperQdb final : public AbstractAssetDumper { protected: + bool ShouldDump(T6::Qdb* asset) override; std::string GetFileNameForAsset(Zone* zone, T6::Qdb* asset) override; void DumpAsset(Zone* zone, T6::Qdb* asset, FileAPI::File* out) override; }; \ No newline at end of file diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.cpp index b8b2ccd4..f4790161 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.cpp @@ -2,6 +2,11 @@ using namespace T6; +bool AssetDumperRawFile::ShouldDump(RawFile* asset) +{ + return true; +} + std::string AssetDumperRawFile::GetFileNameForAsset(Zone* zone, RawFile* asset) { return std::string(asset->name); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.h b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.h index 3ee2969d..cc72e68f 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.h +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperRawFile.h @@ -6,6 +6,7 @@ class AssetDumperRawFile final : public AbstractAssetDumper { protected: + bool ShouldDump(T6::RawFile* asset) override; std::string GetFileNameForAsset(Zone* zone, T6::RawFile* asset) override; void DumpAsset(Zone* zone, T6::RawFile* asset, FileAPI::File* out) override; }; \ No newline at end of file diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp index fe34bc41..20f676e1 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp @@ -2,6 +2,11 @@ using namespace T6; +bool AssetDumperScriptParseTree::ShouldDump(ScriptParseTree* asset) +{ + return true; +} + std::string AssetDumperScriptParseTree::GetFileNameForAsset(Zone* zone, ScriptParseTree* asset) { return std::string(asset->name); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h index 9a7dfaff..65b75f93 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h @@ -6,6 +6,7 @@ class AssetDumperScriptParseTree final : public AbstractAssetDumper { protected: + bool ShouldDump(T6::ScriptParseTree* asset) override; std::string GetFileNameForAsset(Zone* zone, T6::ScriptParseTree* asset) override; void DumpAsset(Zone* zone, T6::ScriptParseTree* asset, FileAPI::File* out) override; }; \ No newline at end of file diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.cpp index ac19b042..f32b84e1 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.cpp @@ -2,6 +2,11 @@ using namespace T6; +bool AssetDumperSlug::ShouldDump(Slug* asset) +{ + return true; +} + std::string AssetDumperSlug::GetFileNameForAsset(Zone* zone, Slug* asset) { return std::string(asset->name); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.h b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.h index 0df16d87..70eedbfd 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.h +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperSlug.h @@ -6,6 +6,7 @@ class AssetDumperSlug final : public AbstractAssetDumper { protected: + bool ShouldDump(T6::Slug* asset) override; std::string GetFileNameForAsset(Zone* zone, T6::Slug* asset) override; void DumpAsset(Zone* zone, T6::Slug* asset, FileAPI::File* out) override; }; \ No newline at end of file diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp index d7818b6d..8237fd66 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp @@ -2,6 +2,11 @@ using namespace T6; +bool AssetDumperStringTable::ShouldDump(StringTable* asset) +{ + return true; +} + std::string AssetDumperStringTable::GetFileNameForAsset(Zone* zone, StringTable* asset) { return std::string(asset->name); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.h b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.h index 70b68d3b..0a0ed007 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.h +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.h @@ -6,6 +6,7 @@ class AssetDumperStringTable final : public AbstractAssetDumper { protected: + bool ShouldDump(T6::StringTable* asset) override; std::string GetFileNameForAsset(Zone* zone, T6::StringTable* asset) override; void DumpAsset(Zone* zone, T6::StringTable* asset, FileAPI::File* out) override; }; \ No newline at end of file