From 11168c782f486b4bc9aa97f021e06209edac3d7f Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 19 Nov 2019 02:30:04 +0100 Subject: [PATCH] ZoneLoading: Make AssetDumpers get the zone via their args --- src/ZoneLoading/Dumping/AbstractAssetDumper.h | 10 +++++----- src/ZoneLoading/Dumping/IAssetDumper.h | 3 ++- .../Game/T6/AssetDumpers/AssetDumperLocalizeEntry.cpp | 2 +- .../Game/T6/AssetDumpers/AssetDumperLocalizeEntry.h | 2 +- .../Game/T6/AssetDumpers/AssetDumperQdb.cpp | 4 ++-- src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.h | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperRawFile.cpp | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperRawFile.h | 4 ++-- .../T6/AssetDumpers/AssetDumperScriptParseTree.cpp | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperScriptParseTree.h | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperSlug.cpp | 4 ++-- src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.h | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperStringTable.cpp | 4 ++-- .../Game/T6/AssetDumpers/AssetDumperStringTable.h | 4 ++-- src/ZoneLoading/Game/T6/ZoneDumperT6.cpp | 2 +- 15 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/ZoneLoading/Dumping/AbstractAssetDumper.h b/src/ZoneLoading/Dumping/AbstractAssetDumper.h index cd4d9626..d2be7d20 100644 --- a/src/ZoneLoading/Dumping/AbstractAssetDumper.h +++ b/src/ZoneLoading/Dumping/AbstractAssetDumper.h @@ -10,15 +10,15 @@ template class AbstractAssetDumper : public IAssetDumper { protected: - virtual std::string GetFileNameForAsset(T* asset) = 0; - virtual void DumpAsset(T* asset, FileAPI::File* out) = 0; + virtual std::string GetFileNameForAsset(Zone* zone, T* asset) = 0; + virtual void DumpAsset(Zone* zone, T* asset, FileAPI::File* out) = 0; public: - void DumpPool(AssetPool* pool, const std::string& basePath) override + void DumpPool(Zone* zone, AssetPool* pool, const std::string& basePath) override { for(auto assetInfo : *pool) { - std::string assetFilePath = utils::Path::Combine(basePath, GetFileNameForAsset(assetInfo->m_asset)); + std::string assetFilePath = utils::Path::Combine(basePath, GetFileNameForAsset(zone, assetInfo->m_asset)); FileAPI::DirectoryCreate(utils::Path::GetDirectory(assetFilePath)); @@ -26,7 +26,7 @@ public: if(file.IsOpen()) { - DumpAsset(assetInfo->m_asset, &file); + DumpAsset(zone, assetInfo->m_asset, &file); file.Close(); } diff --git a/src/ZoneLoading/Dumping/IAssetDumper.h b/src/ZoneLoading/Dumping/IAssetDumper.h index e729cc04..789e7013 100644 --- a/src/ZoneLoading/Dumping/IAssetDumper.h +++ b/src/ZoneLoading/Dumping/IAssetDumper.h @@ -1,5 +1,6 @@ #pragma once +#include "Zone/Zone.h" #include "Pool/AssetPool.h" template @@ -8,5 +9,5 @@ class IAssetDumper public: virtual ~IAssetDumper() = default; - virtual void DumpPool(AssetPool* pool, const std::string& basePath) = 0; + virtual void DumpPool(Zone* zone, AssetPool* pool, const std::string& basePath) = 0; }; \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.cpp index 76cffe0d..a459b094 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.cpp @@ -2,7 +2,7 @@ using namespace T6; -void AssetDumperLocalizeEntry::DumpPool(AssetPool* pool, const std::string& basePath) +std::string AssetDumperLocalizeEntry::GetNameOfLanguage(ZoneLanguage language) { // TODO: Add a dumping method that dumps all localized strings to a .str file and not in separate files. } \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.h index 4d8fed58..080ef068 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperLocalizeEntry.h @@ -6,5 +6,5 @@ class AssetDumperLocalizeEntry final : public IAssetDumper { public: - void DumpPool(AssetPool* pool, const std::string& basePath) override; + void DumpPool(Zone* zone, AssetPool* pool, const std::string& basePath) override; }; \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.cpp index 9868fd0a..5e8c526c 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.cpp @@ -2,12 +2,12 @@ using namespace T6; -std::string AssetDumperQdb::GetFileNameForAsset(Qdb* asset) +std::string AssetDumperQdb::GetFileNameForAsset(Zone* zone, Qdb* asset) { return std::string(asset->name); } -void AssetDumperQdb::DumpAsset(Qdb* asset, FileAPI::File* out) +void AssetDumperQdb::DumpAsset(Zone* zone, Qdb* asset, FileAPI::File* out) { out->Write(asset->buffer, 1, asset->len); } \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.h index 3dbb35ae..845da5ff 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperQdb.h @@ -6,6 +6,6 @@ class AssetDumperQdb final : public AbstractAssetDumper { protected: - std::string GetFileNameForAsset(T6::Qdb* asset) override; - void DumpAsset(T6::Qdb* asset, FileAPI::File* out) 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/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.cpp index d267a0d4..b8b2ccd4 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.cpp @@ -2,12 +2,12 @@ using namespace T6; -std::string AssetDumperRawFile::GetFileNameForAsset(RawFile* asset) +std::string AssetDumperRawFile::GetFileNameForAsset(Zone* zone, RawFile* asset) { return std::string(asset->name); } -void AssetDumperRawFile::DumpAsset(RawFile* asset, FileAPI::File* out) +void AssetDumperRawFile::DumpAsset(Zone* zone, RawFile* asset, FileAPI::File* out) { out->Write(asset->buffer, 1, asset->len); } \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.h index 7f809de9..3ee2969d 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperRawFile.h @@ -6,6 +6,6 @@ class AssetDumperRawFile final : public AbstractAssetDumper { protected: - std::string GetFileNameForAsset(T6::RawFile* asset) override; - void DumpAsset(T6::RawFile* asset, FileAPI::File* out) 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/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp index 694f006b..fe34bc41 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.cpp @@ -2,12 +2,12 @@ using namespace T6; -std::string AssetDumperScriptParseTree::GetFileNameForAsset(ScriptParseTree* asset) +std::string AssetDumperScriptParseTree::GetFileNameForAsset(Zone* zone, ScriptParseTree* asset) { return std::string(asset->name); } -void AssetDumperScriptParseTree::DumpAsset(ScriptParseTree* asset, FileAPI::File* out) +void AssetDumperScriptParseTree::DumpAsset(Zone* zone, ScriptParseTree* asset, FileAPI::File* out) { out->Write(asset->buffer, 1, asset->len); } \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h index 65a74637..9a7dfaff 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperScriptParseTree.h @@ -6,6 +6,6 @@ class AssetDumperScriptParseTree final : public AbstractAssetDumper { protected: - std::string GetFileNameForAsset(T6::ScriptParseTree* asset) override; - void DumpAsset(T6::ScriptParseTree* asset, FileAPI::File* out) 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/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.cpp index 8dd72c5d..ac19b042 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.cpp @@ -2,12 +2,12 @@ using namespace T6; -std::string AssetDumperSlug::GetFileNameForAsset(Slug* asset) +std::string AssetDumperSlug::GetFileNameForAsset(Zone* zone, Slug* asset) { return std::string(asset->name); } -void AssetDumperSlug::DumpAsset(Slug* asset, FileAPI::File* out) +void AssetDumperSlug::DumpAsset(Zone* zone, Slug* asset, FileAPI::File* out) { out->Write(asset->buffer, 1, asset->len); } \ No newline at end of file diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.h index da061ea6..0df16d87 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperSlug.h @@ -6,6 +6,6 @@ class AssetDumperSlug final : public AbstractAssetDumper { protected: - std::string GetFileNameForAsset(T6::Slug* asset) override; - void DumpAsset(T6::Slug* asset, FileAPI::File* out) 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/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.cpp b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.cpp index 448ba002..d7818b6d 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.cpp @@ -2,12 +2,12 @@ using namespace T6; -std::string AssetDumperStringTable::GetFileNameForAsset(StringTable* asset) +std::string AssetDumperStringTable::GetFileNameForAsset(Zone* zone, StringTable* asset) { return std::string(asset->name); } -void AssetDumperStringTable::DumpAsset(StringTable* asset, FileAPI::File* out) +void AssetDumperStringTable::DumpAsset(Zone* zone, StringTable* asset, FileAPI::File* out) { char separator[]{ ',' }; char newLine[]{ '\n' }; diff --git a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.h b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.h index 8ff24b8d..70b68d3b 100644 --- a/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.h +++ b/src/ZoneLoading/Game/T6/AssetDumpers/AssetDumperStringTable.h @@ -6,6 +6,6 @@ class AssetDumperStringTable final : public AbstractAssetDumper { protected: - std::string GetFileNameForAsset(T6::StringTable* asset) override; - void DumpAsset(T6::StringTable* asset, FileAPI::File* out) 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 diff --git a/src/ZoneLoading/Game/T6/ZoneDumperT6.cpp b/src/ZoneLoading/Game/T6/ZoneDumperT6.cpp index 8ab67ab0..9b2fd3d7 100644 --- a/src/ZoneLoading/Game/T6/ZoneDumperT6.cpp +++ b/src/ZoneLoading/Game/T6/ZoneDumperT6.cpp @@ -19,7 +19,7 @@ bool ZoneDumperT6::DumpZone(Zone* zone, const std::string& basePath) if(assetPools->poolName) \ { \ dumperType dumper; \ - dumper.DumpPool(assetPools->poolName, basePath); \ + dumper.DumpPool(zone, assetPools->poolName, basePath); \ } const auto assetPools = dynamic_cast(zone->GetPools());