Merge remote-tracking branch 'origin/develop' into macready-golf-merge
This commit is contained in:
@@ -22,12 +22,10 @@ extern "C"
|
||||
|
||||
void gSPSegment(void* value, int segNum, uintptr_t target);
|
||||
void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target);
|
||||
void gDPSetTextureImage(Gfx* pkt, u32 f, u32 s, u32 w, uintptr_t i);
|
||||
void gSPDisplayList(Gfx* pkt, Gfx* dl);
|
||||
void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset);
|
||||
void gSPVertex(Gfx* pkt, uintptr_t v, int n, int v0);
|
||||
void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);
|
||||
void gDPSetTextureImageFB(Gfx* pkt, u32 format, u32 size, u32 width, int fb);
|
||||
|
||||
|
||||
void cleararena(void);
|
||||
@@ -1230,8 +1228,8 @@ Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
|
||||
void Gfx_SetupFrame(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
|
||||
void func_80095974(GraphicsContext* gfxCtx);
|
||||
void func_80095AA0(PlayState* play, Room* room, Input* arg2, UNK_TYPE arg3);
|
||||
void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 mode0,
|
||||
u16 tlutCount, f32 frameX, f32 frameY);
|
||||
void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tlutMode,
|
||||
u16 tlutCount, f32 offsetX, f32 offsetY);
|
||||
void func_80096FD4(PlayState* play, Room* room);
|
||||
u32 func_80096FE8(PlayState* play, RoomContext* roomCtx);
|
||||
s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum);
|
||||
@@ -1250,7 +1248,7 @@ s32 Object_IsLoaded(ObjectContext* objectCtx, s32 bankIndex);
|
||||
void func_800981B8(ObjectContext* objectCtx);
|
||||
s32 Scene_ExecuteCommands(PlayState* play, SceneCmd* sceneCmd);
|
||||
void TransitionActor_InitContext(GameState* state, TransitionActorContext* transiActorCtx);
|
||||
void func_800994A0(PlayState* play);
|
||||
void Scene_SetTransitionForNextEntrance(PlayState* play);
|
||||
void Scene_Draw(PlayState* play);
|
||||
void SkelAnime_DrawLod(PlayState* play, void** skeleton, Vec3s* jointTable,
|
||||
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* arg, s32 dListIndex);
|
||||
@@ -1539,7 +1537,7 @@ void KaleidoScopeCall_Draw(PlayState* play);
|
||||
void func_800BC490(PlayState* play, s16 point);
|
||||
s32 func_800BC56C(PlayState* play, s16 arg1);
|
||||
void func_800BC590(PlayState* play);
|
||||
void func_800BC5E0(PlayState* play, s32 arg1);
|
||||
void Gameplay_SetupTransition(PlayState* play, s32 arg1);
|
||||
Gfx* Play_SetFog(PlayState* play, Gfx* gfx);
|
||||
void Play_Destroy(GameState* thisx);
|
||||
void Play_Init(GameState* thisx);
|
||||
@@ -1830,8 +1828,8 @@ MtxF* Matrix_CheckFloats(MtxF* mf, char* file, s32 line);
|
||||
void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY,
|
||||
f32 translateZ);
|
||||
uintptr_t SysUcode_GetUCodeBoot(void);
|
||||
uintptr_t SysUcode_GetUCodeBootSize(void);
|
||||
uintptr_t SysUcode_GetUCode(void);
|
||||
size_t SysUcode_GetUCodeBootSize(void);
|
||||
uint32_t SysUcode_GetUCode(void);
|
||||
uintptr_t SysUcode_GetUCodeData(void);
|
||||
void func_800D2E30(UnkRumbleStruct* arg0);
|
||||
void func_800D3140(UnkRumbleStruct* arg0);
|
||||
@@ -2173,7 +2171,7 @@ void func_800FA18C(u8, u8);
|
||||
void Audio_SetVolScale(u8 playerIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer);
|
||||
void func_800FA3DC(void);
|
||||
u8 func_800FAD34(void);
|
||||
void func_800FADF8(void);
|
||||
void Audio_ResetActiveSequences(void);
|
||||
void func_800FAEB4(void);
|
||||
void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a);
|
||||
void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y);
|
||||
@@ -2212,6 +2210,14 @@ s8 PadUtils_GetRelYImpl(Input* input);
|
||||
s8 PadUtils_GetRelX(Input* input);
|
||||
s8 PadUtils_GetRelY(Input* input);
|
||||
void PadUtils_UpdateRelXY(Input* input);
|
||||
s8 PadUtils_GetCurRX(Input* input);
|
||||
s8 PadUtils_GetCurRY(Input* input);
|
||||
void PadUtils_SetRelRXY(Input* input, s32 x, s32 y);
|
||||
s8 PadUtils_GetRelRXImpl(Input* input);
|
||||
s8 PadUtils_GetRelRYImpl(Input* input);
|
||||
s8 PadUtils_GetRelRX(Input* input);
|
||||
s8 PadUtils_GetRelRY(Input* input);
|
||||
void PadUtils_UpdateRelRXY(Input* input);
|
||||
s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status);
|
||||
f32 Math_FTanF(f32 x);
|
||||
f32 Math_FFloorF(f32 x);
|
||||
@@ -2348,7 +2354,6 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* check);
|
||||
s32 __osGetId(OSPfs* pfs);
|
||||
s32 __osCheckId(OSPfs* pfs);
|
||||
s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank);
|
||||
void guMtxL2F(MtxF* m1, Mtx* m2);
|
||||
s32 osPfsFindFile(OSPfs* pfs, u16 companyCode, u32 gameCode, u8* gameName, u8* extName, s32* fileNo);
|
||||
s32 osAfterPreNMI(void);
|
||||
s32 osContStartQuery(OSMesgQueue* mq);
|
||||
@@ -2402,7 +2407,6 @@ u32 __osSpGetStatus(void);
|
||||
void __osSpSetStatus(u32 status);
|
||||
void osWritebackDCacheAll(void);
|
||||
OSThread* __osGetCurrFaultedThread(void);
|
||||
void guMtxF2L(MtxF* m1, Mtx* m2);
|
||||
// ? __d_to_ll(?);
|
||||
// ? __f_to_ll(?);
|
||||
// ? __d_to_ull(?);
|
||||
@@ -2463,6 +2467,10 @@ void Interface_RandoRestoreSwordless(void);
|
||||
s32 Ship_CalcShouldDrawAndUpdate(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW, bool* shouldDraw,
|
||||
bool* shouldUpdate);
|
||||
|
||||
//Pause Warp
|
||||
void PauseWarp_HandleSelection();
|
||||
void PauseWarp_Execute();
|
||||
|
||||
// #endregion
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
#define R_ITEM_ICON_X(i) ZREG(82 + i)
|
||||
#define R_ITEM_ICON_Y(i) ZREG(86 + i)
|
||||
#define R_ITEM_ICON_DD(i) ZREG(90 + i)
|
||||
#define R_TRANS_DBG_ENABLED CREG(11)
|
||||
#define R_TRANS_DBG_TYPE CREG(12)
|
||||
#define R_ENV_WIND_DIR(i) CREG(16 + i)
|
||||
#define R_ENV_WIND_SPEED CREG(19)
|
||||
#define R_A_BTN_Y XREG(16)
|
||||
|
||||
1934
soh/include/tables/entrance_table.h
Normal file
1934
soh/include/tables/entrance_table.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -107,7 +107,7 @@ extern "C"
|
||||
extern s16 gLinkObjectIds[2];
|
||||
extern u32 gObjectTableSize;
|
||||
extern RomFile gObjectTable[OBJECT_ID_MAX];
|
||||
extern EntranceInfo gEntranceTable[1556];
|
||||
extern EntranceInfo gEntranceTable[ENTR_MAX];
|
||||
extern SceneTableEntry gSceneTable[SCENE_ID_MAX];
|
||||
extern u16 gSramSlotOffsets[];
|
||||
// 4 16-colors palettes
|
||||
@@ -172,7 +172,8 @@ extern "C"
|
||||
extern u8 gWalkSpeedToggle2;
|
||||
extern f32 iceTrapScale;
|
||||
extern f32 triforcePieceScale;
|
||||
|
||||
extern f32 mysteryItemScale;
|
||||
|
||||
extern const s16 D_8014A6C0[];
|
||||
#define gTatumsPerBeat (D_8014A6C0[1])
|
||||
extern const AudioContextInitSizes D_8014A6C4;
|
||||
@@ -224,7 +225,7 @@ extern "C"
|
||||
extern u16 gAudioSfxSwapSource[10];
|
||||
extern u16 gAudioSfxSwapTarget[10];
|
||||
extern u8 gAudioSfxSwapMode[10];
|
||||
extern unk_D_8016E750 D_8016E750[4];
|
||||
extern ActiveSequence gActiveSeqs[4];
|
||||
extern AudioContext gAudioContext;
|
||||
extern void(*D_801755D0)(void);
|
||||
|
||||
|
||||
@@ -841,6 +841,9 @@ typedef enum {
|
||||
#define PAUSE_CURSOR_PAGE_LEFT 10
|
||||
#define PAUSE_CURSOR_PAGE_RIGHT 11
|
||||
|
||||
#define PAUSE_EQUIP_PLAYER_WIDTH 64
|
||||
#define PAUSE_EQUIP_PLAYER_HEIGHT 112
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PAUSE_ITEM,
|
||||
/* 0x01 */ PAUSE_MAP,
|
||||
@@ -1122,6 +1125,82 @@ typedef struct {
|
||||
/* 0x4C */ u32 unk_4C;
|
||||
} PreRender; // size = 0x50
|
||||
|
||||
#define TRANS_TRIGGER_OFF 0 // transition is not active
|
||||
#define TRANS_TRIGGER_START 20 // start transition (exiting an area)
|
||||
#define TRANS_TRIGGER_END -20 // transition is ending (arriving in a new area)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TRANS_MODE_OFF,
|
||||
/* 1 */ TRANS_MODE_SETUP,
|
||||
/* 2 */ TRANS_MODE_INSTANCE_INIT,
|
||||
/* 3 */ TRANS_MODE_INSTANCE_RUNNING,
|
||||
/* 4 */ TRANS_MODE_FILL_WHITE_INIT,
|
||||
/* 5 */ TRANS_MODE_FILL_IN,
|
||||
/* 6 */ TRANS_MODE_FILL_OUT,
|
||||
/* 7 */ TRANS_MODE_FILL_BROWN_INIT,
|
||||
/* 8 */ TRANS_MODE_08, // unused
|
||||
/* 9 */ TRANS_MODE_09, // unused
|
||||
/* 10 */ TRANS_MODE_INSTANT,
|
||||
/* 11 */ TRANS_MODE_INSTANCE_WAIT,
|
||||
/* 12 */ TRANS_MODE_SANDSTORM_INIT,
|
||||
/* 13 */ TRANS_MODE_SANDSTORM,
|
||||
/* 14 */ TRANS_MODE_SANDSTORM_END_INIT,
|
||||
/* 15 */ TRANS_MODE_SANDSTORM_END,
|
||||
/* 16 */ TRANS_MODE_CS_BLACK_FILL_INIT,
|
||||
/* 17 */ TRANS_MODE_CS_BLACK_FILL
|
||||
} TransitionMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TRANS_TYPE_WIPE,
|
||||
/* 1 */ TRANS_TYPE_TRIFORCE,
|
||||
/* 2 */ TRANS_TYPE_FADE_BLACK,
|
||||
/* 3 */ TRANS_TYPE_FADE_WHITE,
|
||||
/* 4 */ TRANS_TYPE_FADE_BLACK_FAST,
|
||||
/* 5 */ TRANS_TYPE_FADE_WHITE_FAST,
|
||||
/* 6 */ TRANS_TYPE_FADE_BLACK_SLOW,
|
||||
/* 7 */ TRANS_TYPE_FADE_WHITE_SLOW,
|
||||
/* 8 */ TRANS_TYPE_WIPE_FAST,
|
||||
/* 9 */ TRANS_TYPE_FILL_WHITE2,
|
||||
/* 10 */ TRANS_TYPE_FILL_WHITE,
|
||||
/* 11 */ TRANS_TYPE_INSTANT,
|
||||
/* 12 */ TRANS_TYPE_FILL_BROWN,
|
||||
/* 13 */ TRANS_TYPE_FADE_WHITE_CS_DELAYED,
|
||||
/* 14 */ TRANS_TYPE_SANDSTORM_PERSIST,
|
||||
/* 15 */ TRANS_TYPE_SANDSTORM_END,
|
||||
/* 16 */ TRANS_TYPE_CS_BLACK_FILL,
|
||||
/* 17 */ TRANS_TYPE_FADE_WHITE_INSTANT,
|
||||
/* 18 */ TRANS_TYPE_FADE_GREEN,
|
||||
/* 19 */ TRANS_TYPE_FADE_BLUE,
|
||||
// transition types 20 - 31 are unused
|
||||
// transition types 32 - 55 are constructed using the TRANS_TYPE_CIRCLE macro
|
||||
/* 56 */ TRANS_TYPE_MAX = 56
|
||||
} TransitionType;
|
||||
|
||||
#define TRANS_NEXT_TYPE_DEFAULT 0xFF // when `nextTransitionType` is set to default, the type will be taken from the entrance table for the ending transition
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TCA_NORMAL,
|
||||
/* 1 */ TCA_WAVE,
|
||||
/* 2 */ TCA_RIPPLE,
|
||||
/* 3 */ TCA_STARBURST
|
||||
} TransitionCircleAppearance;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TCC_BLACK,
|
||||
/* 1 */ TCC_WHITE,
|
||||
/* 2 */ TCC_GRAY,
|
||||
/* 3 */ TCC_SPECIAL // color varies depending on appearance. unused and appears broken
|
||||
} TransitionCircleColor;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TCS_FAST,
|
||||
/* 1 */ TCS_SLOW
|
||||
} TransitionCircleSpeed;
|
||||
|
||||
#define TC_SET_PARAMS (1 << 7)
|
||||
|
||||
#define TRANS_TYPE_CIRCLE(appearance, color, speed) ((1 << 5) | ((color & 3) << 3) | ((appearance & 3) << 1) | (speed & 1))
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
TransitionFade fade;
|
||||
@@ -1384,14 +1463,14 @@ typedef struct PlayState {
|
||||
/* 0x11E0C */ ElfMessage* cUpElfMsgs;
|
||||
/* 0x11E10 */ void* specialEffects;
|
||||
/* 0x11E14 */ u8 skyboxId;
|
||||
/* 0x11E15 */ s8 sceneLoadFlag; // "fade_direction"
|
||||
/* 0x11E15 */ s8 transitionTrigger; // "fade_direction"
|
||||
/* 0x11E16 */ s16 unk_11E16;
|
||||
/* 0x11E18 */ s16 unk_11E18;
|
||||
/* 0x11E1A */ s16 nextEntranceIndex;
|
||||
/* 0x11E1C */ char unk_11E1C[0x40];
|
||||
/* 0x11E5C */ s8 shootingGalleryStatus;
|
||||
/* 0x11E5D */ s8 bombchuBowlingStatus; // "bombchu_game_flag"
|
||||
/* 0x11E5E */ u8 fadeTransition;
|
||||
/* 0x11E5E */ u8 transitionType;
|
||||
/* 0x11E60 */ CollisionCheckContext colChkCtx;
|
||||
/* 0x120FC */ u16 envFlags[20];
|
||||
/* 0x12124 */ PreRender pauseBgPreRender;
|
||||
@@ -1515,6 +1594,20 @@ typedef struct {
|
||||
uint16_t bossRushArrowOffset;
|
||||
} FileChooseContext; // size = 0x1CAE0
|
||||
|
||||
// Macros for `EntranceInfo.field`
|
||||
#define ENTRANCE_INFO_CONTINUE_BGM_FLAG (1 << 15)
|
||||
#define ENTRANCE_INFO_DISPLAY_TITLE_CARD_FLAG (1 << 14)
|
||||
#define ENTRANCE_INFO_END_TRANS_TYPE_MASK 0x3F80
|
||||
#define ENTRANCE_INFO_END_TRANS_TYPE_SHIFT 7
|
||||
#define ENTRANCE_INFO_END_TRANS_TYPE(field) \
|
||||
(((field) >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT) \
|
||||
& (ENTRANCE_INFO_END_TRANS_TYPE_MASK >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT))
|
||||
#define ENTRANCE_INFO_START_TRANS_TYPE_MASK 0x7F
|
||||
#define ENTRANCE_INFO_START_TRANS_TYPE_SHIFT 0
|
||||
#define ENTRANCE_INFO_START_TRANS_TYPE(field) \
|
||||
(((field) >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT) \
|
||||
& (ENTRANCE_INFO_START_TRANS_TYPE_MASK >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT))
|
||||
|
||||
typedef enum {
|
||||
DPM_UNK = 0,
|
||||
DPM_PLAYER = 1,
|
||||
|
||||
@@ -970,43 +970,43 @@ typedef struct {
|
||||
} AudioContextInitSizes; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ u16 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ u16 unk_1C;
|
||||
} unk_50_s; // size = 0x20
|
||||
/* 0x00 */ f32 volCur;
|
||||
/* 0x04 */ f32 volTarget;
|
||||
/* 0x08 */ f32 volStep;
|
||||
/* 0x0C */ u16 volTimer;
|
||||
/* 0x10 */ f32 freqScaleCur;
|
||||
/* 0x14 */ f32 freqScaleTarget;
|
||||
/* 0x18 */ f32 freqScaleStep;
|
||||
/* 0x1C */ u16 freqScaleTimer;
|
||||
} ActiveSequenceChannelData; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ f32 volCur;
|
||||
/* 0x004 */ f32 volTarget;
|
||||
/* 0x008 */ f32 unk_08;
|
||||
/* 0x00C */ u16 unk_0C;
|
||||
/* 0x00E */ u8 volScales[0x4];
|
||||
/* 0x008 */ f32 volStep;
|
||||
/* 0x00C */ u16 volTimer;
|
||||
/* 0x00E */ u8 volScales[4];
|
||||
/* 0x012 */ u8 volFadeTimer;
|
||||
/* 0x013 */ u8 fadeVolUpdate;
|
||||
/* 0x014 */ u32 unk_14;
|
||||
/* 0x018 */ u16 unk_18;
|
||||
/* 0x01C */ f32 unk_1C;
|
||||
/* 0x020 */ f32 unk_20;
|
||||
/* 0x024 */ f32 unk_24;
|
||||
/* 0x028 */ u16 unk_28;
|
||||
/* 0x02C */ u32 unk_2C[8];
|
||||
/* 0x04C */ u8 unk_4C;
|
||||
/* 0x04D */ u8 unk_4D;
|
||||
/* 0x04E */ u8 unk_4E;
|
||||
/* 0x050 */ unk_50_s unk_50[0x10];
|
||||
/* 0x250 */ u16 unk_250;
|
||||
/* 0x252 */ u16 unk_252;
|
||||
/* 0x254 */ u16 unk_254;
|
||||
/* 0x256 */ u16 unk_256;
|
||||
/* 0x258 */ u16 unk_258;
|
||||
/* 0x25C */ u32 unk_25C;
|
||||
/* 0x260 */ u8 unk_260;
|
||||
} unk_D_8016E750; // size = 0x264
|
||||
/* 0x014 */ u32 tempoCmd;
|
||||
/* 0x018 */ u16 tempoOriginal; // stores the original tempo before modifying it (to reset back to)
|
||||
/* 0x01C */ f32 tempoCur;
|
||||
/* 0x020 */ f32 tempoTarget;
|
||||
/* 0x024 */ f32 tempoStep;
|
||||
/* 0x028 */ u16 tempoTimer;
|
||||
/* 0x02C */ u32 setupCmd[8]; // a queue of cmds to execute once the player is disabled
|
||||
/* 0x04C */ u8 setupCmdTimer; // only execute setup commands when the timer is at 0.
|
||||
/* 0x04D */ u8 setupCmdNum; // number of setup commands requested once the player is disabled
|
||||
/* 0x04E */ u8 setupFadeTimer;
|
||||
/* 0x050 */ ActiveSequenceChannelData channelData[16];
|
||||
/* 0x250 */ u16 freqScaleChannelFlags;
|
||||
/* 0x252 */ u16 volChannelFlags;
|
||||
/* 0x254 */ u16 seqId; // active seqId currently playing. Resets when sequence stops
|
||||
/* 0x256 */ u16 prevSeqId; // last seqId played on a player. Does not reset when sequence stops
|
||||
/* 0x258 */ u16 channelPortMask;
|
||||
/* 0x25C */ u32 startSeqCmd; // This name comes from MM
|
||||
/* 0x260 */ u8 isWaitingForFonts; // This name comes from MM
|
||||
} ActiveSequence; // size = 0x264
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ BANK_PLAYER,
|
||||
|
||||
@@ -30,6 +30,14 @@ typedef enum {
|
||||
/* 13 */ SKYBOX_DMA_PAL2_START
|
||||
} SkyboxDmaState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SANDSTORM_OFF,
|
||||
/* 1 */ SANDSTORM_FILL,
|
||||
/* 2 */ SANDSTORM_UNFILL,
|
||||
/* 3 */ SANDSTORM_ACTIVE,
|
||||
/* 4 */ SANDSTORM_DISSIPATE
|
||||
} SandstormState;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 state;
|
||||
/* 0x01 */ u8 flashRed;
|
||||
|
||||
@@ -132,16 +132,6 @@ typedef enum {
|
||||
/* 0x40 */ PLAYER_IA_MASK_GERUDO,
|
||||
/* 0x41 */ PLAYER_IA_MASK_TRUTH,
|
||||
/* 0x42 */ PLAYER_IA_LENS_OF_TRUTH,
|
||||
// Upstream TODO: Document why these entries were added
|
||||
/* 0x43 */ PLAYER_IA_SHIELD_DEKU,
|
||||
/* 0x44 */ PLAYER_IA_SHIELD_HYLIAN,
|
||||
/* 0x45 */ PLAYER_IA_SHIELD_MIRROR,
|
||||
/* 0x46 */ PLAYER_IA_TUNIC_KOKIRI,
|
||||
/* 0x47 */ PLAYER_IA_TUNIC_GORON,
|
||||
/* 0x48 */ PLAYER_IA_TUNIC_ZORA,
|
||||
/* 0x49 */ PLAYER_IA_BOOTS_KOKIRI,
|
||||
/* 0x4A */ PLAYER_IA_BOOTS_IRON,
|
||||
/* 0x4B */ PLAYER_IA_BOOTS_HOVER,
|
||||
/* 0x4C */ PLAYER_IA_MAX
|
||||
} PlayerItemAction;
|
||||
|
||||
@@ -355,7 +345,7 @@ typedef enum {
|
||||
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x00 */ f32 ceilingCheckHeight;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
@@ -369,7 +359,7 @@ typedef struct {
|
||||
/* 0x2C */ f32 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
/* 0x38 */ f32 wallCheckRadius;
|
||||
/* 0x3C */ f32 unk_3C;
|
||||
/* 0x40 */ f32 unk_40;
|
||||
/* 0x44 */ Vec3s unk_44;
|
||||
@@ -494,185 +484,192 @@ typedef struct {
|
||||
#define PLAYER_STATE3_RESTORE_NAYRUS_LOVE (1 << 6) // Set by ocarina effects actors when destroyed to signal Nayru's Love may be restored (see `ACTOROVL_ALLOC_ABSOLUTE`)
|
||||
#define PLAYER_STATE3_HOOKSHOT_TRAVELLING (1 << 7) //Travelling to target
|
||||
|
||||
typedef void (*PlayerFunc674)(struct Player*, struct PlayState*);
|
||||
typedef s32 (*PlayerFunc82C)(struct Player*, struct PlayState*);
|
||||
typedef void (*PlayerActionFunc)(struct Player*, struct PlayState*);
|
||||
typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*);
|
||||
typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*);
|
||||
|
||||
typedef struct Player {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
||||
/* 0x014D */ s8 currentSwordItemId;
|
||||
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
||||
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
||||
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
||||
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
||||
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
||||
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
||||
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
||||
/* 0x0155 */ char unk_155[0x003];
|
||||
/* 0x0158 */ u8 modelGroup;
|
||||
/* 0x0159 */ u8 nextModelGroup;
|
||||
/* 0x015A */ s8 unk_15A;
|
||||
/* 0x015B */ u8 modelAnimType;
|
||||
/* 0x015C */ u8 leftHandType;
|
||||
/* 0x015D */ u8 rightHandType;
|
||||
/* 0x015E */ u8 sheathType;
|
||||
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
||||
/* 0x0160 */ Gfx** rightHandDLists;
|
||||
/* 0x0164 */ Gfx** leftHandDLists;
|
||||
/* 0x0168 */ Gfx** sheathDLists;
|
||||
/* 0x016C */ Gfx** waistDLists;
|
||||
/* 0x0170 */ u8 giObjectLoading;
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
||||
/* 0x014D */ s8 currentSwordItemId;
|
||||
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
||||
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
||||
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
||||
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
||||
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
||||
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
||||
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
||||
/* 0x0155 */ char unk_155[0x003];
|
||||
/* 0x0158 */ u8 modelGroup;
|
||||
/* 0x0159 */ u8 nextModelGroup;
|
||||
/* 0x015A */ s8 itemChangeType;
|
||||
/* 0x015B */ u8 modelAnimType;
|
||||
/* 0x015C */ u8 leftHandType;
|
||||
/* 0x015D */ u8 rightHandType;
|
||||
/* 0x015E */ u8 sheathType;
|
||||
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
||||
/* 0x0160 */ Gfx** rightHandDLists;
|
||||
/* 0x0164 */ Gfx** leftHandDLists;
|
||||
/* 0x0168 */ Gfx** sheathDLists;
|
||||
/* 0x016C */ Gfx** waistDLists;
|
||||
/* 0x0170 */ u8 giObjectLoading;
|
||||
/* 0x0174 */ DmaRequest giObjectDmaRequest;
|
||||
/* 0x0194 */ OSMesgQueue giObjectLoadQueue;
|
||||
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
||||
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
||||
/* 0x01B4 */ SkelAnime skelAnime;
|
||||
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x03A8 */ s16 unk_3A8[2];
|
||||
/* 0x03AC */ Actor* heldActor;
|
||||
/* 0x03B0 */ Vec3f leftHandPos;
|
||||
/* 0x03BC */ Vec3s unk_3BC;
|
||||
/* 0x03C4 */ Actor* unk_3C4;
|
||||
/* 0x03C8 */ Vec3f unk_3C8;
|
||||
/* 0x03D4 */ char unk_3D4[0x058];
|
||||
/* 0x042C */ s8 doorType;
|
||||
/* 0x042D */ s8 doorDirection;
|
||||
/* 0x042E */ s16 doorTimer;
|
||||
/* 0x0430 */ Actor* doorActor;
|
||||
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
||||
/* 0x0436 */ u16 getItemDirection;
|
||||
/* 0x0438 */ Actor* interactRangeActor;
|
||||
/* 0x043C */ s8 mountSide;
|
||||
/* 0x043D */ char unk_43D[0x003];
|
||||
/* 0x0440 */ Actor* rideActor;
|
||||
/* 0x0444 */ u8 csMode;
|
||||
/* 0x0445 */ u8 prevCsMode;
|
||||
/* 0x0446 */ u8 unk_446;
|
||||
/* 0x0447 */ u8 unk_447;
|
||||
/* 0x0448 */ Actor* unk_448;
|
||||
/* 0x044C */ char unk_44C[0x004];
|
||||
/* 0x0450 */ Vec3f unk_450;
|
||||
/* 0x045C */ Vec3f unk_45C;
|
||||
/* 0x0468 */ char unk_468[0x002];
|
||||
/* 0x046A */ s16 doorBgCamIndex;
|
||||
/* 0x046C */ s16 subCamId;
|
||||
/* 0x046E */ char unk_46E[0x02A];
|
||||
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
||||
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
||||
/* 0x01B4 */ SkelAnime skelAnime;
|
||||
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x03A8 */ s16 unk_3A8[2];
|
||||
/* 0x03AC */ Actor* heldActor;
|
||||
/* 0x03B0 */ Vec3f leftHandPos;
|
||||
/* 0x03BC */ Vec3s unk_3BC;
|
||||
/* 0x03C4 */ Actor* unk_3C4;
|
||||
/* 0x03C8 */ Vec3f unk_3C8;
|
||||
/* 0x03D4 */ char unk_3D4[0x058];
|
||||
/* 0x042C */ s8 doorType;
|
||||
/* 0x042D */ s8 doorDirection;
|
||||
/* 0x042E */ s16 doorTimer;
|
||||
/* 0x0430 */ Actor* doorActor;
|
||||
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
||||
/* 0x0436 */ u16 getItemDirection;
|
||||
/* 0x0438 */ Actor* interactRangeActor;
|
||||
/* 0x043C */ s8 mountSide;
|
||||
/* 0x043D */ char unk_43D[0x003];
|
||||
/* 0x0440 */ Actor* rideActor;
|
||||
/* 0x0444 */ u8 csAction;
|
||||
/* 0x0445 */ u8 prevCsAction;
|
||||
/* 0x0446 */ u8 cueId;
|
||||
/* 0x0447 */ u8 unk_447;
|
||||
/* 0x0448 */ Actor* csActor; // Actor involved in a `csAction`. Typically the actor that invoked the cutscene.
|
||||
/* 0x044C */ char unk_44C[0x004];
|
||||
/* 0x0450 */ Vec3f unk_450;
|
||||
/* 0x045C */ Vec3f unk_45C;
|
||||
/* 0x0468 */ char unk_468[0x002];
|
||||
/* 0x046A */ s16 doorBgCamIndex;
|
||||
/* 0x046C */ s16 subCamId;
|
||||
/* 0x046E */ char unk_46E[0x02A];
|
||||
/* 0x0498 */ ColliderCylinder cylinder;
|
||||
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
||||
/* 0x05E4 */ ColliderQuad shieldQuad;
|
||||
/* 0x0664 */ Actor* unk_664;
|
||||
/* 0x0668 */ char unk_668[0x004];
|
||||
/* 0x066C */ s32 unk_66C;
|
||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||
/* 0x0674 */ PlayerFunc674 func_674;
|
||||
/* 0x0664 */ Actor* unk_664;
|
||||
/* 0x0668 */ char unk_668[0x004];
|
||||
/* 0x066C */ s32 unk_66C;
|
||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||
/* 0x0674 */ PlayerActionFunc actionFunc;
|
||||
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
||||
/* 0x067C */ u32 stateFlags1;
|
||||
/* 0x0680 */ u32 stateFlags2;
|
||||
/* 0x0684 */ Actor* unk_684;
|
||||
/* 0x0688 */ Actor* boomerangActor;
|
||||
/* 0x068C */ Actor* naviActor;
|
||||
/* 0x0690 */ s16 naviTextId;
|
||||
/* 0x0692 */ u8 stateFlags3;
|
||||
/* 0x0693 */ s8 exchangeItemId;
|
||||
/* 0x0694 */ Actor* targetActor;
|
||||
/* 0x0698 */ f32 targetActorDistance;
|
||||
/* 0x069C */ char unk_69C[0x004];
|
||||
/* 0x06A0 */ f32 unk_6A0;
|
||||
/* 0x06A4 */ f32 unk_6A4;
|
||||
/* 0x06A8 */ Actor* unk_6A8;
|
||||
/* 0x06AC */ s8 unk_6AC;
|
||||
/* 0x06AD */ u8 unk_6AD;
|
||||
/* 0x06AE */ u16 unk_6AE;
|
||||
/* 0x06B0 */ s16 unk_6B0;
|
||||
/* 0x06B2 */ char unk_6B4[0x004];
|
||||
/* 0x06B6 */ s16 unk_6B6;
|
||||
/* 0x06B8 */ s16 unk_6B8;
|
||||
/* 0x06BA */ s16 unk_6BA;
|
||||
/* 0x06BC */ s16 unk_6BC;
|
||||
/* 0x06BE */ s16 unk_6BE;
|
||||
/* 0x06C0 */ s16 unk_6C0;
|
||||
/* 0x06C2 */ s16 unk_6C2;
|
||||
/* 0x06C4 */ f32 unk_6C4;
|
||||
/* 0x06C8 */ SkelAnime skelAnime2;
|
||||
/* 0x070C */ Vec3s jointTable2[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x079C */ Vec3s morphTable2[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x082C */ PlayerFunc82C func_82C;
|
||||
/* 0x0830 */ f32 unk_830;
|
||||
/* 0x0834 */ s16 unk_834;
|
||||
/* 0x0836 */ s8 unk_836;
|
||||
/* 0x0837 */ u8 unk_837;
|
||||
/* 0x0838 */ f32 linearVelocity;
|
||||
/* 0x083C */ s16 currentYaw;
|
||||
/* 0x083E */ s16 targetYaw;
|
||||
/* 0x0840 */ u16 unk_840;
|
||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||
/* 0x0843 */ s8 meleeWeaponState;
|
||||
/* 0x0844 */ s8 unk_844;
|
||||
/* 0x0845 */ u8 unk_845;
|
||||
/* 0x0846 */ u8 unk_846;
|
||||
/* 0x0847 */ s8 unk_847[4];
|
||||
/* 0x084B */ s8 unk_84B[4];
|
||||
/* 0x084F */ s8 unk_84F;
|
||||
/* 0x0850 */ s16 unk_850; // multipurpose timer
|
||||
/* 0x0854 */ f32 unk_854;
|
||||
/* 0x0858 */ f32 unk_858;
|
||||
/* 0x085C */ f32 unk_85C; // stick length among other things
|
||||
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
||||
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
||||
/* 0x0864 */ f32 unk_864;
|
||||
/* 0x0868 */ f32 unk_868;
|
||||
/* 0x086C */ f32 unk_86C;
|
||||
/* 0x0870 */ f32 unk_870;
|
||||
/* 0x0874 */ f32 unk_874;
|
||||
/* 0x0878 */ f32 unk_878;
|
||||
/* 0x087C */ s16 unk_87C;
|
||||
/* 0x087E */ s16 unk_87E;
|
||||
/* 0x0880 */ f32 unk_880;
|
||||
/* 0x0884 */ f32 wallHeight; // height used to determine whether link can climb or grab a ledge at the top
|
||||
/* 0x0888 */ f32 wallDistance; // distance to the colliding wall plane
|
||||
/* 0x088C */ u8 unk_88C;
|
||||
/* 0x088D */ u8 unk_88D;
|
||||
/* 0x088E */ u8 unk_88E;
|
||||
/* 0x088F */ u8 unk_88F;
|
||||
/* 0x0890 */ u8 unk_890;
|
||||
/* 0x0891 */ u8 shockTimer;
|
||||
/* 0x0892 */ u8 unk_892;
|
||||
/* 0x0893 */ u8 hoverBootsTimer;
|
||||
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||
/* 0x0898 */ s16 unk_898;
|
||||
/* 0x089A */ s16 unk_89A;
|
||||
/* 0x089C */ s16 unk_89C;
|
||||
/* 0x089E */ u16 unk_89E;
|
||||
/* 0x08A0 */ u8 unk_8A0;
|
||||
/* 0x08A1 */ u8 unk_8A1;
|
||||
/* 0x08A2 */ s16 unk_8A2;
|
||||
/* 0x08A4 */ f32 unk_8A4;
|
||||
/* 0x08A8 */ f32 unk_8A8;
|
||||
/* 0x08AC */ f32 windSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces // Upstream TODO: pushedSpeed
|
||||
/* 0x08B0 */ s16 windDirection; // Yaw direction of player being pushed // Upstream TODO: pushedYaw
|
||||
/* 0x067C */ u32 stateFlags1;
|
||||
/* 0x0680 */ u32 stateFlags2;
|
||||
/* 0x0684 */ Actor* unk_684;
|
||||
/* 0x0688 */ Actor* boomerangActor;
|
||||
/* 0x068C */ Actor* naviActor;
|
||||
/* 0x0690 */ s16 naviTextId;
|
||||
/* 0x0692 */ u8 stateFlags3;
|
||||
/* 0x0693 */ s8 exchangeItemId;
|
||||
/* 0x0694 */ Actor* targetActor;
|
||||
/* 0x0698 */ f32 targetActorDistance;
|
||||
/* 0x069C */ char unk_69C[0x004];
|
||||
/* 0x06A0 */ f32 unk_6A0;
|
||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||
/* 0x06A8 */ Actor* unk_6A8;
|
||||
/* 0x06AC */ s8 unk_6AC;
|
||||
/* 0x06AD */ u8 unk_6AD;
|
||||
/* 0x06AE */ u16 unk_6AE;
|
||||
/* 0x06B0 */ s16 unk_6B0;
|
||||
/* 0x06B2 */ char unk_6B4[0x004];
|
||||
/* 0x06B6 */ s16 unk_6B6;
|
||||
/* 0x06B8 */ s16 unk_6B8;
|
||||
/* 0x06BA */ s16 unk_6BA;
|
||||
/* 0x06BC */ s16 unk_6BC;
|
||||
/* 0x06BE */ s16 unk_6BE;
|
||||
/* 0x06C0 */ s16 unk_6C0;
|
||||
/* 0x06C2 */ s16 unk_6C2;
|
||||
/* 0x06C4 */ f32 unk_6C4;
|
||||
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
||||
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x082C */ UpperActionFunc upperActionFunc;
|
||||
/* 0x0830 */ f32 upperAnimBlendWeight;
|
||||
/* 0x0834 */ s16 unk_834;
|
||||
/* 0x0836 */ s8 unk_836;
|
||||
/* 0x0837 */ u8 unk_837;
|
||||
/* 0x0838 */ f32 linearVelocity;
|
||||
/* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context.
|
||||
/* 0x083E */ s16 zTargetYaw; // yaw relating to Z targeting/"parallel" mode
|
||||
/* 0x0840 */ u16 underwaterTimer;
|
||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||
/* 0x0843 */ s8 meleeWeaponState;
|
||||
/* 0x0844 */ s8 unk_844;
|
||||
/* 0x0845 */ u8 unk_845;
|
||||
/* 0x0846 */ u8 unk_846;
|
||||
/* 0x0847 */ s8 unk_847[4];
|
||||
/* 0x084B */ s8 unk_84B[4];
|
||||
|
||||
/* 0x084F */ union {
|
||||
s8 actionVar1;
|
||||
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
|
||||
|
||||
/* 0x0850 */ union {
|
||||
s16 actionVar2;
|
||||
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
|
||||
|
||||
/* 0x0854 */ f32 unk_854;
|
||||
/* 0x0858 */ f32 unk_858;
|
||||
/* 0x085C */ f32 unk_85C; // stick length among other things
|
||||
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
||||
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
||||
/* 0x0864 */ f32 unk_864;
|
||||
/* 0x0868 */ f32 unk_868;
|
||||
/* 0x086C */ f32 unk_86C;
|
||||
/* 0x0870 */ f32 unk_870;
|
||||
/* 0x0874 */ f32 unk_874;
|
||||
/* 0x0878 */ f32 unk_878;
|
||||
/* 0x087C */ s16 unk_87C;
|
||||
/* 0x087E */ s16 unk_87E;
|
||||
/* 0x0880 */ f32 unk_880;
|
||||
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
||||
/* 0x0888 */ f32 distToInteractWall; // xyz distance to the interact wall
|
||||
/* 0x088C */ u8 ledgeClimbType;
|
||||
/* 0x088D */ u8 ledgeClimbDelayTimer;
|
||||
/* 0x088E */ u8 unk_88E;
|
||||
/* 0x088F */ u8 unk_88F;
|
||||
/* 0x0890 */ u8 unk_890;
|
||||
/* 0x0891 */ u8 bodyShockTimer;
|
||||
/* 0x0892 */ u8 unk_892;
|
||||
/* 0x0893 */ u8 hoverBootsTimer;
|
||||
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||
/* 0x0898 */ s16 floorPitch; // angle of the floor slope in the direction of current world yaw (positive for ascending slope)
|
||||
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
||||
/* 0x089C */ s16 unk_89C;
|
||||
/* 0x089E */ u16 floorSfxOffset;
|
||||
/* 0x08A0 */ u8 unk_8A0;
|
||||
/* 0x08A1 */ u8 unk_8A1;
|
||||
/* 0x08A2 */ s16 unk_8A2;
|
||||
/* 0x08A4 */ f32 unk_8A4;
|
||||
/* 0x08A8 */ f32 unk_8A8;
|
||||
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
||||
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
||||
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||
/* 0x09E0 */ MtxF mf_9E0;
|
||||
/* 0x0A20 */ MtxF shieldMf;
|
||||
/* 0x0A60 */ u8 isBurning;
|
||||
/* 0x0A61 */ u8 flameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||
/* 0x0A73 */ u8 unk_A73;
|
||||
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||
/* 0x09E0 */ MtxF mf_9E0;
|
||||
/* 0x0A20 */ MtxF shieldMf;
|
||||
/* 0x0A60 */ u8 bodyIsBurning;
|
||||
/* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||
/* 0x0A73 */ u8 unk_A73;
|
||||
/* 0x0A74 */ PlayerFuncA74 func_A74;
|
||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||
/* 0x0A79 */ u8 unk_A79;
|
||||
/* 0x0A7A */ u8 unk_A7A;
|
||||
/* 0x0A7B */ u8 unk_A7B;
|
||||
/* 0x0A7C */ f32 unk_A7C;
|
||||
/* 0x0A80 */ s16 unk_A80;
|
||||
/* 0x0A82 */ u16 unk_A82;
|
||||
/* 0x0A84 */ s16 unk_A84;
|
||||
/* 0x0A86 */ s8 unk_A86;
|
||||
/* 0x0A87 */ u8 unk_A87;
|
||||
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
||||
/* 0x0A7A */ u8 floorProperty;
|
||||
/* 0x0A7B */ u8 prevFloorType;
|
||||
/* 0x0A7C */ f32 prevControlStickMagnitude;
|
||||
/* 0x0A80 */ s16 prevControlStickAngle;
|
||||
/* 0x0A82 */ u16 prevFloorSfxOffset;
|
||||
/* 0x0A84 */ s16 unk_A84;
|
||||
/* 0x0A86 */ s8 unk_A86;
|
||||
/* 0x0A87 */ u8 unk_A87;
|
||||
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
||||
// #region SOH [General]
|
||||
// Upstream TODO: Rename these to be more obviously SoH specific
|
||||
/* */ PendingFlag pendingFlag;
|
||||
@@ -680,7 +677,7 @@ typedef struct Player {
|
||||
// #endregion
|
||||
// #region SOH [Enhancements]
|
||||
// Upstream TODO: Rename this to make it more obvious it is apart of an enhancement
|
||||
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
||||
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
||||
// #endregion
|
||||
u8 ivanFloating;
|
||||
u8 ivanDamageMultiplier;
|
||||
|
||||
@@ -314,8 +314,34 @@ enum SceneID {
|
||||
/* 0x6E */ SCENE_ID_MAX
|
||||
};
|
||||
|
||||
// this define exists to preserve shiftability for an unused scene that is
|
||||
// listed in the entrance table
|
||||
#define SCENE_UNUSED_6E SCENE_ID_MAX
|
||||
|
||||
#undef DEFINE_SCENE
|
||||
|
||||
// Entrance Index Enum
|
||||
#define DEFINE_ENTRANCE(enum, _1, _2, _3, _4, _5, _6) enum,
|
||||
|
||||
typedef enum {
|
||||
#include "tables/entrance_table.h"
|
||||
/* 0x614 */ ENTR_MAX
|
||||
} EntranceIndex;
|
||||
|
||||
#define ENTR_LOAD_OPENING -1
|
||||
|
||||
typedef enum {
|
||||
/* 0x7FF9 */ ENTR_RETURN_YOUSEI_IZUMI_YOKO = 0x7FF9, // Great Fairy Fountain (spells)
|
||||
/* 0x7FFA */ ENTR_RETURN_SYATEKIJYOU, // Shooting gallery
|
||||
/* 0x7FFB */ ENTR_RETURN_2, // unused
|
||||
/* 0x7FFC */ ENTR_RETURN_SHOP1, // Bazaar
|
||||
/* 0x7FFD */ ENTR_RETURN_4, // unused
|
||||
/* 0x7FFE */ ENTR_RETURN_DAIYOUSEI_IZUMI, // Great Fairy Fountain (magic, double magic, double defense)
|
||||
/* 0x7FFF */ ENTR_RETURN_GROTTO // Grottos and normal Fairy Fountain
|
||||
} ReturnEntranceIndex;
|
||||
|
||||
#undef DEFINE_ENTRANCE
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SDC_DEFAULT,
|
||||
/* 1 */ SDC_HYRULE_FIELD,
|
||||
|
||||
@@ -50,11 +50,16 @@ typedef struct {
|
||||
/* 0x004 */ Color_RGBA8_u32 envColor;
|
||||
/* 0x008 */ s32 texX;
|
||||
/* 0x00C */ s32 texY;
|
||||
/* 0x010 */ s32 step;
|
||||
/* 0x014 */ u8 unk_14;
|
||||
/* 0x015 */ u8 typeColor;
|
||||
/* 0x016 */ u8 speed;
|
||||
/* 0x017 */ u8 effect;
|
||||
// /* 0x010 */ s32 step;
|
||||
// /* 0x014 */ u8 unk_14;
|
||||
// /* 0x015 */ u8 typeColor;
|
||||
// /* 0x016 */ u8 speed;
|
||||
// /* 0x017 */ u8 effect;
|
||||
/* 0x010 */ s32 speed;
|
||||
/* 0x014 */ u8 direction;
|
||||
/* 0x015 */ u8 colorType;
|
||||
/* 0x016 */ u8 speedType;
|
||||
/* 0x017 */ u8 appearanceType;
|
||||
/* 0x018 */ u8 isDone;
|
||||
/* 0x019 */ u8 frame;
|
||||
/* 0x01A */ u16 normal;
|
||||
|
||||
Reference in New Issue
Block a user