fix upgrades one more time
This commit is contained in:
@@ -166,7 +166,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -204,6 +205,8 @@ namespace Gen
|
||||
)END";
|
||||
constexpr char MetadataStart1[] = R"END(
|
||||
namespace Meta {
|
||||
constexpr uint16_t CurrentMetaVersion = 1;
|
||||
|
||||
struct StrRef
|
||||
{
|
||||
uint16_t Offset;
|
||||
@@ -217,6 +220,7 @@ namespace Gen
|
||||
char Name[64]{"Dummy"};
|
||||
uint16_t ChildCount = 0;
|
||||
uint16_t ChildIndices[64]{0};
|
||||
uint16_t ChildArraySizes[64]{0};
|
||||
StrRef MemberNameIndices[64]{0};
|
||||
};
|
||||
|
||||
@@ -226,7 +230,7 @@ namespace Gen
|
||||
{
|
||||
)END";
|
||||
|
||||
constexpr char MetadataTypeEntry6[] = R"END( TypeDef{sizeof(%s), %u, "%s", %u, {%s}, {%s}},
|
||||
constexpr char MetadataTypeEntry7[] = R"END( TypeDef{sizeof(%s), %u, "%s", %u, {%s}, {%s}, {%s}},
|
||||
)END";
|
||||
constexpr char MetadataEnd1[] = R"END( };
|
||||
char MemberNameBuffer[64*64*64]{"%s"};
|
||||
@@ -505,8 +509,24 @@ void CppFileWriter::WriteMetadata(const Def::DefinitionFile& definitions)
|
||||
sizeof(MemberNameBuffer) - memberNameBufferIdx,
|
||||
type.FieldNames[j]);
|
||||
}
|
||||
Write(
|
||||
WriteTemplates::MetadataTypeEntry6, typeStr, type.Hash, type.Name, type.FieldCount, fieldStr, memberIdxStr);
|
||||
|
||||
char arrStr[256]{0};
|
||||
for (int32_t j = 0; j < type.FieldCount; ++j)
|
||||
{
|
||||
if (j != 0) bx::strCat(arrStr, sizeof(arrStr), ", ");
|
||||
char numBuf[16]{0};
|
||||
bx::snprintf(numBuf, sizeof(numBuf), "%u", type.FieldArraySizes[j]);
|
||||
bx::strCat(arrStr, sizeof(arrStr), numBuf);
|
||||
}
|
||||
|
||||
Write(WriteTemplates::MetadataTypeEntry7,
|
||||
typeStr,
|
||||
type.Hash,
|
||||
type.Name,
|
||||
type.FieldCount,
|
||||
fieldStr,
|
||||
arrStr,
|
||||
memberIdxStr);
|
||||
}
|
||||
for (uint16_t i = 0; i < definitions.EnumCount; ++i)
|
||||
{
|
||||
@@ -515,7 +535,7 @@ void CppFileWriter::WriteMetadata(const Def::DefinitionFile& definitions)
|
||||
char typeStr[Def::MaxNameLength]{0};
|
||||
PrintTypeName(typeStr, sizeof(typeStr), {i, Def::EFieldType::DefinedEnum}, definitions);
|
||||
|
||||
Write(WriteTemplates::MetadataTypeEntry6, typeStr, enumType.Hash, enumType.Name, 0, "", "");
|
||||
Write(WriteTemplates::MetadataTypeEntry7, typeStr, enumType.Hash, enumType.Name, 0, "", "", "");
|
||||
}
|
||||
Write(WriteTemplates::MetadataEnd1, MemberNameBuffer);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Game
|
||||
float FreeflyYRot = 0.0f;
|
||||
float WalkXRot = 0.0f;
|
||||
float WalkYRot = 0.0f;
|
||||
CameraMode CameraM = CameraMode::Freefly;
|
||||
CameraMode CameraM = CameraMode::Walk;
|
||||
InputMode InputM = InputMode::Game;
|
||||
InteractionMode InteractionM = InteractionMode::Walk;
|
||||
float MouseSensitivity = 1.0f;
|
||||
|
||||
@@ -521,7 +521,8 @@ namespace Game
|
||||
|
||||
// World Tile
|
||||
tile.EData.Visible = IsActive;
|
||||
tile.EData.ModelH = isValid ? staticCards[card.RefCard.Idx].ModelHandle : staticCards[0].ModelHandle;
|
||||
tile.EData.ModelH =
|
||||
isValid ? staticCards[card.RefCard.Idx].BaseModelHandle : staticCards[0].BaseModelHandle;
|
||||
tile.EData.DotColor = visuals.TileDotColor;
|
||||
tile.EData.BaseColor = visuals.TileBaseColor;
|
||||
|
||||
|
||||
@@ -50,12 +50,12 @@ namespace Tools
|
||||
return changed;
|
||||
}
|
||||
|
||||
bool ModelDropdown(Gen::ModelHandle& modelHandle)
|
||||
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* name)
|
||||
{
|
||||
bool changed = false;
|
||||
auto& R = Game::GameRendering::Get();
|
||||
const char* name = GetAssetPath(modelHandle.Asset);
|
||||
if (ImGui::BeginCombo("Model", name))
|
||||
const char* assetName = GetAssetPath(modelHandle.Asset);
|
||||
if (ImGui::BeginCombo(name, assetName))
|
||||
{
|
||||
for (int32_t i = 0; i < R.ModelCount; ++i)
|
||||
{
|
||||
@@ -360,34 +360,15 @@ namespace Tools
|
||||
ImGui::End();
|
||||
if (ImGui::Begin("Puzzles"))
|
||||
{
|
||||
if (ImGui::Button("Add"))
|
||||
{
|
||||
bool found = false;
|
||||
for (int32_t i = 0; i < BX_COUNTOF(level.Puzzles); ++i)
|
||||
{
|
||||
auto& puz = level.Puzzles[i].Data;
|
||||
if (puz.ID == UINT16_MAX)
|
||||
{
|
||||
bx::strCopy(puz.PuzzleName, sizeof(puz.PuzzleName), "Unnamed Puzzle");
|
||||
puz.ID = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
LOG_ERROR("Too many puzzles!");
|
||||
}
|
||||
}
|
||||
ImGui::Separator();
|
||||
char nameBuf[64]{0};
|
||||
for (int32_t i = 0; i < BX_COUNTOF(level.Puzzles); ++i)
|
||||
{
|
||||
auto& puzzleData = level.Puzzles[i].Data;
|
||||
if (puzzleData.ID == UINT16_MAX) continue;
|
||||
|
||||
bool isSelected = debug.SelectedDebugLevel == i;
|
||||
ImGui::PushID("selectable");
|
||||
if (ImGui::Selectable(puzzleData.PuzzleName, isSelected))
|
||||
bx::snprintf(nameBuf, sizeof(nameBuf), "%u: %s", i, puzzleData.PuzzleName);
|
||||
if (ImGui::Selectable(nameBuf, isSelected))
|
||||
{
|
||||
debug.SelectedDebugLevel = isSelected ? UINT16_MAX : i;
|
||||
}
|
||||
@@ -438,8 +419,19 @@ namespace Tools
|
||||
ImGui::EndDragDropSource();
|
||||
}
|
||||
|
||||
Tools::ModelDropdown(card.ModelHandle);
|
||||
Tools::ModelDropdown(card.BaseModelHandle);
|
||||
Tools::TextureDropdown(card.BoardTextureHandle);
|
||||
if (ImGui::TreeNodeEx("Covers"))
|
||||
{
|
||||
Tools::ModelDropdown(card.NorthCoverHandle, "North Cover");
|
||||
Tools::ModelDropdown(card.EastCoverHandle, "East Cover");
|
||||
Tools::ModelDropdown(card.SouthCoverHandle, "South Cover");
|
||||
Tools::ModelDropdown(card.WestCoverHandle, "West Cover");
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
ImGui::Text("Card");
|
||||
for (int8_t y = 0; y < Puzzle::Config::CardSize; ++y)
|
||||
{
|
||||
ImGui::PushID(y);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
namespace Tools
|
||||
{
|
||||
bool EntityDataSettings(Gen::SavedEntityRenderData& data);
|
||||
bool ModelDropdown(Gen::ModelHandle& modelHandle);
|
||||
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* name = "Model");
|
||||
bool TextureDropdown(Gen::TextureHandle& texHandle);
|
||||
bool MaterialDropdown(Gen::EMaterial::Enum& material);
|
||||
bool TransformUI(Gen::Transform& transform);
|
||||
|
||||
BIN
src/game/data/puzzles/0.pzl
LFS
BIN
src/game/data/puzzles/0.pzl
LFS
Binary file not shown.
BIN
src/game/data/puzzles/1.pzl
LFS
BIN
src/game/data/puzzles/1.pzl
LFS
Binary file not shown.
BIN
src/game/data/puzzles/2.pzl
LFS
BIN
src/game/data/puzzles/2.pzl
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -85,7 +85,11 @@ enum PuzzleElementType(u8)
|
||||
type StaticPuzzleCard
|
||||
{
|
||||
PuzzleElementType Elements Arr(4)
|
||||
ModelHandle ModelHandle
|
||||
ModelHandle BaseModelHandle
|
||||
ModelHandle NorthCoverHandle
|
||||
ModelHandle EastCoverHandle
|
||||
ModelHandle SouthCoverHandle
|
||||
ModelHandle WestCoverHandle
|
||||
TextureHandle ModelTextureHandle
|
||||
TextureHandle BoardTextureHandle
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@ namespace Gen
|
||||
header.TypeDataSize = header.TypeCount * sizeof(Meta::TypeDef);
|
||||
header.MemberDataSize = bx::strLen(Meta::Metadata.MemberNameBuffer);
|
||||
|
||||
if (!Write(&Meta::CurrentMetaVersion, sizeof(Meta::CurrentMetaVersion))) return false;
|
||||
if (!Write(&header, sizeof(header))) return false;
|
||||
for (int32_t i = 0; i < typeBuf.DefCount; ++i)
|
||||
{
|
||||
@@ -214,6 +215,15 @@ namespace Gen
|
||||
|
||||
template <typename T> bool ReadT(T& data)
|
||||
{
|
||||
uint16_t metadataVersion = 0;
|
||||
if (!Read(&metadataVersion, sizeof(Meta::CurrentMetaVersion))) return false;
|
||||
if (metadataVersion != Meta::CurrentMetaVersion)
|
||||
{
|
||||
// TODO: upgrade?
|
||||
LOG_ERROR("Metadata version mismatch: %u != %u", metadataVersion, Meta::CurrentMetaVersion);
|
||||
return false;
|
||||
}
|
||||
|
||||
EmbeddedTypeInfoHeader header;
|
||||
if (!Read(&header, sizeof(header))) return false;
|
||||
|
||||
|
||||
@@ -334,7 +334,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -437,7 +438,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -552,7 +554,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -655,7 +658,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -740,7 +744,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -849,7 +854,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -958,7 +964,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1049,7 +1056,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1146,7 +1154,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1243,7 +1252,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1271,7 +1281,11 @@ namespace Gen
|
||||
for (uint32_t i = 0; i < count; ++i)
|
||||
{
|
||||
isOk = Save(obj[i].Elements, 4, serializer) && isOk;
|
||||
isOk = Save(&obj[i].ModelHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].BaseModelHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].NorthCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].EastCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].SouthCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].WestCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].ModelTextureHandle, 1, serializer) && isOk;
|
||||
isOk = Save(&obj[i].BoardTextureHandle, 1, serializer) && isOk;
|
||||
}
|
||||
@@ -1291,7 +1305,11 @@ namespace Gen
|
||||
for (uint32_t i = 0; i < count; ++i)
|
||||
{
|
||||
isOk = Load(obj[i].Elements, 4, serializer) && isOk;
|
||||
isOk = Load(&obj[i].ModelHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].BaseModelHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].NorthCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].EastCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].SouthCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].WestCoverHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].ModelTextureHandle, 1, serializer) && isOk;
|
||||
isOk = Load(&obj[i].BoardTextureHandle, 1, serializer) && isOk;
|
||||
}
|
||||
@@ -1325,9 +1343,25 @@ namespace Gen
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, Elements);
|
||||
}
|
||||
if (bx::strCmp(memberName, "ModelHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
if (bx::strCmp(memberName, "BaseModelHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, ModelHandle);
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, BaseModelHandle);
|
||||
}
|
||||
if (bx::strCmp(memberName, "NorthCoverHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, NorthCoverHandle);
|
||||
}
|
||||
if (bx::strCmp(memberName, "EastCoverHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, EastCoverHandle);
|
||||
}
|
||||
if (bx::strCmp(memberName, "SouthCoverHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, SouthCoverHandle);
|
||||
}
|
||||
if (bx::strCmp(memberName, "WestCoverHandle") == 0 && bx::strCmp(memberTypeName, "ModelHandle") == 0)
|
||||
{
|
||||
WriteDestinations[i] = offsetof(StaticPuzzleCard, WestCoverHandle);
|
||||
}
|
||||
if (bx::strCmp(memberName, "ModelTextureHandle") == 0 && bx::strCmp(memberTypeName, "TextureHandle") == 0)
|
||||
{
|
||||
@@ -1352,7 +1386,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1362,7 +1397,31 @@ namespace Gen
|
||||
isOk = Load(fieldPtr, 4, serializer) && isOk;
|
||||
continue;
|
||||
}
|
||||
if (bx::strCmp(memberName, "ModelHandle") == 0)
|
||||
if (bx::strCmp(memberName, "BaseModelHandle") == 0)
|
||||
{
|
||||
auto* fieldPtr = reinterpret_cast<ModelHandle*>(objBasePtr + WriteDestinations[j]);
|
||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||
continue;
|
||||
}
|
||||
if (bx::strCmp(memberName, "NorthCoverHandle") == 0)
|
||||
{
|
||||
auto* fieldPtr = reinterpret_cast<ModelHandle*>(objBasePtr + WriteDestinations[j]);
|
||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||
continue;
|
||||
}
|
||||
if (bx::strCmp(memberName, "EastCoverHandle") == 0)
|
||||
{
|
||||
auto* fieldPtr = reinterpret_cast<ModelHandle*>(objBasePtr + WriteDestinations[j]);
|
||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||
continue;
|
||||
}
|
||||
if (bx::strCmp(memberName, "SouthCoverHandle") == 0)
|
||||
{
|
||||
auto* fieldPtr = reinterpret_cast<ModelHandle*>(objBasePtr + WriteDestinations[j]);
|
||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||
continue;
|
||||
}
|
||||
if (bx::strCmp(memberName, "WestCoverHandle") == 0)
|
||||
{
|
||||
auto* fieldPtr = reinterpret_cast<ModelHandle*>(objBasePtr + WriteDestinations[j]);
|
||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||
@@ -1455,7 +1514,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1558,7 +1618,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1667,7 +1728,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1770,7 +1832,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1885,7 +1948,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2042,7 +2106,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2217,7 +2282,8 @@ namespace Gen
|
||||
if (WriteDestinations[j] == UINT64_MAX)
|
||||
{
|
||||
// Unknown member name or type changed
|
||||
serializer.Skip(childDef.Size);
|
||||
uint16_t count = bx::max(1, matchedDef.ChildArraySizes[matchedDef.ChildIndices[j]]);
|
||||
serializer.Skip(childDef.Size * count);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -145,7 +145,11 @@ namespace Gen
|
||||
{
|
||||
static constexpr uint16_t TypeIdx = 22;
|
||||
PuzzleElementType::Enum Elements[4] = {};
|
||||
ModelHandle ModelHandle = {};
|
||||
ModelHandle BaseModelHandle = {};
|
||||
ModelHandle NorthCoverHandle = {};
|
||||
ModelHandle EastCoverHandle = {};
|
||||
ModelHandle SouthCoverHandle = {};
|
||||
ModelHandle WestCoverHandle = {};
|
||||
TextureHandle ModelTextureHandle = {};
|
||||
TextureHandle BoardTextureHandle = {};
|
||||
};
|
||||
@@ -274,6 +278,8 @@ namespace Gen
|
||||
bool Load(SavedEntityRenderData* obj, uint32_t count, Deserializer& serializer);
|
||||
|
||||
namespace Meta {
|
||||
constexpr uint16_t CurrentMetaVersion = 1;
|
||||
|
||||
struct StrRef
|
||||
{
|
||||
uint16_t Offset;
|
||||
@@ -287,6 +293,7 @@ namespace Gen
|
||||
char Name[64]{"Dummy"};
|
||||
uint16_t ChildCount = 0;
|
||||
uint16_t ChildIndices[64]{0};
|
||||
uint16_t ChildArraySizes[64]{0};
|
||||
StrRef MemberNameIndices[64]{0};
|
||||
};
|
||||
|
||||
@@ -294,40 +301,40 @@ namespace Gen
|
||||
{
|
||||
TypeDef TypeDefinitions[32]
|
||||
{
|
||||
TypeDef{sizeof(int8_t), 0, "i8", 0, {}, {}},
|
||||
TypeDef{sizeof(int16_t), 1, "i16", 0, {}, {}},
|
||||
TypeDef{sizeof(int32_t), 2, "i32", 0, {}, {}},
|
||||
TypeDef{sizeof(int64_t), 3, "i64", 0, {}, {}},
|
||||
TypeDef{sizeof(uint8_t), 4, "u8", 0, {}, {}},
|
||||
TypeDef{sizeof(uint16_t), 5, "u16", 0, {}, {}},
|
||||
TypeDef{sizeof(uint32_t), 6, "u32", 0, {}, {}},
|
||||
TypeDef{sizeof(uint64_t), 7, "u64", 0, {}, {}},
|
||||
TypeDef{sizeof(bool), 8, "b", 0, {}, {}},
|
||||
TypeDef{sizeof(float), 9, "f32", 0, {}, {}},
|
||||
TypeDef{sizeof(double), 10, "f64", 0, {}, {}},
|
||||
TypeDef{sizeof(char), 11, "str", 0, {}, {}},
|
||||
TypeDef{sizeof(Vec2), 2667033957, "Vec2", 2, {9, 9}, {{0, 1}, {1, 1}}},
|
||||
TypeDef{sizeof(Vec3), 473740858, "Vec3", 3, {9, 9, 9}, {{2, 1}, {3, 1}, {4, 1}}},
|
||||
TypeDef{sizeof(Vec4), 2507696603, "Vec4", 4, {9, 9, 9, 9}, {{5, 1}, {6, 1}, {7, 1}, {8, 1}}},
|
||||
TypeDef{sizeof(Mat3), 3364737048, "Mat3", 1, {9}, {{9, 1}}},
|
||||
TypeDef{sizeof(Mat4), 1650094019, "Mat4", 1, {9}, {{10, 1}}},
|
||||
TypeDef{sizeof(Transform), 4103530190, "Transform", 5, {16, 16, 13, 16, 13}, {{11, 1}, {12, 2}, {14, 8}, {22, 8}, {30, 5}}},
|
||||
TypeDef{sizeof(AssetHandle), 2609735487, "AssetHandle", 1, {6}, {{35, 3}}},
|
||||
TypeDef{sizeof(ModelHandle), 298089627, "ModelHandle", 2, {5, 18}, {{38, 8}, {46, 5}}},
|
||||
TypeDef{sizeof(TextureHandle), 1633273761, "TextureHandle", 2, {5, 18}, {{51, 10}, {61, 5}}},
|
||||
TypeDef{sizeof(PuzPos), 1834398141, "PuzPos", 2, {0, 0}, {{66, 1}, {67, 1}}},
|
||||
TypeDef{sizeof(StaticPuzzleCard), 1466565767, "StaticPuzzleCard", 4, {30, 19, 20, 20}, {{68, 8}, {76, 11}, {87, 18}, {105, 18}}},
|
||||
TypeDef{sizeof(StaticPuzzleCardHandle), 1742502768, "StaticPuzzleCardHandle", 1, {5}, {{123, 3}}},
|
||||
TypeDef{sizeof(PuzzleVisualSettings), 2302077481, "PuzzleVisualSettings", 4, {14, 14, 13, 14}, {{126, 13}, {139, 12}, {151, 4}, {155, 16}}},
|
||||
TypeDef{sizeof(StaticPuzzleData), 1131370538, "StaticPuzzleData", 2, {22, 24}, {{171, 5}, {176, 7}}},
|
||||
TypeDef{sizeof(PuzzleCardStack), 53538532, "PuzzleCardStack", 3, {23, 4, 4}, {{183, 7}, {190, 17}, {207, 9}}},
|
||||
TypeDef{sizeof(PlacedPuzzleCard), 3555575973, "PlacedPuzzleCard", 4, {23, 21, 4, 8}, {{216, 7}, {223, 8}, {231, 8}, {239, 8}}},
|
||||
TypeDef{sizeof(PuzzleData), 3349686056, "PuzzleData", 10, {5, 11, 4, 4, 6, 26, 27, 30, 6, 21}, {{247, 2}, {249, 10}, {259, 10}, {269, 11}, {280, 18}, {298, 14}, {312, 11}, {323, 15}, {338, 17}, {355, 13}}},
|
||||
TypeDef{sizeof(SavedEntityRenderData), 3172756855, "SavedEntityRenderData", 7, {14, 14, 17, 31, 20, 19, 8}, {{368, 9}, {377, 14}, {391, 2}, {393, 8}, {401, 7}, {408, 5}, {413, 7}}},
|
||||
TypeDef{sizeof(PuzzleElementType::Enum), 2983807453, "PuzzleElementType", 0, {}, {}},
|
||||
TypeDef{sizeof(EMaterial::Enum), 2024002654, "EMaterial", 0, {}, {}},
|
||||
TypeDef{sizeof(int8_t), 0, "i8", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(int16_t), 1, "i16", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(int32_t), 2, "i32", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(int64_t), 3, "i64", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(uint8_t), 4, "u8", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(uint16_t), 5, "u16", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(uint32_t), 6, "u32", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(uint64_t), 7, "u64", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(bool), 8, "b", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(float), 9, "f32", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(double), 10, "f64", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(char), 11, "str", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(Vec2), 2667033957, "Vec2", 2, {9, 9}, {0, 0}, {{0, 1}, {1, 1}}},
|
||||
TypeDef{sizeof(Vec3), 473740858, "Vec3", 3, {9, 9, 9}, {0, 0, 0}, {{2, 1}, {3, 1}, {4, 1}}},
|
||||
TypeDef{sizeof(Vec4), 2507696603, "Vec4", 4, {9, 9, 9, 9}, {0, 0, 0, 0}, {{5, 1}, {6, 1}, {7, 1}, {8, 1}}},
|
||||
TypeDef{sizeof(Mat3), 3364737048, "Mat3", 1, {9}, {9}, {{9, 1}}},
|
||||
TypeDef{sizeof(Mat4), 1650094019, "Mat4", 1, {9}, {16}, {{10, 1}}},
|
||||
TypeDef{sizeof(Transform), 4103530190, "Transform", 5, {16, 16, 13, 16, 13}, {0, 0, 0, 0, 0}, {{11, 1}, {12, 2}, {14, 8}, {22, 8}, {30, 5}}},
|
||||
TypeDef{sizeof(AssetHandle), 2609735487, "AssetHandle", 1, {6}, {0}, {{35, 3}}},
|
||||
TypeDef{sizeof(ModelHandle), 298089627, "ModelHandle", 2, {5, 18}, {0, 0}, {{38, 8}, {46, 5}}},
|
||||
TypeDef{sizeof(TextureHandle), 1633273761, "TextureHandle", 2, {5, 18}, {0, 0}, {{51, 10}, {61, 5}}},
|
||||
TypeDef{sizeof(PuzPos), 1834398141, "PuzPos", 2, {0, 0}, {0, 0}, {{66, 1}, {67, 1}}},
|
||||
TypeDef{sizeof(StaticPuzzleCard), 3247750075, "StaticPuzzleCard", 8, {30, 19, 19, 19, 19, 19, 20, 20}, {4, 0, 0, 0, 0, 0, 0, 0}, {{68, 8}, {76, 15}, {91, 16}, {107, 15}, {122, 16}, {138, 15}, {153, 18}, {171, 18}}},
|
||||
TypeDef{sizeof(StaticPuzzleCardHandle), 1742502768, "StaticPuzzleCardHandle", 1, {5}, {0}, {{189, 3}}},
|
||||
TypeDef{sizeof(PuzzleVisualSettings), 2302077481, "PuzzleVisualSettings", 4, {14, 14, 13, 14}, {0, 0, 0, 0}, {{192, 13}, {205, 12}, {217, 4}, {221, 16}}},
|
||||
TypeDef{sizeof(StaticPuzzleData), 2707133860, "StaticPuzzleData", 2, {22, 24}, {64, 0}, {{237, 5}, {242, 7}}},
|
||||
TypeDef{sizeof(PuzzleCardStack), 53538532, "PuzzleCardStack", 3, {23, 4, 4}, {0, 0, 0}, {{249, 7}, {256, 17}, {273, 9}}},
|
||||
TypeDef{sizeof(PlacedPuzzleCard), 3555575973, "PlacedPuzzleCard", 4, {23, 21, 4, 8}, {0, 0, 0, 0}, {{282, 7}, {289, 8}, {297, 8}, {305, 8}}},
|
||||
TypeDef{sizeof(PuzzleData), 3349686056, "PuzzleData", 10, {5, 11, 4, 4, 6, 26, 27, 30, 6, 21}, {0, 64, 0, 0, 0, 16, 256, 1024, 0, 16}, {{313, 2}, {315, 10}, {325, 10}, {335, 11}, {346, 18}, {364, 14}, {378, 11}, {389, 15}, {404, 17}, {421, 13}}},
|
||||
TypeDef{sizeof(SavedEntityRenderData), 3172756855, "SavedEntityRenderData", 7, {14, 14, 17, 31, 20, 19, 8}, {0, 0, 0, 0, 0, 0, 0}, {{434, 9}, {443, 14}, {457, 2}, {459, 8}, {467, 7}, {474, 5}, {479, 7}}},
|
||||
TypeDef{sizeof(PuzzleElementType::Enum), 2983807453, "PuzzleElementType", 0, {}, {}, {}},
|
||||
TypeDef{sizeof(EMaterial::Enum), 2024002654, "EMaterial", 0, {}, {}, {}},
|
||||
};
|
||||
char MemberNameBuffer[64*64*64]{"xyxyzxyzwMMMMIPositionRotationScaleIdxModelIdxAssetTextureIdxAssetXYElementsModelHandleModelTextureHandleBoardTextureHandleIdxTileBaseColorTileDotColorTestDisabledCardTintCardsVisualsRefCardMaxAvailableCountUsedCountRefCardPositionRotationIsLockedIDPuzzleNameWidthTilesHeightTilesAvailableCardCountAvailableCardsPlacedCardsBackgroundTilesGoalPositionCountGoalPositionsBaseColorHighlightColorTFMaterialTextureModelVisible"};
|
||||
char MemberNameBuffer[64*64*64]{"xyxyzxyzwMMMMIPositionRotationScaleIdxModelIdxAssetTextureIdxAssetXYElementsBaseModelHandleNorthCoverHandleEastCoverHandleSouthCoverHandleWestCoverHandleModelTextureHandleBoardTextureHandleIdxTileBaseColorTileDotColorTestDisabledCardTintCardsVisualsRefCardMaxAvailableCountUsedCountRefCardPositionRotationIsLockedIDPuzzleNameWidthTilesHeightTilesAvailableCardCountAvailableCardsPlacedCardsBackgroundTilesGoalPositionCountGoalPositionsBaseColorHighlightColorTFMaterialTextureModelVisible"};
|
||||
};
|
||||
|
||||
constexpr MetadataTable Metadata;
|
||||
|
||||
BIN
src/models/channel_cover_big.glb
LFS
Normal file
BIN
src/models/channel_cover_big.glb
LFS
Normal file
Binary file not shown.
BIN
src/models/channel_cover_small.glb
LFS
Normal file
BIN
src/models/channel_cover_small.glb
LFS
Normal file
Binary file not shown.
BIN
src/models/w straight.glb
LFS
BIN
src/models/w straight.glb
LFS
Binary file not shown.
Reference in New Issue
Block a user