Shipwright/soh/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.h

66 lines
1.9 KiB
C

#ifndef Z_EN_HORSE_GAME_CHECK_H
#define Z_EN_HORSE_GAME_CHECK_H
#include "ultra64.h"
#include "global.h"
struct EnHorseGameCheckBase;
typedef s32 (*EnHorseGameCheckFunc)(struct EnHorseGameCheckBase* this, GlobalContext* globalCtx);
typedef struct EnHorseGameCheckBase {
/* 0x0000 */ Actor actor;
/* 0x014C */ s32 type;
} EnHorseGameCheckBase; // size = 0x0150
typedef struct EnHorseGameCheckIngoRace {
/* 0x0000 */ EnHorseGameCheckBase base;
/* 0x0150 */ s32 startFlags;
/* 0x0154 */ s32 playerCheck[3];
/* 0x0160 */ s32 ingoCheck[3];
/* 0x016C */ Actor* ingoHorse;
/* 0x0170 */ s32 startTimer;
/* 0x0174 */ s32 result;
/* 0x0178 */ s32 finishTimer;
/* 0x017C */ s32 playerFinish;
/* 0x0180 */ s32 ingoFinish;
} EnHorseGameCheckIngoRace; // size = 0x0184
typedef struct EnHorseGameCheckGerudoArchery {
/* 0x0000 */ EnHorseGameCheckBase base;
/* 0x0150 */ s32 unk_150;
/* 0x0154 */ u32 startTimer;
} EnHorseGameCheckGerudoArchery; // size = 0x0158
typedef struct EnHorseGameCheck3 {
/* 0x0000 */ EnHorseGameCheckBase base;
/* 0x0150 */ s32 unk_150;
} EnHorseGameCheck3; // size = 0x0154
typedef struct EnHorseGameCheckMalonRace {
/* 0x0000 */ EnHorseGameCheckBase base;
/* 0x0150 */ s32 startTimer;
/* 0x0154 */ s32 raceFlags;
/* 0x0158 */ s32 fenceCheck[16];
/* 0x0198 */ s32 finishTimer;
/* 0x019C */ s32 result;
/* 0x01A0 */ s32 lapCount;
} EnHorseGameCheckMalonRace; // size = 0x01A4
typedef union EnHorseGameCheck {
EnHorseGameCheckIngoRace ingo;
EnHorseGameCheckGerudoArchery gerudo;
EnHorseGameCheck3 type3;
EnHorseGameCheckMalonRace malon;
} EnHorseGameCheck; // size = 0x01A4
typedef enum {
/* 0 */ HORSEGAME_NONE,
/* 1 */ HORSEGAME_INGO_RACE,
/* 2 */ HORSEGAME_GERUDO_ARCHERY,
/* 3 */ HORSEGAME_TYPE3,
/* 4 */ HORSEGAME_MALON_RACE
} EnHorseGameCheckType;
#endif