mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-10-20 21:45:21 +00:00
chore: move ZoneDefinitionWriter from Unlinker to ZoneCommon
This commit is contained in:
@@ -1,19 +1,17 @@
|
|||||||
#include "Unlinker.h"
|
#include "Unlinker.h"
|
||||||
|
|
||||||
#include "ContentLister/ContentPrinter.h"
|
#include "ContentLister/ContentPrinter.h"
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
|
||||||
#include "IObjLoader.h"
|
#include "IObjLoader.h"
|
||||||
#include "IObjWriter.h"
|
#include "IObjWriter.h"
|
||||||
#include "ObjWriting.h"
|
#include "ObjWriting.h"
|
||||||
#include "SearchPath/IWD.h"
|
#include "SearchPath/IWD.h"
|
||||||
#include "SearchPath/OutputPathFilesystem.h"
|
#include "SearchPath/OutputPathFilesystem.h"
|
||||||
#include "SearchPath/SearchPathFilesystem.h"
|
|
||||||
#include "SearchPath/SearchPaths.h"
|
|
||||||
#include "UnlinkerArgs.h"
|
#include "UnlinkerArgs.h"
|
||||||
#include "UnlinkerPaths.h"
|
#include "UnlinkerPaths.h"
|
||||||
#include "Utils/ClassUtils.h"
|
#include "Utils/ClassUtils.h"
|
||||||
#include "Utils/Logging/Log.h"
|
#include "Utils/Logging/Log.h"
|
||||||
#include "Utils/ObjFileStream.h"
|
#include "Utils/ObjFileStream.h"
|
||||||
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
#include "ZoneLoading.h"
|
#include "ZoneLoading.h"
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
@@ -21,7 +19,6 @@
|
|||||||
#include <format>
|
#include <format>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <set>
|
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
@@ -54,12 +51,12 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
_NODISCARD bool ShouldLoadObj() const
|
[[nodiscard]] bool ShouldLoadObj() const
|
||||||
{
|
{
|
||||||
return m_args.m_task != UnlinkerArgs::ProcessingTask::LIST && !m_args.m_skip_obj;
|
return m_args.m_task != UnlinkerArgs::ProcessingTask::LIST && !m_args.m_skip_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WriteZoneDefinitionFile(const Zone& zone, const fs::path& zoneDefinitionFileFolder) const
|
[[nodiscard]] bool WriteZoneDefinitionFile(const Zone& zone, const fs::path& zoneDefinitionFileFolder) const
|
||||||
{
|
{
|
||||||
auto zoneDefinitionFilePath(zoneDefinitionFileFolder);
|
auto zoneDefinitionFilePath(zoneDefinitionFileFolder);
|
||||||
zoneDefinitionFilePath.append(zone.m_name);
|
zoneDefinitionFilePath.append(zone.m_name);
|
||||||
@@ -73,7 +70,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
const auto* zoneDefWriter = IZoneDefWriter::GetZoneDefWriterForGame(zone.m_game_id);
|
const auto* zoneDefWriter = IZoneDefWriter::GetZoneDefWriterForGame(zone.m_game_id);
|
||||||
zoneDefWriter->WriteZoneDef(zoneDefinitionFile, m_args, zone);
|
zoneDefWriter->WriteZoneDef(zoneDefinitionFile, zone, m_args.m_use_gdt);
|
||||||
|
|
||||||
zoneDefinitionFile.close();
|
zoneDefinitionFile.close();
|
||||||
|
|
||||||
|
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
using namespace IW3;
|
using namespace IW3;
|
||||||
|
|
||||||
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const {}
|
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const {}
|
||||||
|
|
||||||
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* pools = dynamic_cast<GameAssetPoolIW3*>(zone.m_pools.get());
|
const auto* pools = dynamic_cast<GameAssetPoolIW3*>(zone.m_pools.get());
|
||||||
|
|
@@ -1,13 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
|
|
||||||
namespace IW3
|
namespace IW3
|
||||||
{
|
{
|
||||||
class ZoneDefWriter final : public AbstractZoneDefWriter
|
class ZoneDefWriter final : public AbstractZoneDefWriter
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
};
|
};
|
||||||
} // namespace IW3
|
} // namespace IW3
|
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
using namespace IW4;
|
using namespace IW4;
|
||||||
|
|
||||||
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const {}
|
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const {}
|
||||||
|
|
||||||
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* pools = dynamic_cast<GameAssetPoolIW4*>(zone.m_pools.get());
|
const auto* pools = dynamic_cast<GameAssetPoolIW4*>(zone.m_pools.get());
|
||||||
|
|
@@ -1,13 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
|
|
||||||
namespace IW4
|
namespace IW4
|
||||||
{
|
{
|
||||||
class ZoneDefWriter final : public AbstractZoneDefWriter
|
class ZoneDefWriter final : public AbstractZoneDefWriter
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
};
|
};
|
||||||
} // namespace IW4
|
} // namespace IW4
|
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
using namespace IW5;
|
using namespace IW5;
|
||||||
|
|
||||||
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const {}
|
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const {}
|
||||||
|
|
||||||
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* pools = dynamic_cast<GameAssetPoolIW5*>(zone.m_pools.get());
|
const auto* pools = dynamic_cast<GameAssetPoolIW5*>(zone.m_pools.get());
|
||||||
|
|
@@ -1,13 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
|
|
||||||
namespace IW5
|
namespace IW5
|
||||||
{
|
{
|
||||||
class ZoneDefWriter final : public AbstractZoneDefWriter
|
class ZoneDefWriter final : public AbstractZoneDefWriter
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
};
|
};
|
||||||
} // namespace IW5
|
} // namespace IW5
|
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
using namespace T5;
|
using namespace T5;
|
||||||
|
|
||||||
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const {}
|
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const {}
|
||||||
|
|
||||||
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* pools = dynamic_cast<GameAssetPoolT5*>(zone.m_pools.get());
|
const auto* pools = dynamic_cast<GameAssetPoolT5*>(zone.m_pools.get());
|
||||||
|
|
@@ -1,13 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
|
|
||||||
namespace T5
|
namespace T5
|
||||||
{
|
{
|
||||||
class ZoneDefWriter final : public AbstractZoneDefWriter
|
class ZoneDefWriter final : public AbstractZoneDefWriter
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
};
|
};
|
||||||
} // namespace T5
|
} // namespace T5
|
@@ -48,7 +48,7 @@ namespace
|
|||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* assetPoolT6 = dynamic_cast<GameAssetPoolT6*>(zone.m_pools.get());
|
const auto* assetPoolT6 = dynamic_cast<GameAssetPoolT6*>(zone.m_pools.get());
|
||||||
if (assetPoolT6 && !assetPoolT6->m_key_value_pairs->m_asset_lookup.empty())
|
if (assetPoolT6 && !assetPoolT6->m_key_value_pairs->m_asset_lookup.empty())
|
||||||
@@ -64,7 +64,7 @@ void ZoneDefWriter::WriteMetaData(ZoneDefinitionOutputStream& stream, const Unli
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void ZoneDefWriter::WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const
|
||||||
{
|
{
|
||||||
const auto* pools = dynamic_cast<GameAssetPoolT6*>(zone.m_pools.get());
|
const auto* pools = dynamic_cast<GameAssetPoolT6*>(zone.m_pools.get());
|
||||||
|
|
@@ -1,13 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "ContentLister/ZoneDefWriter.h"
|
#include "Zone/Definition/ZoneDefWriter.h"
|
||||||
|
|
||||||
namespace T6
|
namespace T6
|
||||||
{
|
{
|
||||||
class ZoneDefWriter final : public AbstractZoneDefWriter
|
class ZoneDefWriter final : public AbstractZoneDefWriter
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const override;
|
||||||
};
|
};
|
||||||
} // namespace T6
|
} // namespace T6
|
@@ -1,10 +1,10 @@
|
|||||||
#include "ZoneDefWriter.h"
|
#include "ZoneDefWriter.h"
|
||||||
|
|
||||||
#include "Game/IW3/ZoneDefWriterIW3.h"
|
#include "Game/IW3/Zone/Definition/ZoneDefWriterIW3.h"
|
||||||
#include "Game/IW4/ZoneDefWriterIW4.h"
|
#include "Game/IW4/Zone/Definition/ZoneDefWriterIW4.h"
|
||||||
#include "Game/IW5/ZoneDefWriterIW5.h"
|
#include "Game/IW5/Zone/Definition/ZoneDefWriterIW5.h"
|
||||||
#include "Game/T5/ZoneDefWriterT5.h"
|
#include "Game/T5/Zone/Definition/ZoneDefWriterT5.h"
|
||||||
#include "Game/T6/ZoneDefWriterT6.h"
|
#include "Game/T6/Zone/Definition/ZoneDefWriterT6.h"
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ const IZoneDefWriter* IZoneDefWriter::GetZoneDefWriterForGame(GameId game)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AbstractZoneDefWriter::WriteZoneDef(std::ostream& stream, const UnlinkerArgs& args, const Zone& zone) const
|
void AbstractZoneDefWriter::WriteZoneDef(std::ostream& stream, const Zone& zone, const bool useGdt) const
|
||||||
{
|
{
|
||||||
ZoneDefinitionOutputStream out(stream);
|
ZoneDefinitionOutputStream out(stream);
|
||||||
const auto* game = IGame::GetGameById(zone.m_game_id);
|
const auto* game = IGame::GetGameById(zone.m_game_id);
|
||||||
@@ -34,13 +34,13 @@ void AbstractZoneDefWriter::WriteZoneDef(std::ostream& stream, const UnlinkerArg
|
|||||||
out.WriteMetaData(META_DATA_KEY_GAME, game->GetShortName());
|
out.WriteMetaData(META_DATA_KEY_GAME, game->GetShortName());
|
||||||
out.EmptyLine();
|
out.EmptyLine();
|
||||||
|
|
||||||
if (args.m_use_gdt)
|
if (useGdt)
|
||||||
{
|
{
|
||||||
out.WriteComment("Load asset gdt files");
|
out.WriteComment("Load asset gdt files");
|
||||||
out.WriteMetaData(META_DATA_KEY_GDT, zone.m_name);
|
out.WriteMetaData(META_DATA_KEY_GDT, zone.m_name);
|
||||||
out.EmptyLine();
|
out.EmptyLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteMetaData(out, args, zone);
|
WriteMetaData(out, zone);
|
||||||
WriteContent(out, args, zone);
|
WriteContent(out, zone);
|
||||||
}
|
}
|
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "UnlinkerArgs.h"
|
|
||||||
#include "Zone/Definition/ZoneDefinitionStream.h"
|
#include "Zone/Definition/ZoneDefinitionStream.h"
|
||||||
|
#include "Zone/Zone.h"
|
||||||
|
|
||||||
class IZoneDefWriter
|
class IZoneDefWriter
|
||||||
{
|
{
|
||||||
@@ -13,7 +13,7 @@ public:
|
|||||||
IZoneDefWriter& operator=(const IZoneDefWriter& other) = default;
|
IZoneDefWriter& operator=(const IZoneDefWriter& other) = default;
|
||||||
IZoneDefWriter& operator=(IZoneDefWriter&& other) noexcept = default;
|
IZoneDefWriter& operator=(IZoneDefWriter&& other) noexcept = default;
|
||||||
|
|
||||||
virtual void WriteZoneDef(std::ostream& stream, const UnlinkerArgs& args, const Zone& zone) const = 0;
|
virtual void WriteZoneDef(std::ostream& stream, const Zone& zone, bool useGdt) const = 0;
|
||||||
|
|
||||||
static const IZoneDefWriter* GetZoneDefWriterForGame(GameId game);
|
static const IZoneDefWriter* GetZoneDefWriterForGame(GameId game);
|
||||||
};
|
};
|
||||||
@@ -24,9 +24,9 @@ protected:
|
|||||||
static constexpr auto META_DATA_KEY_GAME = "game";
|
static constexpr auto META_DATA_KEY_GAME = "game";
|
||||||
static constexpr auto META_DATA_KEY_GDT = "gdt";
|
static constexpr auto META_DATA_KEY_GDT = "gdt";
|
||||||
|
|
||||||
virtual void WriteMetaData(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const = 0;
|
virtual void WriteMetaData(ZoneDefinitionOutputStream& stream, const Zone& zone) const = 0;
|
||||||
virtual void WriteContent(ZoneDefinitionOutputStream& stream, const UnlinkerArgs& args, const Zone& zone) const = 0;
|
virtual void WriteContent(ZoneDefinitionOutputStream& stream, const Zone& zone) const = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void WriteZoneDef(std::ostream& stream, const UnlinkerArgs& args, const Zone& zone) const override;
|
void WriteZoneDef(std::ostream& stream, const Zone& zone, bool useGdt) const override;
|
||||||
};
|
};
|
Reference in New Issue
Block a user