move transform to generated data

This commit is contained in:
Asuro
2025-03-31 02:01:14 +02:00
parent 29a3aaf241
commit 4ba65713ef
23 changed files with 323 additions and 190 deletions

View File

@@ -1,3 +1,4 @@
#include "Def.h"
#include "Generated.h"
namespace Gen
@@ -22,6 +23,26 @@ namespace Gen
}
return isOk;
}
bool Save(const EMaterial::Enum* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
auto val = (int32_t)obj[i];
isOk = Save(&val, 1, serializer) && isOk;
}
return isOk;
}
bool Load(EMaterial::Enum* obj, uint32_t count, Deserializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
int32_t& val = (int32_t&)obj[i];
isOk = Load(&val, 1, serializer) && isOk;
}
return isOk;
}
bool Save(const Vec2* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
@@ -124,6 +145,32 @@ namespace Gen
}
return isOk;
}
bool Save(const Transform* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(&obj[i].M, 1, serializer) && isOk;
isOk = Save(&obj[i].MI, 1, serializer) && isOk;
isOk = Save(&obj[i].Position, 1, serializer) && isOk;
isOk = Save(&obj[i].Rotation, 1, serializer) && isOk;
isOk = Save(&obj[i].Scale, 1, serializer) && isOk;
}
return isOk;
}
bool Load(Transform* obj, uint32_t count, Deserializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(&obj[i].M, 1, serializer) && isOk;
isOk = Load(&obj[i].MI, 1, serializer) && isOk;
isOk = Load(&obj[i].Position, 1, serializer) && isOk;
isOk = Load(&obj[i].Rotation, 1, serializer) && isOk;
isOk = Load(&obj[i].Scale, 1, serializer) && isOk;
}
return isOk;
}
bool Save(const AssetHandle* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
@@ -366,4 +413,34 @@ namespace Gen
}
return isOk;
}
} // namespace Gen
bool Save(const SavedEntityRenderData* obj, uint32_t count, Serializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Save(&obj[i].BaseColor, 1, serializer) && isOk;
isOk = Save(&obj[i].HighlightColor, 1, serializer) && isOk;
isOk = Save(&obj[i].TF, 1, serializer) && isOk;
isOk = Save(&obj[i].Material, 1, serializer) && isOk;
isOk = Save(&obj[i].Texture, 1, serializer) && isOk;
isOk = Save(&obj[i].Model, 1, serializer) && isOk;
isOk = Save(&obj[i].Visible, 1, serializer) && isOk;
}
return isOk;
}
bool Load(SavedEntityRenderData* obj, uint32_t count, Deserializer& serializer)
{
bool isOk = true;
for (uint32_t i = 0; i < count; ++i)
{
isOk = Load(&obj[i].BaseColor, 1, serializer) && isOk;
isOk = Load(&obj[i].HighlightColor, 1, serializer) && isOk;
isOk = Load(&obj[i].TF, 1, serializer) && isOk;
isOk = Load(&obj[i].Material, 1, serializer) && isOk;
isOk = Load(&obj[i].Texture, 1, serializer) && isOk;
isOk = Load(&obj[i].Model, 1, serializer) && isOk;
isOk = Load(&obj[i].Visible, 1, serializer) && isOk;
}
return isOk;
}
}

View File

@@ -1,12 +1,14 @@
#pragma once
#include "Def.h"
#include <cstdint>
namespace Gen
{
struct Serializer;
struct Deserializer;
struct PuzzleElementType
{
static constexpr uint32_t Hash = 2024002654;
static constexpr int32_t EntryCount = 8;
static constexpr uint32_t Hash = 2024002654;
enum Enum : int32_t
{
None,
@@ -18,7 +20,8 @@ namespace Gen
Blocked,
Bridge,
};
static constexpr char EntryNames[EntryCount][64]{
static constexpr char EntryNames[EntryCount][64]
{
"None",
"WaterIn",
"WaterGoal",
@@ -28,7 +31,8 @@ namespace Gen
"Blocked",
"Bridge",
};
static constexpr char GameName[EntryCount][64]{
static constexpr char GameName[EntryCount][64]
{
"Empty",
"Water Source",
"Water Goal",
@@ -38,7 +42,8 @@ namespace Gen
"Blocked",
"Bridge",
};
static constexpr char ShortName[EntryCount][64]{
static constexpr char ShortName[EntryCount][64]
{
" ",
"~+",
"~!",
@@ -49,6 +54,21 @@ namespace Gen
"#",
};
};
struct EMaterial
{
static constexpr int32_t EntryCount = 2;
static constexpr uint32_t Hash = 2024002654;
enum Enum : int32_t
{
Default,
UI,
};
static constexpr char EntryNames[EntryCount][64]
{
"Default",
"UI",
};
};
struct Vec2
{
static constexpr uint32_t Hash = 2667033957;
@@ -73,12 +93,30 @@ namespace Gen
struct Mat3
{
static constexpr uint32_t Hash = 3364737048;
float M[9] = {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f};
float M[9] = {
1.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 1.0f
};
};
struct Mat4
{
static constexpr uint32_t Hash = 1650094019;
float M[16] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
float M[16] = {
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
};
};
struct Transform
{
static constexpr uint32_t Hash = 4103530190;
Mat4 M = {};
Mat4 MI = {};
Vec3 Position = {};
Mat4 Rotation = {};
Vec3 Scale = {1.0f, 1.0f, 1.0f};
};
struct AssetHandle
{
@@ -157,8 +195,21 @@ namespace Gen
uint32_t GoalPositionCount = {};
PuzPos GoalPositions[16] = {};
};
struct SavedEntityRenderData
{
static constexpr uint32_t Hash = 3172756855;
Vec4 BaseColor = {};
Vec4 HighlightColor = {};
Transform TF = {};
EMaterial::Enum Material = {};
TextureHandle Texture = {};
ModelHandle Model = {};
bool Visible = {};
};
bool Save(const PuzzleElementType::Enum* obj, uint32_t count, Serializer& serializer);
bool Load(PuzzleElementType::Enum* obj, uint32_t count, Deserializer& serializer);
bool Save(const EMaterial::Enum* obj, uint32_t count, Serializer& serializer);
bool Load(EMaterial::Enum* obj, uint32_t count, Deserializer& serializer);
bool Save(const Vec2* obj, uint32_t count, Serializer& serializer);
bool Load(Vec2* obj, uint32_t count, Deserializer& serializer);
bool Save(const Vec3* obj, uint32_t count, Serializer& serializer);
@@ -169,6 +220,8 @@ namespace Gen
bool Load(Mat3* obj, uint32_t count, Deserializer& serializer);
bool Save(const Mat4* obj, uint32_t count, Serializer& serializer);
bool Load(Mat4* obj, uint32_t count, Deserializer& serializer);
bool Save(const Transform* obj, uint32_t count, Serializer& serializer);
bool Load(Transform* obj, uint32_t count, Deserializer& serializer);
bool Save(const AssetHandle* obj, uint32_t count, Serializer& serializer);
bool Load(AssetHandle* obj, uint32_t count, Deserializer& serializer);
bool Save(const ModelHandle* obj, uint32_t count, Serializer& serializer);
@@ -191,4 +244,6 @@ namespace Gen
bool Load(PlacedPuzzleCard* obj, uint32_t count, Deserializer& serializer);
bool Save(const PuzzleData* obj, uint32_t count, Serializer& serializer);
bool Load(PuzzleData* obj, uint32_t count, Deserializer& serializer);
} // namespace Gen
bool Save(const SavedEntityRenderData* obj, uint32_t count, Serializer& serializer);
bool Load(SavedEntityRenderData* obj, uint32_t count, Deserializer& serializer);
}

Binary file not shown.