From 383c6f975b9583f2e0df06ba818fe4f4866878c8 Mon Sep 17 00:00:00 2001 From: Asuro Date: Sat, 31 May 2025 00:20:23 +0200 Subject: [PATCH] fix asset upgrade for arrays --- src/dependency/minidef/src/CppGen.cpp | 5 ++++- tools/minidef.exe | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/dependency/minidef/src/CppGen.cpp b/src/dependency/minidef/src/CppGen.cpp index 7b2b9e4..559e5bc 100644 --- a/src/dependency/minidef/src/CppGen.cpp +++ b/src/dependency/minidef/src/CppGen.cpp @@ -198,7 +198,10 @@ namespace Gen constexpr char LoadFuncBodyTypeUpgradeMember3[] = R"END( if (bx::strCmp(memberName, "%s") == 0) { auto* fieldPtr = reinterpret_cast<%s*>(objBasePtr + WriteDestinations[j]); - isOk = Load(fieldPtr, %u, serializer) && isOk; + uint16_t wantedCount = %u; + uint16_t existingCount = matchedDef.ChildArraySizes[j]; + isOk = Load(fieldPtr, bx::min(wantedCount, existingCount), serializer) && isOk; + if (existingCount > wantedCount) serializer.Skip((existingCount - wantedCount) * childDef.Size); continue; } )END"; diff --git a/tools/minidef.exe b/tools/minidef.exe index 77a0bc1..edbbfc2 100644 --- a/tools/minidef.exe +++ b/tools/minidef.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f91d7e94592728777e6fde5a595e9179b26d9e61985e9434dcad8a92b03b158d -size 154112 +oid sha256:b347513bb83f950d81926f2e8be0dd5d07d5fb0c230b2197903d99d6ea2c8f3f +size 168960