simplify puzzle data and auto run codegen

This commit is contained in:
Asuro
2025-03-14 01:33:38 +01:00
parent 97146664f2
commit de88190c47
9 changed files with 82 additions and 143 deletions

View File

@@ -144,50 +144,12 @@ namespace Generated
}
return isOk;
}
bool Save(const ElemPos* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(&obj[i].Position, 1, serializer) && isOk;
isOk = Save(&obj[i].ElemIdx, 1, serializer) && isOk;
}
return isOk;
}
bool Load(ElemPos* obj, uint32_t count, Deserializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(&obj[i].Position, 1, serializer) && isOk;
isOk = Load(&obj[i].ElemIdx, 1, serializer) && isOk;
}
return isOk;
}
bool Save(const PuzzleNode* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(obj[i].PlacedTypes, 4, serializer) && isOk;
}
return isOk;
}
bool Load(PuzzleNode* obj, uint32_t count, Deserializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(obj[i].PlacedTypes, 4, serializer) && isOk;
}
return isOk;
}
bool Save(const StaticPuzzleCard* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(obj[i].Nodes, 4, serializer) && isOk;
isOk = Save(obj[i].Elements, 4, serializer) && isOk;
isOk = Save(&obj[i].ModelHandle, 1, serializer) && isOk;
}
return isOk;
@@ -197,7 +159,7 @@ namespace Generated
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(obj[i].Nodes, 4, serializer) && isOk;
isOk = Load(obj[i].Elements, 4, serializer) && isOk;
isOk = Load(&obj[i].ModelHandle, 1, serializer) && isOk;
}
return isOk;
@@ -290,16 +252,16 @@ namespace Generated
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(&obj[i].ID, 1, serializer) && isOk;
isOk = Save(obj[i].PuzzleName, 64, serializer) && isOk;
isOk = Save(&obj[i].WidthTiles, 1, serializer) && isOk;
isOk = Save(&obj[i].HeightTiles, 1, serializer) && isOk;
isOk = Save(&obj[i].AvailableCardCount, 1, serializer) && isOk;
isOk = Save(obj[i].AvailableCards, 16, serializer) && isOk;
isOk = Save(&obj[i].PlacedCardCount, 1, serializer) && isOk;
isOk = Save(obj[i].PlacedCards, 256, serializer) && isOk;
isOk = Save(obj[i].PlacedNodes, 1024, serializer) && isOk;
isOk = Save(obj[i].BackgroundTiles, 1024, serializer) && isOk;
isOk = Save(&obj[i].GoalPositionCount, 1, serializer) && isOk;
isOk = Save(obj[i].GoalPositions, 16, serializer) && isOk;
isOk = Save(obj[i].PuzzleName, 64, serializer) && isOk;
}
return isOk;
}
@@ -309,16 +271,16 @@ namespace Generated
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(&obj[i].ID, 1, serializer) && isOk;
isOk = Load(obj[i].PuzzleName, 64, serializer) && isOk;
isOk = Load(&obj[i].WidthTiles, 1, serializer) && isOk;
isOk = Load(&obj[i].HeightTiles, 1, serializer) && isOk;
isOk = Load(&obj[i].AvailableCardCount, 1, serializer) && isOk;
isOk = Load(obj[i].AvailableCards, 16, serializer) && isOk;
isOk = Load(&obj[i].PlacedCardCount, 1, serializer) && isOk;
isOk = Load(obj[i].PlacedCards, 256, serializer) && isOk;
isOk = Load(obj[i].PlacedNodes, 1024, serializer) && isOk;
isOk = Load(obj[i].BackgroundTiles, 1024, serializer) && isOk;
isOk = Load(&obj[i].GoalPositionCount, 1, serializer) && isOk;
isOk = Load(obj[i].GoalPositions, 16, serializer) && isOk;
isOk = Load(obj[i].PuzzleName, 64, serializer) && isOk;
}
return isOk;
}

View File

@@ -98,21 +98,10 @@ namespace Generated
int8_t X = {};
int8_t Y = {};
};
struct ElemPos
{
static constexpr uint32_t Hash = 3966109730;
PuzPos Position = {};
uint8_t ElemIdx = {};
};
struct PuzzleNode
{
static constexpr uint32_t Hash = 1417779061;
PuzzleElementType::Enum PlacedTypes[4] = {};
};
struct StaticPuzzleCard
{
static constexpr uint32_t Hash = 110653106;
PuzzleNode Nodes[4] = {};
static constexpr uint32_t Hash = 2507139249;
PuzzleElementType::Enum Elements[4] = {};
uint16_t ModelHandle = {};
};
struct StaticPuzzleCardHandle
@@ -122,7 +111,7 @@ namespace Generated
};
struct StaticPuzzleData
{
static constexpr uint32_t Hash = 1881743597;
static constexpr uint32_t Hash = 3210954810;
StaticPuzzleCard Cards[64] = {};
};
struct PuzzleCardStack
@@ -142,18 +131,18 @@ namespace Generated
};
struct PuzzleData
{
static constexpr uint32_t Hash = 255994202;
static constexpr uint32_t Hash = 2775382112;
uint16_t ID = {};
char PuzzleName[64] = {};
uint8_t WidthTiles = {};
uint8_t HeightTiles = {};
uint32_t AvailableCardCount = {};
PuzzleCardStack AvailableCards[16] = {};
uint32_t PlacedCardCount = {};
PlacedPuzzleCard PlacedCards[256] = {};
PuzzleNode PlacedNodes[1024] = {};
PuzzleElementType::Enum BackgroundTiles[1024] = {};
uint32_t GoalPositionCount = {};
ElemPos GoalPositions[16] = {};
char PuzzleName[64] = {};
PuzPos GoalPositions[16] = {};
};
bool Save(const PuzzleElementType::Enum* obj, uint32_t count, Serializer& serializer);
bool Load(PuzzleElementType::Enum* obj, uint32_t count, Deserializer& serializer);
@@ -169,10 +158,6 @@ namespace Generated
bool Load(Mat4* obj, uint32_t count, Deserializer& serializer);
bool Save(const PuzPos* obj, uint32_t count, Serializer& serializer);
bool Load(PuzPos* obj, uint32_t count, Deserializer& serializer);
bool Save(const ElemPos* obj, uint32_t count, Serializer& serializer);
bool Load(ElemPos* obj, uint32_t count, Deserializer& serializer);
bool Save(const PuzzleNode* obj, uint32_t count, Serializer& serializer);
bool Load(PuzzleNode* obj, uint32_t count, Deserializer& serializer);
bool Save(const StaticPuzzleCard* obj, uint32_t count, Serializer& serializer);
bool Load(StaticPuzzleCard* obj, uint32_t count, Deserializer& serializer);
bool Save(const StaticPuzzleCardHandle* obj, uint32_t count, Serializer& serializer);