generate type data
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -6,3 +6,4 @@
|
|||||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||||
*.pzl filter=lfs diff=lfs merge=lfs -text
|
*.pzl filter=lfs diff=lfs merge=lfs -text
|
||||||
*.exe filter=lfs diff=lfs merge=lfs -text
|
*.exe filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|||||||
1
src/.gitattributes
vendored
1
src/.gitattributes
vendored
@@ -1 +0,0 @@
|
|||||||
*.glb filter=lfs diff=lfs merge=lfs -text
|
|
||||||
@@ -15,12 +15,15 @@ namespace WriteTemplates
|
|||||||
{
|
{
|
||||||
constexpr char FileHeaderStart[] =
|
constexpr char FileHeaderStart[] =
|
||||||
R"END(#pragma once
|
R"END(#pragma once
|
||||||
#include "Def.h"
|
#include <cstdint>
|
||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
{
|
{
|
||||||
|
struct Serializer;
|
||||||
|
struct Deserializer;
|
||||||
)END";
|
)END";
|
||||||
constexpr char FileCppStart[] = R"END(#include "Generated.h"
|
constexpr char FileCppStart[] = R"END(#include "Def.h"
|
||||||
|
#include "Generated.h"
|
||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
{
|
{
|
||||||
@@ -43,8 +46,8 @@ namespace Generated
|
|||||||
constexpr char EnumHeader4[] =
|
constexpr char EnumHeader4[] =
|
||||||
R"END( struct %s
|
R"END( struct %s
|
||||||
{
|
{
|
||||||
static constexpr uint32_t Hash = %u;
|
|
||||||
static constexpr int32_t EntryCount = %u;
|
static constexpr int32_t EntryCount = %u;
|
||||||
|
static constexpr uint32_t Hash = %u;
|
||||||
enum Enum : %s
|
enum Enum : %s
|
||||||
{
|
{
|
||||||
)END";
|
)END";
|
||||||
@@ -196,8 +199,8 @@ void CppFileWriter::WriteEnums(const Def::DefinitionFile& definitions)
|
|||||||
|
|
||||||
Write(WriteTemplates::EnumHeader4,
|
Write(WriteTemplates::EnumHeader4,
|
||||||
e.Name,
|
e.Name,
|
||||||
e.Hash,
|
|
||||||
e.EntryCount,
|
e.EntryCount,
|
||||||
|
e.Hash,
|
||||||
Generated::KnownType::CName[(int32_t)e.EnumType.Native]);
|
Generated::KnownType::CName[(int32_t)e.EnumType.Native]);
|
||||||
for (int32_t entryIdx = 0; entryIdx < e.EntryCount; ++entryIdx)
|
for (int32_t entryIdx = 0; entryIdx < e.EntryCount; ++entryIdx)
|
||||||
{
|
{
|
||||||
@@ -331,3 +334,36 @@ void CppFileWriter::WriteCpp(const char* templateStr, ...)
|
|||||||
WriteInternal(CppWrite, templateStr, args);
|
WriteInternal(CppWrite, templateStr, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CppFileWriter::WriteTypeDataFile(const bx::FilePath& outDir, const Def::DefinitionFile& definitions)
|
||||||
|
{
|
||||||
|
constexpr const char _4cc[] = "TDAT";
|
||||||
|
constexpr uint32_t version = 1;
|
||||||
|
bx::FilePath typeDataFilePath = outDir;
|
||||||
|
typeDataFilePath.join("TypeData.bin");
|
||||||
|
|
||||||
|
bx::Error err;
|
||||||
|
bx::FileWriter writer;
|
||||||
|
if (!writer.open(typeDataFilePath, false, &err))
|
||||||
|
{
|
||||||
|
LOG_ERROR(0, "Failed to open type data file to write: %s", err.getMessage().getCPtr());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint32_t size = sizeof(definitions);
|
||||||
|
writer.write(_4cc, 4, &err);
|
||||||
|
if (!err.isOk())
|
||||||
|
{
|
||||||
|
LOG_ERROR(0, "Failed to write type data: %s", err.getMessage().getCPtr());
|
||||||
|
writer.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
writer.write(&version, sizeof(version), &err);
|
||||||
|
writer.write(&size, sizeof(size), &err);
|
||||||
|
writer.write(&definitions, sizeof(definitions), &err);
|
||||||
|
if (!err.isOk())
|
||||||
|
{
|
||||||
|
LOG_ERROR(0, "Failed to write type data: %s", err.getMessage().getCPtr());
|
||||||
|
}
|
||||||
|
writer.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|||||||
@@ -29,4 +29,5 @@ struct CppFileWriter
|
|||||||
void GenerateCpp(const bx::FilePath& outDir, const Def::DefinitionFile& definitions);
|
void GenerateCpp(const bx::FilePath& outDir, const Def::DefinitionFile& definitions);
|
||||||
void Write(const char* templateStr, ...);
|
void Write(const char* templateStr, ...);
|
||||||
void WriteCpp(const char* templateStr, ...);
|
void WriteCpp(const char* templateStr, ...);
|
||||||
|
void WriteTypeDataFile(const bx::FilePath& outDir, const Def::DefinitionFile& definitions);
|
||||||
};
|
};
|
||||||
|
|||||||
41
src/dependency/minidef/src/Gen/Def.cpp
Normal file
41
src/dependency/minidef/src/Gen/Def.cpp
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#include "Def.h"
|
||||||
|
|
||||||
|
#define INST(T) \
|
||||||
|
template bool Save<T>(const T* obj, uint32_t count, Serializer& serializer); \
|
||||||
|
template bool Load<T>(T * obj, uint32_t count, Deserializer & serializer);
|
||||||
|
|
||||||
|
namespace Generated
|
||||||
|
{
|
||||||
|
template <typename T> bool Save(const T* obj, uint32_t count, Serializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = serializer.Write(&obj[i], sizeof(obj[i])) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T> bool Load(T* obj, uint32_t count, Deserializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = serializer.Read(&obj[i], sizeof(obj[i])) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
|
||||||
|
INST(uint8_t)
|
||||||
|
INST(uint16_t)
|
||||||
|
INST(uint32_t)
|
||||||
|
INST(uint64_t)
|
||||||
|
INST(int8_t)
|
||||||
|
INST(int16_t)
|
||||||
|
INST(int32_t)
|
||||||
|
INST(int64_t)
|
||||||
|
INST(float)
|
||||||
|
INST(double)
|
||||||
|
INST(bool)
|
||||||
|
INST(char)
|
||||||
|
} // namespace Generated
|
||||||
@@ -1,2 +1,125 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "../TypeDef.h"
|
||||||
|
// #include "../game/Log.h"
|
||||||
|
|
||||||
|
#include "bx/string.h"
|
||||||
|
#include <bx/file.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
#ifndef LOG_ERROR
|
||||||
|
#define LOG_ERROR(...)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Generated
|
||||||
|
{
|
||||||
|
struct EmbeddedTypeDef
|
||||||
|
{
|
||||||
|
uint32_t Size = sizeof(Def::DefinitionFile);
|
||||||
|
Def::DefinitionFile Data;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Serializer
|
||||||
|
{
|
||||||
|
bx::Error Err;
|
||||||
|
bx::FilePath Path;
|
||||||
|
bx::FileWriter Writer;
|
||||||
|
|
||||||
|
bool Init(const bx::FilePath& path)
|
||||||
|
{
|
||||||
|
Path = path;
|
||||||
|
Writer.open(path, false, &Err);
|
||||||
|
return Err.isOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T> bool WriteT(const char* _4cc, const T& data)
|
||||||
|
{
|
||||||
|
if (!Write(_4cc, 4)) return false;
|
||||||
|
|
||||||
|
uint32_t hash = data.Hash;
|
||||||
|
if (!Write(&hash, sizeof(hash))) return false;
|
||||||
|
|
||||||
|
uint32_t size = sizeof(T);
|
||||||
|
if (!Write(&size, sizeof(size))) return false;
|
||||||
|
|
||||||
|
return Save(&data, 1, *this);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Write(const void* data, uint32_t size)
|
||||||
|
{
|
||||||
|
Writer.write(data, size, &Err);
|
||||||
|
if (!Err.isOk()) LOG_ERROR("Write error: %s", Err.getMessage().getCPtr());
|
||||||
|
return Err.isOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Finish()
|
||||||
|
{
|
||||||
|
Writer.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Deserializer
|
||||||
|
{
|
||||||
|
bx::Error Err;
|
||||||
|
bx::FilePath Path;
|
||||||
|
bx::FileReader Reader;
|
||||||
|
|
||||||
|
bool Init(const bx::FilePath& path)
|
||||||
|
{
|
||||||
|
Path = path;
|
||||||
|
Reader.open(path, &Err);
|
||||||
|
return Err.isOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Read(void* data, uint32_t size)
|
||||||
|
{
|
||||||
|
Reader.read(data, size, &Err);
|
||||||
|
if (!Err.isOk()) LOG_ERROR("Read error: %s", Err.getMessage().getCPtr());
|
||||||
|
return Err.isOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T> bool ReadT(const char* _4cc, T& data)
|
||||||
|
{
|
||||||
|
char magic[5]{0};
|
||||||
|
if (!Read(magic, 4)) return false;
|
||||||
|
|
||||||
|
bx::StringView given{_4cc, 4};
|
||||||
|
bx::StringView loaded{magic, 4};
|
||||||
|
if (bx::strCmp(given, loaded) != 0)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Magic mismatch! %s != %s", _4cc, magic);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t hash = 0;
|
||||||
|
if (!Read(&hash, sizeof(hash))) return false;
|
||||||
|
if (data.Hash != hash)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Hash mismatch! %u != %u", data.Hash, hash);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t size = 0;
|
||||||
|
if (!Read(&size, sizeof(size))) return false;
|
||||||
|
if (sizeof(T) != size)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Size mismatch! %u != %u", sizeof(T), size);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Load(&data, 1, *this))
|
||||||
|
{
|
||||||
|
LOG_ERROR("Failed to load: %s", Err.getMessage().getCPtr());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Finish()
|
||||||
|
{
|
||||||
|
Reader.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T> bool Save(const T* obj, uint32_t count, Serializer& serializer);
|
||||||
|
template <typename T> bool Load(T* obj, uint32_t count, Deserializer& serializer);
|
||||||
|
} // namespace Generated
|
||||||
|
|||||||
68
src/dependency/minidef/src/Gen/Generated.cpp
Normal file
68
src/dependency/minidef/src/Gen/Generated.cpp
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
#include "Def.h"
|
||||||
|
#include "Generated.h"
|
||||||
|
|
||||||
|
namespace Generated
|
||||||
|
{
|
||||||
|
bool Save(const KnownType::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(KnownType::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 Test* obj, uint32_t count, Serializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = Save(&obj[i].Number, 1, serializer) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
bool Load(Test* obj, uint32_t count, Deserializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = Load(&obj[i].Number, 1, serializer) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
bool Save(const Texture* obj, uint32_t count, Serializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = Save(&obj[i].Width, 1, serializer) && isOk;
|
||||||
|
isOk = Save(&obj[i].Height, 1, serializer) && isOk;
|
||||||
|
isOk = Save(obj[i].StrTest, 3, serializer) && isOk;
|
||||||
|
isOk = Save(&obj[i].T, 1, serializer) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
bool Load(Texture* obj, uint32_t count, Deserializer& serializer)
|
||||||
|
{
|
||||||
|
bool isOk = true;
|
||||||
|
for (uint32_t i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
isOk = Load(&obj[i].Width, 1, serializer) && isOk;
|
||||||
|
isOk = Load(&obj[i].Height, 1, serializer) && isOk;
|
||||||
|
isOk = Load(obj[i].StrTest, 3, serializer) && isOk;
|
||||||
|
isOk = Load(&obj[i].T, 1, serializer) && isOk;
|
||||||
|
}
|
||||||
|
return isOk;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "Def.h"
|
#include <cstdint>
|
||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
{
|
{
|
||||||
|
struct Serializer;
|
||||||
|
struct Deserializer;
|
||||||
struct KnownType
|
struct KnownType
|
||||||
{
|
{
|
||||||
static constexpr int32_t EntryCount = 12;
|
static constexpr int32_t EntryCount = 12;
|
||||||
enum class Enum : int32_t
|
static constexpr uint32_t Hash = 2024002654;
|
||||||
|
enum Enum : int32_t
|
||||||
{
|
{
|
||||||
i8,
|
i8,
|
||||||
i16,
|
i16,
|
||||||
@@ -54,13 +57,21 @@ namespace Generated
|
|||||||
};
|
};
|
||||||
struct Test
|
struct Test
|
||||||
{
|
{
|
||||||
|
static constexpr uint32_t Hash = 273256278;
|
||||||
uint32_t Number = {};
|
uint32_t Number = {};
|
||||||
};
|
};
|
||||||
struct Texture
|
struct Texture
|
||||||
{
|
{
|
||||||
|
static constexpr uint32_t Hash = 992460010;
|
||||||
uint32_t Width = {};
|
uint32_t Width = {};
|
||||||
uint32_t Height = {};
|
uint32_t Height = {};
|
||||||
char StrTest[3] = {};
|
char StrTest[3] = {};
|
||||||
Test T = {};
|
Test T = {};
|
||||||
};
|
};
|
||||||
|
bool Save(const KnownType::Enum* obj, uint32_t count, Serializer& serializer);
|
||||||
|
bool Load(KnownType::Enum* obj, uint32_t count, Deserializer& serializer);
|
||||||
|
bool Save(const Test* obj, uint32_t count, Serializer& serializer);
|
||||||
|
bool Load(Test* obj, uint32_t count, Deserializer& serializer);
|
||||||
|
bool Save(const Texture* obj, uint32_t count, Serializer& serializer);
|
||||||
|
bool Load(Texture* obj, uint32_t count, Deserializer& serializer);
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
src/dependency/minidef/src/Gen/TypeData.bin
LFS
Normal file
BIN
src/dependency/minidef/src/Gen/TypeData.bin
LFS
Normal file
Binary file not shown.
@@ -519,5 +519,9 @@ int main(int argc, const char** argv)
|
|||||||
FileParser.CalculateHashes();
|
FileParser.CalculateHashes();
|
||||||
Writer.GenerateCpp(outPath, FileParser.Definitions);
|
Writer.GenerateCpp(outPath, FileParser.Definitions);
|
||||||
|
|
||||||
|
LOG(0, "Writing type data file");
|
||||||
|
Writer.WriteTypeDataFile(outPath, FileParser.Definitions);
|
||||||
|
LOG(0, "Finished writing type data file!");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
#include "../gen/Def.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "Input.h"
|
#include "Input.h"
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
#include "Level.h"
|
#include "Level.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "Puzzle.h"
|
#include "Puzzle.h"
|
||||||
|
#include "rendering/Rendering.h"
|
||||||
|
|
||||||
#include "SDL3/SDL_mouse.h"
|
#include "SDL3/SDL_mouse.h"
|
||||||
#include "bgfx/bgfx.h"
|
#include "bgfx/bgfx.h"
|
||||||
#include "bx/error.h"
|
#include "bx/error.h"
|
||||||
@@ -11,7 +14,6 @@
|
|||||||
#include "bx/filepath.h"
|
#include "bx/filepath.h"
|
||||||
#include "bx/string.h"
|
#include "bx/string.h"
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "rendering/Rendering.h"
|
|
||||||
#include <SDL3/SDL.h>
|
#include <SDL3/SDL.h>
|
||||||
#include <bx/math.h>
|
#include <bx/math.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#include "../gen/Def.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
@@ -192,10 +193,6 @@ namespace Puzzle
|
|||||||
continue;
|
continue;
|
||||||
if (IsValidGoalConnection(puzzle, nextPos, currentPos, goalType))
|
if (IsValidGoalConnection(puzzle, nextPos, currentPos, goalType))
|
||||||
{
|
{
|
||||||
if (nextPos.X == 0 && nextPos.Y == 4)
|
|
||||||
{
|
|
||||||
LOG("test");
|
|
||||||
}
|
|
||||||
if (IsValidSource(GetNodeAt(puzzle, nextPos), goalType))
|
if (IsValidSource(GetNodeAt(puzzle, nextPos), goalType))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
#include "Tools.h"
|
#include "Tools.h"
|
||||||
|
#include "bx/string.h"
|
||||||
#include "rendering/Rendering.h"
|
#include "rendering/Rendering.h"
|
||||||
|
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
@@ -20,15 +21,24 @@ namespace Tools
|
|||||||
return "---";
|
return "---";
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelDropdown(uint16_t& modelHandle)
|
void ModelDropdown(uint32_t& modelHandle)
|
||||||
{
|
{
|
||||||
auto& R = Game::GameRendering::Get();
|
auto& R = Game::GameRendering::Get();
|
||||||
const char* name = GetAssetPath(R.Models[modelHandle].AssetHandle);
|
const char* name = GetAssetPath(modelHandle);
|
||||||
|
int32_t idx = -1;
|
||||||
|
for (int32_t i = 0; i < R.ModelCount; ++i)
|
||||||
|
{
|
||||||
|
if (R.Models[i].AssetHandle == modelHandle)
|
||||||
|
{
|
||||||
|
idx = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (ImGui::BeginCombo("Models", name))
|
if (ImGui::BeginCombo("Models", name))
|
||||||
{
|
{
|
||||||
for (int32_t i = 0; i < R.ModelCount; ++i)
|
for (int32_t i = 0; i < R.ModelCount; ++i)
|
||||||
{
|
{
|
||||||
if (ImGui::Selectable(GetAssetPath(R.Models[i].AssetHandle), i == modelHandle))
|
if (ImGui::Selectable(GetAssetPath(R.Models[i].AssetHandle), i == idx))
|
||||||
{
|
{
|
||||||
modelHandle = i;
|
modelHandle = i;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
namespace Tools
|
namespace Tools
|
||||||
{
|
{
|
||||||
void ModelDropdown(uint16_t& modelHandle);
|
void ModelDropdown(uint32_t& modelHandle);
|
||||||
} // namespace Tools
|
} // namespace Tools
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ enum PuzzleElementType(u8)
|
|||||||
type StaticPuzzleCard
|
type StaticPuzzleCard
|
||||||
{
|
{
|
||||||
PuzzleElementType Elements Arr(4)
|
PuzzleElementType Elements Arr(4)
|
||||||
u16 ModelHandle
|
u32 ModelHandle
|
||||||
}
|
}
|
||||||
|
|
||||||
type StaticPuzzleCardHandle
|
type StaticPuzzleCardHandle
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include "../dependency/minidef/src/TypeDef.h"
|
||||||
#include "../game/Log.h"
|
#include "../game/Log.h"
|
||||||
|
|
||||||
#include "bx/string.h"
|
#include "bx/string.h"
|
||||||
@@ -7,6 +8,12 @@
|
|||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
{
|
{
|
||||||
|
struct EmbeddedTypeDef
|
||||||
|
{
|
||||||
|
uint32_t Size = sizeof(Def::DefinitionFile);
|
||||||
|
Def::DefinitionFile Data;
|
||||||
|
};
|
||||||
|
|
||||||
struct Serializer
|
struct Serializer
|
||||||
{
|
{
|
||||||
bx::Error Err;
|
bx::Error Err;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#include "Def.h"
|
||||||
#include "Generated.h"
|
#include "Generated.h"
|
||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "Def.h"
|
#include <cstdint>
|
||||||
|
|
||||||
namespace Generated
|
namespace Generated
|
||||||
{
|
{
|
||||||
|
struct Serializer;
|
||||||
|
struct Deserializer;
|
||||||
struct PuzzleElementType
|
struct PuzzleElementType
|
||||||
{
|
{
|
||||||
static constexpr uint32_t Hash = 2024002654;
|
|
||||||
static constexpr int32_t EntryCount = 8;
|
static constexpr int32_t EntryCount = 8;
|
||||||
|
static constexpr uint32_t Hash = 2024002654;
|
||||||
enum Enum : int32_t
|
enum Enum : int32_t
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
@@ -100,9 +102,9 @@ namespace Generated
|
|||||||
};
|
};
|
||||||
struct StaticPuzzleCard
|
struct StaticPuzzleCard
|
||||||
{
|
{
|
||||||
static constexpr uint32_t Hash = 2507139249;
|
static constexpr uint32_t Hash = 1414289929;
|
||||||
PuzzleElementType::Enum Elements[4] = {};
|
PuzzleElementType::Enum Elements[4] = {};
|
||||||
uint16_t ModelHandle = {};
|
uint32_t ModelHandle = {};
|
||||||
};
|
};
|
||||||
struct StaticPuzzleCardHandle
|
struct StaticPuzzleCardHandle
|
||||||
{
|
{
|
||||||
@@ -111,7 +113,7 @@ namespace Generated
|
|||||||
};
|
};
|
||||||
struct StaticPuzzleData
|
struct StaticPuzzleData
|
||||||
{
|
{
|
||||||
static constexpr uint32_t Hash = 3210954810;
|
static constexpr uint32_t Hash = 84985581;
|
||||||
StaticPuzzleCard Cards[64] = {};
|
StaticPuzzleCard Cards[64] = {};
|
||||||
};
|
};
|
||||||
struct PuzzleCardStack
|
struct PuzzleCardStack
|
||||||
|
|||||||
BIN
src/gen/TypeData.bin
LFS
Normal file
BIN
src/gen/TypeData.bin
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user