diff --git a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp index 7ceda1e9..d027ebec 100644 --- a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp +++ b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneWriteTemplate.cpp @@ -865,9 +865,13 @@ class ZoneWriteTemplate::Internal final : BaseTemplate m_intendation++; LINE("assert(pAsset != nullptr);") + LINE("assert(m_asset != nullptr);") + LINE("assert(m_asset->m_ptr != nullptr);") LINE("") - LINE(MakeTypePtrVarName(m_env.m_asset->m_definition) << " = pAsset;") + LINE("auto* zoneAsset = static_cast<"<m_definition->GetFullName()<<"*>(m_asset->m_ptr);") + LINE(MakeTypePtrVarName(m_env.m_asset->m_definition) << " = &zoneAsset;") LINE("WritePtr_" << MakeSafeTypeName(m_env.m_asset->m_definition) << "(false);") + LINE("*pAsset = zoneAsset;") m_intendation--; LINE("}") diff --git a/src/ZoneWriting/Writing/AssetWriter.h b/src/ZoneWriting/Writing/AssetWriter.h index 8dafb3a2..6442c878 100644 --- a/src/ZoneWriting/Writing/AssetWriter.h +++ b/src/ZoneWriting/Writing/AssetWriter.h @@ -8,9 +8,9 @@ class AssetWriter : public ContentWriterBase { +protected: XAssetInfoGeneric* m_asset; -protected: scr_string_t* varScriptString; AssetWriter(XAssetInfoGeneric* asset, Zone* zone, IZoneOutputStream* stream);