refactor: support multiple variants for games in zonecode

This commit is contained in:
Jan Laupetin committed 2026-10-31 07:50:46 +01:00
1 parent c266c160a8
commit bf89ae06ae
61 files changed
+411 -288

No files matched your search

@@ -6,9 +6,10 @@
OncePerTemplateRenderingContext::OncePerTemplateRenderingContext(std::string game,
const WordSize gameWordSize,
const std::endian endianness,
std::vector<const FastFileBlock*> fastFileBlocks,
std::vector<StructureInformation*> assets)
: BaseRenderingContext(std::move(game), gameWordSize, std::move(fastFileBlocks)),
: BaseRenderingContext(std::move(game), gameWordSize, endianness, std::move(fastFileBlocks)),
m_assets(std::move(assets))
{
for (const auto* block : m_blocks)
@@ -23,7 +24,7 @@ OncePerTemplateRenderingContext::OncePerTemplateRenderingContext(std::string gam
}
}
std::unique_ptr<OncePerTemplateRenderingContext> OncePerTemplateRenderingContext::BuildContext(const IDataRepository* repository)
std::unique_ptr<OncePerTemplateRenderingContext> OncePerTemplateRenderingContext::BuildContext(const IDataRepository* repository, const GameVariant* variant)
{
std::vector<StructureInformation*> assetInformation;
for (auto* info : repository->GetAllStructureInformation())
@@ -34,6 +35,6 @@ std::unique_ptr<OncePerTemplateRenderingContext> OncePerTemplateRenderingContext
assetInformation.emplace_back(info);
}
return std::make_unique<OncePerTemplateRenderingContext>(
OncePerTemplateRenderingContext(repository->GetGameName(), repository->GetWordSize(), repository->GetAllFastFileBlocks(), assetInformation));
return std::make_unique<OncePerTemplateRenderingContext>(OncePerTemplateRenderingContext(
repository->GetGameName(), variant->m_word_size, variant->m_endianness, repository->GetAllFastFileBlocks(), assetInformation));
}