mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-08-13 17:03:47 -04:00
39cc86c260
subrepo: subdir: "soh" merged: "ba904bbd0" upstream: origin: "https://github.com/HarbourMasters/soh.git" branch: "master" commit: "ba904bbd0" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
69 lines
1.9 KiB
C
69 lines
1.9 KiB
C
#ifndef Z_OBJ_SWITCH_H
|
|
#define Z_OBJ_SWITCH_H
|
|
|
|
#include "ultra64.h"
|
|
#include "global.h"
|
|
|
|
struct ObjSwitch;
|
|
|
|
typedef void (*ObjSwitchActionFunc)(struct ObjSwitch*, GlobalContext*);
|
|
|
|
typedef enum {
|
|
/* 0 */ OBJSWITCH_TYPE_FLOOR,
|
|
/* 1 */ OBJSWITCH_TYPE_FLOOR_RUSTY,
|
|
/* 2 */ OBJSWITCH_TYPE_EYE,
|
|
/* 3 */ OBJSWITCH_TYPE_CRYSTAL,
|
|
/* 4 */ OBJSWITCH_TYPE_CRYSTAL_TARGETABLE
|
|
} ObjSwitchType;
|
|
|
|
typedef enum {
|
|
/* 0 */ OBJSWITCH_SUBTYPE_FLOOR_0,
|
|
/* 1 */ OBJSWITCH_SUBTYPE_FLOOR_1,
|
|
/* 2 */ OBJSWITCH_SUBTYPE_FLOOR_2,
|
|
/* 3 */ OBJSWITCH_SUBTYPE_FLOOR_3
|
|
} ObjSwitchSubTypeFloor;
|
|
|
|
typedef enum {
|
|
/* 0 */ OBJSWITCH_SUBTYPE_EYE_0,
|
|
/* 1 */ OBJSWITCH_SUBTYPE_EYE_1
|
|
} ObjSwitchSubTypeEye;
|
|
|
|
typedef enum {
|
|
/* 0 */ OBJSWITCH_SUBTYPE_CRYSTAL_0,
|
|
/* 1 */ OBJSWITCH_SUBTYPE_CRYSTAL_1,
|
|
/* 4 */ OBJSWITCH_SUBTYPE_CRYSTAL_4 = 4
|
|
} ObjSwitchSubTypeCrystal;
|
|
|
|
typedef struct {
|
|
/* 0x00 */ ColliderJntSph col;
|
|
/* 0x20 */ ColliderJntSphElement items[2];
|
|
} ObjSwitchJntSph;
|
|
|
|
typedef struct {
|
|
/* 0x00 */ ColliderTris col;
|
|
/* 0x20 */ ColliderTrisElement items[2];
|
|
} ObjSwitchTris;
|
|
|
|
typedef struct ObjSwitch {
|
|
/* 0x0000 */ DynaPolyActor dyna;
|
|
/* 0x0164 */ ObjSwitchActionFunc actionFunc;
|
|
/* 0x0168 */ s16 releaseTimer; // used for SUBTYPE_FLOOR_2 and SUBTYPE_FLOOR_3
|
|
/* 0x016A */ s16 disableAcTimer;
|
|
/* 0x016C */ s16 cooldownTimer;
|
|
/* 0x016E */ u8 cooldownOn;
|
|
/* 0x0170 */ s16 eyeTexIndex;
|
|
/* 0x0174 */ void* crystalSubtype1texture;
|
|
/* 0x0178 */ u8 x1TexScroll;
|
|
/* 0x0179 */ u8 y1TexScroll;
|
|
/* 0x017A */ u8 x2TexScroll;
|
|
/* 0x017B */ u8 y2TexScroll;
|
|
/* 0x017C */ Color_RGB8 crystalColor;
|
|
/* 0x017F */ u8 unk_17F; // used for different purposes between floor and eye switch
|
|
union {
|
|
/* 0x0180 */ ObjSwitchJntSph jntSph;
|
|
/* 0x0180 */ ObjSwitchTris tris;
|
|
};
|
|
} ObjSwitch; // size = 0x0258
|
|
|
|
#endif
|