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: "???"
65 lines
2.4 KiB
C
65 lines
2.4 KiB
C
#ifndef Z_EN_DIVING_GAME_H
|
|
#define Z_EN_DIVING_GAME_H
|
|
|
|
#include "ultra64.h"
|
|
#include "global.h"
|
|
|
|
struct EnDivingGame;
|
|
|
|
typedef void (*EnDivingGameActionFunc)(struct EnDivingGame*, GlobalContext*);
|
|
|
|
typedef struct EnDivingGame {
|
|
/* 0x0000 */ Actor actor;
|
|
/* 0x014C */ SkelAnime skelAnime;
|
|
/* 0x0190 */ Vec3s jointTable[20];
|
|
/* 0x0208 */ Vec3s morphTable[20];
|
|
/* 0x0280 */ EnDivingGameActionFunc actionFunc;
|
|
/* 0x0284 */ Vec3s vec_284;
|
|
/* 0x028A */ Vec3s vec_28A;
|
|
/* 0x0290 */ s16 unk_290; // counter that only goes up
|
|
/* 0x0292 */ s16 unk_292;
|
|
/* 0x0294 */ s16 csCameraTimer;
|
|
/* 0x0296 */ s16 unk_296; // read by ExRuppy // timer?
|
|
/* 0x0298 */ s16 eyeTimer;
|
|
/* 0x029A */ s16 spawnRuppyTimer;
|
|
/* 0x029C */ s16 phase;
|
|
/* 0x029E */ s16 eyeTexIndex;
|
|
/* 0x02A0 */ s16 subCamId;
|
|
/* 0x02A2 */ s16 unk_2A2; // 0: , 1: , 2: Tells rupees to sink in water
|
|
/* 0x02A4 */ s16 grabbedRupeesCounter;
|
|
/* 0x02A6 */ s16 rupeesLeftToThrow;
|
|
/* 0x02A8 */ s16 state; // minigameState? 0: default, 1: waiting to give the scale, 2: minigame started
|
|
/* 0x02AA */ s16 extraWinCount; // counts how many times you have beaten the minigame **after** you got the scale. ExRuppy will reset it to zero if a 500 rupee is spawned.
|
|
/* 0x02AC */ char unk_2AC[0xC]; // probably another Vec3f, but unused.
|
|
/* 0x02B8 */ Vec3f camLookAt;
|
|
/* 0x02C4 */ Vec3f camEye;
|
|
/* 0x02D0 */ Vec3f unk_2D0;
|
|
/* 0x02DC */ Vec3f unk_2DC;
|
|
/* 0x02E8 */ Vec3f unk_2E8;
|
|
/* 0x02F4 */ Vec3f unk_2F4;
|
|
/* 0x0300 */ Vec3f unk_300;
|
|
/* 0x030C */ Vec3f unk_30C;
|
|
/* 0x0318 */ f32 unk_318;
|
|
/* 0x031C */ char unk_31C; // unused
|
|
/* 0x031D */ u8 notPlayingMinigame; // flag
|
|
/* 0x031E */ u8 allRupeesThrown; // flag
|
|
/* 0x031F */ u8 unk_31F; // flag
|
|
/* 0x0320 */ char unk_320[0x4]; // unused
|
|
/* 0x0324 */ struct_80034A14_arg1 unk_324;
|
|
/* 0x034C */ ColliderCylinder collider;
|
|
} EnDivingGame; // size = 0x0398
|
|
|
|
typedef enum {
|
|
/* 0 */ ENDIVINGGAME_PHASE_ENDED,
|
|
/* 1 */ ENDIVINGGAME_PHASE_1, // Player has not received the scale.
|
|
/* 2 */ ENDIVINGGAME_PHASE_2 // Player got the scale and there are 10 rupees thrown.
|
|
} EnDivingGamePhase;
|
|
|
|
typedef enum {
|
|
/* 0 */ ENDIVINGGAME_STATE_NOTPLAYING,
|
|
/* 1 */ ENDIVINGGAME_STATE_AWARDPRIZE, // Waiting to give the scale to player.
|
|
/* 2 */ ENDIVINGGAME_STATE_PLAYING
|
|
} EnDivingGameState;
|
|
|
|
#endif
|