kirby64/include/geo_block_header.h
2021-01-16 22:25:14 -05:00

90 lines
1.7 KiB
C

#include "ultra64.h"
#include "types.h"
struct EntryPoint {
u32 marker;
Gfx *dl;
};
struct EntryPoint_1C {
Gfx *dl0;
Gfx *dl1;
Gfx *dl2;
u32 unkC;
u32 unk10;
u32 unk14;
};
struct DisplayListPair {
Gfx *dl1;
Gfx *dl2;
};
struct Layout {
u16 flag;
u16 command;
struct EntryPoint *entry;
Vec3f translation;
Vec3f rotation;
Vec3f scale;
};
struct GeoBlockHeader {
void *entriesOrLayoutsOrDL;
struct TextureScroll ***texScrollHeader;
u32 renderMode;
Gfx **imgRefs;
Gfx **vtxRefs;
u32 animCount;
u32 *anims;
u32 layoutCount;
};
struct TextureScroll {
// start of a texture scroll struct?
/* 0x08 */ u16 h_8;
/* 0x0A */ s8 fmt1;
/* 0x0B */ s8 siz1;
/* 0x0C */ u32 *textures;
/* 0x10 */ u16 stretch;
/* 0x12 */ u16 sharedOffset;
/* 0x14 */ u16 t0w;
/* 0x16 */ u16 t0h;
/* 0x18 */ s32 halve;
/* 0x1C */ f32 xFrac0;
/* 0x20 */ f32 yFrac0;
/* 0x24 */ f32 xScale;
/* 0x28 */ f32 yScale;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ u32 *palettes;
/* 0x38 */ u16 flags;
/* 0x3A */ s8 fmt2;
/* 0x3B */ s8 siz2;
/* 0x3C */ u16 w2;
/* 0x3E */ u16 h2;
/* 0x40 */ u16 t1w;
/* 0x42 */ u16 t1h;
/* 0x44 */ f32 xFrac1;
/* 0x48 */ f32 yFrac1;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ s32 unk_50;
/* 0x54 */ s32 unk_54;
/* 0x58 */ u8 primColor[4];
/* 0x5C */ u8 unk_5C;
/* 0x5D */ s8 minLOD;
/* 0x5E */ u8 unk_5E;
/* 0x5F */ u8 unk_5F;
/* 0x60 */ u8 envColor[4];
/* 0x64 */ u8 blendColor[4];
/* 0x68 */ u8 lightColor1[4];
/* 0x6C */ u8 lightColor2[4];
/* 0x70 */ u32 unk70;
/* 0x74 */ u32 unk74;
/* 0x78 */ u32 unk78;
/* 0x7C */ u32 unk7C;
};