mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-19 15:52:53 +00:00
Mark scriptstrings as used even when referencing them via zone pointer
This commit is contained in:
parent
bb613e4fcf
commit
61a42afe28
@ -649,6 +649,11 @@ class ZoneLoadTemplate::Internal final : BaseTemplate
|
|||||||
|
|
||||||
LINE(MakeMemberAccess(info, member, modifier)<< " = m_stream->ConvertOffsetToPointer("<<MakeMemberAccess(info, member, modifier)<<");")
|
LINE(MakeMemberAccess(info, member, modifier)<< " = m_stream->ConvertOffsetToPointer("<<MakeMemberAccess(info, member, modifier)<<");")
|
||||||
|
|
||||||
|
if (member->m_is_script_string && loadType == MemberLoadType::ARRAY_POINTER)
|
||||||
|
{
|
||||||
|
LINE("MarkScriptStringArrayAsUsed(" << MakeMemberAccess(info, member, modifier) << ", " << MakeEvaluation(modifier.GetArrayPointerCountEvaluation()) << ");")
|
||||||
|
}
|
||||||
|
|
||||||
m_intendation--;
|
m_intendation--;
|
||||||
LINE("}")
|
LINE("}")
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,18 @@ void AssetLoader::LoadScriptStringArray(const bool atStreamStart, const size_t c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AssetLoader::MarkScriptStringArrayAsUsed(const scr_string_t* scrStringArray, const size_t count)
|
||||||
|
{
|
||||||
|
for (size_t index = 0; index < count; index++)
|
||||||
|
{
|
||||||
|
const auto scrString = scrStringArray[index];
|
||||||
|
if (scrString >= m_zone->m_script_strings.Count())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
m_used_script_strings.emplace(scrString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
XAssetInfoGeneric* AssetLoader::LinkAsset(std::string name, void* asset)
|
XAssetInfoGeneric* AssetLoader::LinkAsset(std::string name, void* asset)
|
||||||
{
|
{
|
||||||
std::vector<scr_string_t> usedScriptStrings;
|
std::vector<scr_string_t> usedScriptStrings;
|
||||||
|
@ -23,6 +23,7 @@ protected:
|
|||||||
|
|
||||||
scr_string_t UseScriptString(scr_string_t scrString);
|
scr_string_t UseScriptString(scr_string_t scrString);
|
||||||
void LoadScriptStringArray(bool atStreamStart, size_t count);
|
void LoadScriptStringArray(bool atStreamStart, size_t count);
|
||||||
|
void MarkScriptStringArrayAsUsed(const scr_string_t* scrStringArray, size_t count);
|
||||||
|
|
||||||
XAssetInfoGeneric* LinkAsset(std::string name, void* asset);
|
XAssetInfoGeneric* LinkAsset(std::string name, void* asset);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user