More work on z_scene_proc.c 31/36 matching, 3 non-matching, 2 not attempted

This commit is contained in:
rozlette
2019-12-29 21:34:58 -06:00
parent fe8a5a216e
commit 8d8df1848e
13 changed files with 612 additions and 138 deletions
+41 -3
View File
@@ -48,7 +48,7 @@ typedef struct {
typedef struct {
/* 0x0 */ s8 segment;
/* 0x2 */ s16 type;
/* 0x4 */ u32 params;
/* 0x4 */ void* params;
} AnimatedTexture;
typedef struct {
@@ -188,6 +188,12 @@ typedef struct {
/* 0x10 */ u32 collectibleFlags;
} CycleSceneFlags;
typedef struct {
/* 0x0 */ u16 cycleLength;
/* 0x4 */ Gfx** textureDls;
/* 0x8 */ u8* textureDlOffsets;
} CyclingTextureParams;
typedef struct {
/* 0x0 */ u32 size;
/* 0x4 */ void* unk4;
@@ -308,6 +314,14 @@ typedef struct {
/* 0x7 */ u8 unk7;
} FireObjLightParams;
typedef struct {
/* 0x0 */ u8 red;
/* 0x1 */ u8 green;
/* 0x2 */ u8 blue;
/* 0x3 */ u8 alpha;
/* 0x4 */ u8 lodFrac;
} FlashingTexturePrimColor;
// Font textures are loaded into here
typedef struct {
/* 0x0000 */ u8 unk0[2][120][128];
@@ -442,6 +456,13 @@ typedef struct {
/* 0x2 */ u8 blue;
} RGB;
typedef struct {
/* 0x0 */ u8 red;
/* 0x1 */ u8 green;
/* 0x2 */ u8 blue;
/* 0x3 */ u8 alpha;
} RGBA8;
typedef struct {
/* 0x00 */ s16 intPart[16];
/* 0x20 */ u16 fracPart[16];
@@ -538,12 +559,19 @@ typedef struct {
/* 0x0 */ u32 romStart;
/* 0x4 */ u32 romEnd;
/* 0x8 */ UNK_TYPE1 pad8[3];
/* 0xB */ u8 unkB;
/* 0xB */ u8 sceneConfig; // TODO: This at least controls the behavior of animated textures. Does it do more?
/* 0xC */ UNK_TYPE1 padC[1];
/* 0xD */ u8 unkD;
/* 0xE */ UNK_TYPE1 padE[2];
} SceneTableEntry;
typedef struct {
/* 0x0 */ s8 xStep;
/* 0x1 */ s8 yStep;
/* 0x2 */ u8 width;
/* 0x3 */ u8 height;
} ScrollingTextureParams;
typedef struct {
/* 0x0 */ s8 letterboxTarget;
/* 0x1 */ s8 letterboxMagnitude;
@@ -892,6 +920,14 @@ typedef union {
/* 0x0 */ F3DVertexNormal normal;
} F3DVertex;
typedef struct {
/* 0x0 */ u16 cycleLength;
/* 0x2 */ u16 numKeyFrames;
/* 0x4 */ FlashingTexturePrimColor* primColors;
/* 0x8 */ RGBA8* envColors;
/* 0xC */ u16* keyFrames;
} FlashingTextureParams;
typedef struct {
/* 0x00 */ u32 ramLocation;
/* 0x04 */ u32 vromStart;
@@ -1564,6 +1600,8 @@ typedef struct {
typedef void(*scene_header_func)(GlobalContext* ctxt, SceneHeaderEntry* entry);
typedef void(*scene_proc_draw_func)(GlobalContext* ctxt, u32 segment, void* params);
typedef struct LightsList LightsList;
typedef struct LoadedParticleEntry LoadedParticleEntry;
@@ -1913,7 +1951,7 @@ struct ActorPostDrawParams {
struct GlobalContext {
/* 0x00000 */ ContextCommon common;
/* 0x000A4 */ s16 currentScene;
/* 0x000A6 */ u8 unkA6;
/* 0x000A6 */ u8 sceneConfig; // TODO: This at least controls the behavior of animated textures. Does it do more?
/* 0x000A7 */ UNK_TYPE1 padA7[9];
/* 0x000B0 */ void* currentSceneVram;
/* 0x000B4 */ UNK_TYPE1 padB4[4];