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

refactor: use ZoneOutputOffset for written variables

This commit is contained in:
Jan Laupetin
2026-01-09 17:41:03 +00:00
parent 2b2590b8fb
commit 6ea2e7faad
20 changed files with 241 additions and 189 deletions

View File

@@ -18,16 +18,16 @@ const char* AssetWriter::NonReferenceAssetName(const char* assetName)
return assetName;
}
scr_string_t AssetWriter::UseScriptString(const scr_string_t scrString) const
void AssetWriter::UseScriptString(const scr_string_t scrString, const ZoneOutputOffset written) const
{
assert(scrString < m_asset->m_zone->m_script_strings.Count());
if (m_asset->m_zone == &m_zone)
return scrString;
return;
// 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);
*static_cast<scr_string_t*>(written.Offset()) = m_zone.m_script_strings.GetScriptString(strValue);
}
void AssetWriter::WriteScriptStringArray(const bool atStreamStart, const size_t count)
@@ -42,7 +42,7 @@ void AssetWriter::WriteScriptStringArray(const bool atStreamStart, const size_t
for (size_t index = 0; index < count; index++)
{
*static_cast<scr_string_t*>(varScriptStringWritten.Offset()) = UseScriptString(*varScriptString);
UseScriptString(*varScriptString, varScriptStringWritten);
varScriptString++;
varScriptStringWritten.Inc(sizeof(scr_string_t));