fix enum upgrades

This commit is contained in:
Asuro
2025-04-13 00:24:03 +02:00
parent c9db7e7e8f
commit adbe518c6e
6 changed files with 58 additions and 51 deletions

View File

@@ -1272,6 +1272,7 @@ namespace Gen
{
isOk = Save(obj[i].Elements, 4, serializer) && isOk;
isOk = Save(&obj[i].ModelHandle, 1, serializer) && isOk;
isOk = Save(&obj[i].ModelTextureHandle, 1, serializer) && isOk;
isOk = Save(&obj[i].BoardTextureHandle, 1, serializer) && isOk;
}
return isOk;
@@ -1291,6 +1292,7 @@ namespace Gen
{
isOk = Load(obj[i].Elements, 4, serializer) && isOk;
isOk = Load(&obj[i].ModelHandle, 1, serializer) && isOk;
isOk = Load(&obj[i].ModelTextureHandle, 1, serializer) && isOk;
isOk = Load(&obj[i].BoardTextureHandle, 1, serializer) && isOk;
}
// if we're not ok here, something went really wrong
@@ -1319,7 +1321,7 @@ namespace Gen
{
const bx::StringView memberName = {&serializer.MemberNameBuf[matchedDef.MemberNameIndices[i].Offset], matchedDef.MemberNameIndices[i].Size};
const char* memberTypeName = serializer.TypeBuf.Defs[matchedDef.ChildIndices[i]].Name;
if (bx::strCmp(memberName, "Elements") == 0 && bx::strCmp(memberTypeName, "PuzzleElementType::Enum") == 0)
if (bx::strCmp(memberName, "Elements") == 0 && bx::strCmp(memberTypeName, "PuzzleElementType") == 0)
{
WriteDestinations[i] = offsetof(StaticPuzzleCard, Elements);
}
@@ -1327,6 +1329,10 @@ namespace Gen
{
WriteDestinations[i] = offsetof(StaticPuzzleCard, ModelHandle);
}
if (bx::strCmp(memberName, "ModelTextureHandle") == 0 && bx::strCmp(memberTypeName, "TextureHandle") == 0)
{
WriteDestinations[i] = offsetof(StaticPuzzleCard, ModelTextureHandle);
}
if (bx::strCmp(memberName, "BoardTextureHandle") == 0 && bx::strCmp(memberTypeName, "TextureHandle") == 0)
{
WriteDestinations[i] = offsetof(StaticPuzzleCard, BoardTextureHandle);
@@ -1362,6 +1368,12 @@ namespace Gen
isOk = Load(fieldPtr, 1, serializer) && isOk;
continue;
}
if (bx::strCmp(memberName, "ModelTextureHandle") == 0)
{
auto* fieldPtr = reinterpret_cast<TextureHandle*>(objBasePtr + WriteDestinations[j]);
isOk = Load(fieldPtr, 1, serializer) && isOk;
continue;
}
if (bx::strCmp(memberName, "BoardTextureHandle") == 0)
{
auto* fieldPtr = reinterpret_cast<TextureHandle*>(objBasePtr + WriteDestinations[j]);
@@ -2003,7 +2015,7 @@ namespace Gen
{
WriteDestinations[i] = offsetof(PuzzleData, PlacedCards);
}
if (bx::strCmp(memberName, "BackgroundTiles") == 0 && bx::strCmp(memberTypeName, "PuzzleElementType::Enum") == 0)
if (bx::strCmp(memberName, "BackgroundTiles") == 0 && bx::strCmp(memberTypeName, "PuzzleElementType") == 0)
{
WriteDestinations[i] = offsetof(PuzzleData, BackgroundTiles);
}
@@ -2174,7 +2186,7 @@ namespace Gen
{
WriteDestinations[i] = offsetof(SavedEntityRenderData, TF);
}
if (bx::strCmp(memberName, "Material") == 0 && bx::strCmp(memberTypeName, "EMaterial::Enum") == 0)
if (bx::strCmp(memberName, "Material") == 0 && bx::strCmp(memberTypeName, "EMaterial") == 0)
{
WriteDestinations[i] = offsetof(SavedEntityRenderData, Material);
}