diff --git a/assets/blender/Channels.blend b/assets/blender/Channels.blend index 72becb4..1ce6a47 100644 --- a/assets/blender/Channels.blend +++ b/assets/blender/Channels.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de23fbb69db831bb505606fc7f14825a6b8e036a42a6170f1b85104818d7c33e -size 1127016 +oid sha256:fed342e10d8a28c6fb61c17dac4060472f067d9c329a5305155dbcf081b76005 +size 1118912 diff --git a/src/dependency/minidef/src/CppGen.cpp b/src/dependency/minidef/src/CppGen.cpp index 7b0f9cb..6373813 100644 --- a/src/dependency/minidef/src/CppGen.cpp +++ b/src/dependency/minidef/src/CppGen.cpp @@ -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); } diff --git a/src/game/Instance.h b/src/game/Instance.h index 2b0c657..283edcd 100644 --- a/src/game/Instance.h +++ b/src/game/Instance.h @@ -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; diff --git a/src/game/Level.cpp b/src/game/Level.cpp index f0f5f38..a04ce6f 100644 --- a/src/game/Level.cpp +++ b/src/game/Level.cpp @@ -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; diff --git a/src/game/Tools.cpp b/src/game/Tools.cpp index 1666d4c..025fa79 100644 --- a/src/game/Tools.cpp +++ b/src/game/Tools.cpp @@ -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); diff --git a/src/game/Tools.h b/src/game/Tools.h index 7739b49..48b37a4 100644 --- a/src/game/Tools.h +++ b/src/game/Tools.h @@ -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); diff --git a/src/game/data/puzzles/0.pzl b/src/game/data/puzzles/0.pzl index 7538cf8..7716ca9 100644 --- a/src/game/data/puzzles/0.pzl +++ b/src/game/data/puzzles/0.pzl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:96210abaac1746030cbb41bdb277fbed0e2f6a746d27dd52aae2f3f195635075 -size 8218 +oid sha256:8cad609d7071e132eccb3417b1cb5c566db7dbd7290fe2432c712ca084d4882d +size 10300 diff --git a/src/game/data/puzzles/1.pzl b/src/game/data/puzzles/1.pzl index 06159fd..4b0f284 100644 --- a/src/game/data/puzzles/1.pzl +++ b/src/game/data/puzzles/1.pzl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4a0a567da6cfaa351fca47ff87cfc34ea5d223fb4c93e8ff4ab4582638333f8 -size 8218 +oid sha256:d430919f99b555b5ab597eb6d0ba2ac2b64d43fcd81d78f225cdee35db0168c4 +size 10300 diff --git a/src/game/data/puzzles/2.pzl b/src/game/data/puzzles/2.pzl index acd2554..1cd7844 100644 --- a/src/game/data/puzzles/2.pzl +++ b/src/game/data/puzzles/2.pzl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d02525261c230c89c1bdb33027516cb0d7a409cd2e1a81050dc1bae536780d8 -size 8218 +oid sha256:b14fed8c874d0ccdf49ac3dae26d4309a28b04d7f48fd1f2149e70802ac03e63 +size 10300 diff --git a/src/game/data/static/puzzle.dat b/src/game/data/static/puzzle.dat index 41bdabf..ca59d71 100644 Binary files a/src/game/data/static/puzzle.dat and b/src/game/data/static/puzzle.dat differ diff --git a/src/game/data/static/uiconfig.dat b/src/game/data/static/uiconfig.dat index f62b36f..b0ddfaf 100644 Binary files a/src/game/data/static/uiconfig.dat and b/src/game/data/static/uiconfig.dat differ diff --git a/src/game/mini.def b/src/game/mini.def index 5abcf28..ae49806 100644 --- a/src/game/mini.def +++ b/src/game/mini.def @@ -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 } diff --git a/src/gen/Def.h b/src/gen/Def.h index f8724e8..93fc15e 100644 --- a/src/gen/Def.h +++ b/src/gen/Def.h @@ -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 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; diff --git a/src/gen/Generated.cpp b/src/gen/Generated.cpp index 9409464..8feb2ec 100644 --- a/src/gen/Generated.cpp +++ b/src/gen/Generated.cpp @@ -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(objBasePtr + WriteDestinations[j]); + isOk = Load(fieldPtr, 1, serializer) && isOk; + continue; + } + if (bx::strCmp(memberName, "NorthCoverHandle") == 0) + { + auto* fieldPtr = reinterpret_cast(objBasePtr + WriteDestinations[j]); + isOk = Load(fieldPtr, 1, serializer) && isOk; + continue; + } + if (bx::strCmp(memberName, "EastCoverHandle") == 0) + { + auto* fieldPtr = reinterpret_cast(objBasePtr + WriteDestinations[j]); + isOk = Load(fieldPtr, 1, serializer) && isOk; + continue; + } + if (bx::strCmp(memberName, "SouthCoverHandle") == 0) + { + auto* fieldPtr = reinterpret_cast(objBasePtr + WriteDestinations[j]); + isOk = Load(fieldPtr, 1, serializer) && isOk; + continue; + } + if (bx::strCmp(memberName, "WestCoverHandle") == 0) { auto* fieldPtr = reinterpret_cast(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; } diff --git a/src/gen/Generated.h b/src/gen/Generated.h index 3612af0..dc099ed 100644 --- a/src/gen/Generated.h +++ b/src/gen/Generated.h @@ -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; diff --git a/src/models/channel_cover_big.glb b/src/models/channel_cover_big.glb new file mode 100644 index 0000000..d4fb23e --- /dev/null +++ b/src/models/channel_cover_big.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a8bf7ebd85b1e3955c750d591066b30dce23d86e63d9c89313a5c91c3817003 +size 1468 diff --git a/src/models/channel_cover_small.glb b/src/models/channel_cover_small.glb new file mode 100644 index 0000000..536841b --- /dev/null +++ b/src/models/channel_cover_small.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50d19f3d9b6102d6f45f4ef863d1592804895533b6480ade55837f1cb857a379 +size 1480 diff --git a/src/models/w straight.glb b/src/models/w straight.glb index ff48717..d50c85d 100644 --- a/src/models/w straight.glb +++ b/src/models/w straight.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b548df1c97326fb565cd5d398fa80d8f8d1009d3eb30e341b0130e851a61165d -size 2260 +oid sha256:8430e7b50d8a59abbdeb3003ce7fb29e41e489fb87d718eac8289d983964ac02 +size 7400 diff --git a/tools/minidef.exe b/tools/minidef.exe index a6156c2..7de4333 100644 --- a/tools/minidef.exe +++ b/tools/minidef.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f183d74c5423fd3920916186d2065ea9b7373b6c4a0843f1802a35ed97fc8a1 -size 167424 +oid sha256:5c6004281f2e69ec9d7fd6d780f14961a66146ead980f0c5104b18861a5fd017 +size 124416