diff --git a/CLightProbeData.bt b/CLightProbeData.bt index 0ee7353..224a7fd 100644 --- a/CLightProbeData.bt +++ b/CLightProbeData.bt @@ -7,54 +7,35 @@ #include "CVector3f.bt" #include "CVector3i.bt" -typedef struct CBakedLightingUniformProbeGridIndex { - short x; - short y; - short z; +typedef struct { + int16 x; + int16 y; + int16 z; } CBakedLightingUniformProbeGridIndex; struct LightProbeBundleHeader { - uint unk1; - uint unk2; + uint32 unk1; + uint32 unk2; CVector3f unk3; CBakedLightingUniformProbeGridIndex unk4; CBakedLightingUniformProbeGridIndex unk5; }; -struct SReadInfo { - uchar unk1; - uint unk2; - uint unk3; -}; - -struct ReadInfoVector { - uint count; - SReadInfo readInfos[count]; -}; - -struct SCompressedBufferInfo { - uint unk1; - uint unk2; - uint unk3; - uint unk4; - uint unk5; -}; - -struct SMetaData { - uint unk1; - uint unk2; - uint unk3; - uint unk4; - uint unk5; - uint unk6; - uint readInfoCount; - SReadInfo readInfos[readInfoCount]; - uint compressedBufferInfoCount; - SCompressedBufferInfo compressedBufferInfos[compressedBufferInfoCount]; +struct SLightProbeMetaData(uint64 fileStart) { + uint32 unk1; + uint32 unk2; + uint32 metaOffsetCount; + if (metaOffsetCount > 0) { + uint64 metaOffsets[metaOffsetCount]; + } + uint32 txtrOffsetCount; + if (txtrOffsetCount > 0) { + uint64 txtrOffsets[txtrOffsetCount]; + } }; struct LightProbeBundle { - SMetaData metaData; + STextureMetaData metaData(FTell() + 0x4D /* start of TXTR */); CVector3i unkVector; uint unk; FormDescriptor textureForm; diff --git a/Meta.bt b/Meta.bt index 6f216c0..f4090b1 100644 --- a/Meta.bt +++ b/Meta.bt @@ -19,6 +19,9 @@ typedef struct(FourCC type, uint64 size, uint64 fileStart) case "ROOM": SGameAreaMetaData meta(fileStart); break; + case "LTPB": + SLightProbeMetaData meta(fileStart); + break; default: byte data[size]; break; diff --git a/Run.bt b/Run.bt index f8da369..89e5807 100644 --- a/Run.bt +++ b/Run.bt @@ -13,6 +13,7 @@ if (!exists(isDKCTF)) { #include "MaterialArchive.bt" #include "CGameAreaResource.bt" +#include "CLightProbeData.bt" #include "Meta.bt" #include "NTextureFormat.bt" @@ -27,7 +28,6 @@ if (!exists(isDKCTF)) { #include "CGuiFrame.bt" #include "CGuiMap.bt" #include "CLegacyStateMachine.bt" -#include "CLightProbeData.bt" #include "CMaterialInstanceResource.bt" #include "CPakFile.bt" #include "CReflectionProbeData.bt"