From e7c37574e74089c71959764c525c9977943fe2b6 Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 1 Mar 2021 12:54:41 +0100 Subject: [PATCH] Add dynamic array to zoneload zcg new --- .../Generating/Templates/ZoneLoadTemplate.cpp | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp index 546c70a2..53235e31 100644 --- a/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp +++ b/src/ZoneCodeGeneratorLib/Generating/Templates/ZoneLoadTemplate.cpp @@ -769,7 +769,29 @@ class ZoneLoadTemplate::Internal final : BaseTemplate void LoadMember_DynamicArray(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier) const { - LINE("// LoadDynamicArray: " << member->m_member->m_name) + /* + $if(member.StructureType && !member.StructureType.IsLeaf)$ + + $TypeVarName(member.Member.VariableType.Type)$ = $TypeVarName(structure.Type)$->$member.Member.Name$$PrintArrayIndices(reference)$;$\n$ + LoadArray_$member.Member.VariableType.Type.Name$(true, $PrintEvaluation(reference.DynamicArraySizeEvaluation)$); + + $else$ + + m_stream->Load<$TypeDeclaration(member.Member.VariableType)$$PrintFollowingReferences(reference.FollowingReferences)$>($TypeVarName(structure.Type)$->$member.Member.Name$$PrintArrayIndices(reference)$, $PrintEvaluation(reference.DynamicArraySizeEvaluation)$); + + $endif$ + */ + + if (member->m_type && member->m_type->m_is_leaf) + { + LINE(MakeTypeVarName(member->m_member->m_type_declaration->m_type) << " = " << MakeMemberAccess(info, member, modifier) << ";") + LINE("LoadArray_"<m_member->m_type_declaration->m_type)<<"(true, "<Load<"<m_member->m_type_declaration.get())<("<m_is_string) + if (member->m_is_string) { return false; }