Shipwright/soh/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h

62 lines
1.6 KiB
C

#ifndef Z_DOOR_SHUTTER_H
#define Z_DOOR_SHUTTER_H
#include "ultra64.h"
#include "global.h"
/**
* Actor Parameters
*
* | | |
* | Transition Index | Type | Switch Flag
* |------------------|---------|-------------
* | 0 0 0 0 0 0 | 0 0 0 0 | 0 0 0 0 0 0
* | 6 | 4 | 6
* |
*
* Transition Index 1111110000000000 Set by the actor engine when the door is spawned
* Type 0000001111000000
* Switch Flag 0000000000111111
*
*/
typedef enum {
/* 0x00 */ SHUTTER,
/* 0x01 */ SHUTTER_FRONT_CLEAR,
/* 0x02 */ SHUTTER_FRONT_SWITCH,
/* 0x03 */ SHUTTER_BACK_LOCKED,
/* 0x04 */ SHUTTER_PG_BARS,
/* 0x05 */ SHUTTER_BOSS,
/* 0x06 */ SHUTTER_GOHMA_BLOCK,
/* 0x07 */ SHUTTER_FRONT_SWITCH_BACK_CLEAR,
/* 0x08 */ SHUTTER_8,
/* 0x09 */ SHUTTER_9,
/* 0x0A */ SHUTTER_A,
/* 0x0B */ SHUTTER_KEY_LOCKED,
/* 0x0C */ SHUTTER_C,
/* 0x0D */ SHUTTER_D,
/* 0x0E */ SHUTTER_E,
/* 0x0F */ SHUTTER_F
} DoorShutterType;
struct DoorShutter;
typedef void (*DoorShutterActionFunc)(struct DoorShutter*, GlobalContext*);
typedef struct DoorShutter {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ s16 unk_164;
/* 0x0166 */ s16 unk_166;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ u8 doorType;
/* 0x016B */ u8 unk_16B;
/* 0x016C */ u8 unk_16C;
/* 0x016D */ s8 requiredObjBankIndex;
/* 0x016E */ s8 unk_16E;
/* 0x016F */ s8 unk_16F;
/* 0x0170 */ f32 unk_170;
/* 0x0174 */ DoorShutterActionFunc actionFunc;
} DoorShutter; // size = 0x0178
#endif