Shipwright/soh/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.h

33 lines
1.5 KiB
C

#ifndef Z_BG_GND_DARKMEIRO_H
#define Z_BG_GND_DARKMEIRO_H
#include "ultra64.h"
#include "global.h"
struct BgGndDarkmeiro;
typedef void (*BgGndDarkmeiroUpdateFunc)(struct BgGndDarkmeiro*, GlobalContext*);
typedef struct BgGndDarkmeiro {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ u16 actionFlags; // 0x8 for timer 2, 0x4 for timer 1, 0x2 for blocks.
/* 0x0166 */ s16 timer1; // Vanish countdown for clear blocks
/* 0x0168 */ s16 timer2; // Transparency flicker for clear blocks. Does not work.
/* 0x016C */ BgGndDarkmeiroUpdateFunc updateFunc;
} BgGndDarkmeiro; // size = 0x0170
typedef enum {
/* 0 */ DARKMEIRO_INVISIBLE_PATH, // Textures for the invisible path in shadow trial.
/* 1 */ DARKMEIRO_CLEAR_BLOCK, /* Clear blocks appear when their switch flag is set and
disappear 64 frames after their switch flag is cleared.
Clear blocks with flag 0x3F are always on. */
/* 2 */ DARKMEIRO_BLOCK_TIMER /* A block timer with switch flag N reacts to switch flags N+1
and N+2 being set, setting its own switch flag and a timer
for 304 frames. There are separate timers for N+1 and N+2,
and the timer sets flag N if either timer is above 64 frames. */
} DarkmeiroType;
#endif