Lod_Z - widberg/fmtk GitHub Wiki
This has an associated Data Class.
struct Lod_Z : Object_Z {
PascalArray<struct SphereColNode {
Sphere_Z sphere;
std::uint32_t flags;
crc32_t linkCRC32;
}> sphereColNodes;
PascalArray<struct BoxCol {
Mat4f transformation;
std::uint32_t flags;
crc32_t linkCRC32;
}> boxCols;
Vec3f close;
// gets fed to the same close function as in mesh
// close.y always 0
PascalArray<crc32_t> skinOrMeshCRC32s;
// Pascal array of skin and/or mesh crc32s
std::uint32_t zero;
// Always 0
Optional<Map<std::uint32_t, crc32_t>, std::uint32_t> animationEntries;
// Optional map of ids to animation crc32s
Optional<Map<std::uint32_t, crc32_t>, std::uint32_t> soundEntries;
// Optional map of ids to sound crc32s
crc32_t userDefineCRC32;
};
//------------------------------------------------
//--- 010 Editor v11.0.1 Binary Template
//------------------------------------------------
struct Lod_Z
{
uint32 sphereColNodeCount;
struct SphereColNode
{
float center[3];
float radius;
uint32 flags;
uint32 someNameCRC321;
} sphereColNodes[sphereColNodeCount];
uint32 boxColCount;
struct BoxCol
{
float transformation[16];
uint32 flags;
uint32 someNameCRC321;
} boxCols[boxColCount];
float closeX;
float closeY;
float radius;
uint32 count;
uint32 skinCRC32s[count];
uint32 zero2;
uint32 soundEntriesOption;
if (soundEntriesOption) {
uint32 soundEntryCount;
struct SoundEntry
{
uint32 id;
uint32 soundCRC32;
} soundEntries[soundEntryCount];
}
uint32 soundEntries1Option;
if (soundEntries1Option) {
uint32 soundEntry1Count;
SoundEntry soundEntries1[soundEntry1Count];
}
uint32 userDefineCRC321;
} lod;
Lod_Z_Alt
//------------------------------------------------
//--- 010 Editor v11.0.1 Binary Template
//------------------------------------------------
struct Lod_Z_Alt
{
uint32 x;
uint32 unknown0Count;
struct Unknown0
{
float a;
float b;
float c;
float d;
uint32 e;
float f;
};
if (x)
{
Unknown0 unknownDs;
}
uint32 unknownXCount;
Unknown0 unknown0s[unknownXCount];
uint32 unknown1Count;
struct Unknown1
{
float transformation[16];
uint32 q;
float r;
} unknown1s[unknown1Count];
uint32 unknown2;
uint32 unknown3;
uint32 unknown4;
float u0;
uint32 count;
uint32 skinCRC32s[count];
uint32 u1;
byte soundEntriesOption;
if (soundEntriesOption) {
uint32 soundEntryCount;
struct SoundEntry
{
uint32 id;
uint32 soundCRC32;
} soundEntries[soundEntryCount];
}
byte unknown4Option;
if (unknown4Option) {
uint32 unknown4Count;
struct Unknown4
{
uint32 a;
uint32 b;
} unknown4s[unknown4Count];
}
uint32 unknown5;
} lod;
//------------------------------------------------
//--- 010 Editor v11.0.1 Binary Template
//------------------------------------------------
struct Lod_Z_Alt_Alt
{
uint32 x;
uint32 unknown0Count;
struct Unknown0
{
float a;
float b;
float c;
float d;
uint32 e;
float f;
};
if (x)
{
Unknown0 unknownDs;
}
uint32 unknownXCount;
Unknown0 unknown0s[unknownXCount];
uint32 unknown1Count;
struct Unknown1
{
float transformation[16];
uint32 q;
float r;
} unknown1s[unknown1Count];
uint32 unknown2;
uint32 unknown3;
uint32 unknown4;
float u0;
uint32 count;
uint32 skinCRC32s[count];
uint32 u1;
uint32 soundEntriesOption;
if (soundEntriesOption) {
uint32 soundEntryCount;
struct SoundEntry
{
uint32 id;
uint32 soundCRC32;
} soundEntries[soundEntryCount];
}
uint32 unknown4Option;
if (unknown4Option) {
uint32 unknown4Count;
struct Unknown4
{
uint32 a;
uint32 b;
} unknown4s[unknown4Count];
}
uint32 unknown5;
} lod;