diff --git a/include/z64transition.h b/include/z64transition.h index b8e78a638b..06907d1ed1 100644 --- a/include/z64transition.h +++ b/include/z64transition.h @@ -1,8 +1,17 @@ -#ifndef _Z64_TRANSITION_H_ -#define _Z64_TRANSITION_H_ +#ifndef Z64_TRANSITION_H +#define Z64_TRANSITION_H #include "ultra64.h" +// TODO: Figure out circular dependencies +#if 0 +#include "overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h" +#include "overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h" +#include "overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h" +#include "overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h" +#include "overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h" +#endif + #define TC_SET_PARAMS (1 << 7) typedef struct { @@ -32,24 +41,6 @@ typedef struct { /* 0x14 */ TransitionInit* initInfo; /* 0x18 */ size_t size; } TransitionOverlay; - -typedef struct { - /* 0x000 */ s16 transitionType; - /* 0x002 */ s8 fbdemoType; - /* 0x003 */ char unk_003[0x5]; - /* 0x008 */ s32 instanceData; - /* 0x00C */ char unk_00C[0x224]; - /* 0x230 */ void* (*init)(void* transition); - /* 0x234 */ void (*destroy)(void* transition); - /* 0x238 */ void (*update)(void* transition, s32 updateRate); - /* 0x23C */ void (*draw)(void* transition, Gfx** gfxP); - /* 0x240 */ void (*start)(void* transition); - /* 0x244 */ void (*setType)(void* transition, s32 type); - /* 0x248 */ void (*setColor)(void* transition, u32 color); - /* 0x24C */ void (*setEnvColor)(void* transition, u32 color); - /* 0x250 */ s32 (*isDone)(void* transition); - /* 0x254 */ char unk_254[0x4]; -} TransitionContext; // size = 0x258 typedef struct { /* 0x0 */ char unk_0[0xC]; @@ -78,4 +69,33 @@ typedef struct { /* 0x1F */ s8 unk_1F; // Set to 0 and never used } TransitionCircle; // size = 0x20 +typedef struct { + /* 0x000 */ s16 transitionType; + /* 0x002 */ s8 fbdemoType; + /* 0x003 */ char unk_003[0x5]; + /* 0x008 */ union { + TransitionFade fade; + TransitionCircle circle; +#if 0 + TransitionTriforce triforce; + TransitionWipe1 wipe1; + TransitionWipe3 wipe3; + TransitionWipe4 wipe4; + TransitionWipe5 wipe5; +#endif + u8 forceSize[0x218]; + } instanceData; + /* 0x220 */ char unk_220[0x10]; + /* 0x230 */ void* (*init)(void* transition); + /* 0x234 */ void (*destroy)(void* transition); + /* 0x238 */ void (*update)(void* transition, s32 updateRate); + /* 0x23C */ void (*draw)(void* transition, Gfx** gfxP); + /* 0x240 */ void (*start)(void* transition); + /* 0x244 */ void (*setType)(void* transition, s32 type); + /* 0x248 */ void (*setColor)(void* transition, u32 color); + /* 0x24C */ void (*setEnvColor)(void* transition, u32 color); + /* 0x250 */ s32 (*isDone)(void* transition); + /* 0x254 */ char unk_254[0x4]; +} TransitionContext; // size = 0x258 + #endif diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h index 971940bb2c..b473a08435 100644 --- a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h +++ b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h @@ -4,7 +4,7 @@ #include "global.h" typedef struct { - /* 0x0000 */ char unk_0[0x218]; + /* 0x000 */ char unk_0[0x218]; } TransitionWipe1; // size = 0x218 #endif diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h index 8fed0dcfe9..7a33ffe9a2 100644 --- a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h +++ b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h @@ -4,7 +4,7 @@ #include "global.h" typedef struct { - /* 0x0000 */ char unk_0[0x120]; + /* 0x000 */ char unk_0[0x120]; } TransitionWipe3; // size = 0x120 #endif diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h index 8a677c2a4b..60d501ae51 100644 --- a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h +++ b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h @@ -4,7 +4,7 @@ #include "global.h" typedef struct { - /* 0x0000 */ char unk_0[0x28]; + /* 0x00 */ char unk_0[0x28]; } TransitionWipe4; // size = 0x28 #endif diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h index d5f882dec4..c93bfdd11c 100644 --- a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h +++ b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h @@ -4,7 +4,7 @@ #include "global.h" typedef struct { - /* 0x0000 */ char unk_0[0x14]; + /* 0x00 */ char unk_0[0x14]; } TransitionWipe5; // size = 0x14 #endif