2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-01-19 15:01:49 +00:00

fix: do not override properties of foreign zones

This commit is contained in:
Jan Laupetin
2025-12-25 15:29:32 +01:00
parent 2442d7160c
commit ba39e3f4d9
5 changed files with 32 additions and 17 deletions

View File

@@ -10,6 +10,14 @@ AssetWriter::AssetWriter(XAssetInfoGeneric* asset, const Zone& zone, IZoneOutput
{
}
const char* AssetWriter::NonReferenceAssetName(const char* assetName)
{
if (assetName && assetName[0] == ',')
return &assetName[1];
return assetName;
}
scr_string_t AssetWriter::UseScriptString(const scr_string_t scrString) const
{
assert(scrString < m_asset->m_zone->m_script_strings.Count());
@@ -17,9 +25,7 @@ scr_string_t AssetWriter::UseScriptString(const scr_string_t scrString) const
if (m_asset->m_zone == &m_zone)
return scrString;
// This swap should have already been performed in GlobalAssetPoolsLoader
assert(false);
// The asset comes from a different zone, we need to translate it
const auto strValue = m_asset->m_zone->m_script_strings.CValue(scrString);
return m_zone.m_script_strings.GetScriptString(strValue);
}