diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_counter.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_alink.h | 34 | ||||
| -rw-r--r-- | include/d/actor/d_a_boomerang.h | 174 | ||||
| -rw-r--r-- | include/d/actor/d_a_grass.h | 30 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 5 | ||||
| -rw-r--r-- | include/d/actor/d_a_spinner.h | 61 | ||||
| -rw-r--r-- | include/d/actor/d_a_tag_sppath.h | 5 | ||||
| -rw-r--r-- | include/d/d_cc_d.h | 1 | ||||
| -rw-r--r-- | include/d/d_cc_mass_s.h | 2 | ||||
| -rw-r--r-- | include/d/d_cc_s.h | 9 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 8 | ||||
| -rw-r--r-- | include/d/d_kankyo.h | 1 | ||||
| -rw-r--r-- | include/d/d_path.h | 1 |
13 files changed, 215 insertions, 118 deletions
diff --git a/include/SSystem/SComponent/c_counter.h b/include/SSystem/SComponent/c_counter.h index 19cd6bd3a4..975824eb9e 100644 --- a/include/SSystem/SComponent/c_counter.h +++ b/include/SSystem/SComponent/c_counter.h @@ -6,7 +6,7 @@ struct counter_class { u32 mCounter0; s32 mCounter1; - s32 mTimer; + u32 mTimer; }; extern counter_class g_Counter; diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 957b7147e4..32ec4f92b8 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -3555,6 +3555,40 @@ public: mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos); } + cXyz* getLineTopPosP() { + return mSight.getPosP(); + } + + cXyz* getBoomerangLockPosP() { + return &mHeldItemRootPos; + } + + BOOL boomerangLockTrigger() { + return itemActionTrigger(); + } + + BOOL checkBoomerangLockTrigger() { + return boomerangLockTrigger(); + } + + BOOL checkDemoSpinnerKeep() const { + return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 1; + } + + BOOL checkDemoSpinnerKeepSpeed() const { + return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 2; + } + + bool checkSpinnerRideOwn(const fopAc_ac_c* param_0) { + return checkSpinnerRide() && mRideAcKeep.getActorConst() == param_0; + } + + BOOL checkSpinnerReady() const { return mProcID == PROC_SPINNER_READY; } + + BOOL checkGameOverWindow() const { return mProcID == PROC_DEAD && field_0x3478 < 0.01f; } + + f32 getSlideLimit() const { return field_0x3470; } + inline bool checkWindSpeedOnXZ() const; inline void startRestartRoomFromOut(int, u32, int); inline u16 getReadyItem(); diff --git a/include/d/actor/d_a_boomerang.h b/include/d/actor/d_a_boomerang.h index 974fe99645..9198ac4702 100644 --- a/include/d/actor/d_a_boomerang.h +++ b/include/d/actor/d_a_boomerang.h @@ -5,7 +5,9 @@ #include "d/d_particle_copoly.h" #include "f_op/f_op_actor_mng.h" -class daBoomerang_sight_c { +#define BOOMERANG_LOCK_MAX 5 + +class daBoomerang_sight_c : public dDlst_base_c { public: /* 8049E0B8 */ int createHeap(); /* 8049E36C */ void initialize(); @@ -13,48 +15,48 @@ public: /* 8049EDA8 */ void initFrame(int); /* 8049EDE8 */ void copyNumData(int); /* 8049EEC8 */ void setSight(cXyz const*, int); - /* 8049EF60 */ void draw(); - /* 804A278C */ virtual ~daBoomerang_sight_c(); + /* 8049EF60 */ virtual void draw(); + /* 804A278C */ virtual ~daBoomerang_sight_c() {} u8 getReserve() const { return mReserve; } - u8 getAlpha(int i_index) { return mAlpha[i_index]; } - void offRedSight() { mRedSight = false; } + u8 getAlpha(int i_index) { return m_alpha[i_index]; } + void offRedSight() { m_redSight = false; } void onReserve() { mReserve = 1; } void offReserve() { mReserve = 0; } private: - /* 0x04 */ J2DScreen* field_0x4; - /* 0x08 */ J2DPane* field_0x8; - /* 0x0C */ J2DPane* field_0xc; - /* 0x10 */ J2DPane* field_0x10; - /* 0x14 */ J2DPane* field_0x14; - /* 0x18 */ J2DAnmTevRegKey* field_0x18; - /* 0x1C */ J2DAnmTevRegKey* field_0x1c; - /* 0x20 */ J2DScreen* field_0x20; - /* 0x24 */ J2DPane* field_0x24; - /* 0x28 */ J2DPane* field_0x28; - /* 0x2C */ J2DPane* field_0x2c; - /* 0x30 */ J2DPane* field_0x30; - /* 0x34 */ J2DAnmTevRegKey* field_0x34; - /* 0x38 */ J2DAnmTevRegKey* field_0x38; - /* 0x3C */ J2DScreen* field_0x3c; - /* 0x40 */ J2DPane* field_0x40; - /* 0x44 */ J2DPane* field_0x44; - /* 0x48 */ J2DPane* field_0x48; - /* 0x4C */ J2DPane* field_0x4c; - /* 0x50 */ J2DAnmTevRegKey* field_0x50; - /* 0x54 */ J2DAnmTevRegKey* field_0x54; - /* 0x58 */ J2DAnmColor* field_0x58; - /* 0x5C */ J2DAnmTransform* field_0x5c; - /* 0x60 */ bool mRedSight; + /* 0x04 */ J2DScreen* m_cursorYellowScrn; + /* 0x08 */ J2DPane* m_cursorYellowAllPane; + /* 0x0C */ J2DPane* m_cursorYellow0Pane; + /* 0x10 */ J2DPane* m_cursorYellow1Pane; + /* 0x14 */ J2DPane* m_cursorYellow2Pane; + /* 0x18 */ J2DAnmTevRegKey* m_cursorYellow2Brk; + /* 0x1C */ J2DAnmTevRegKey* m_cursorYellowBrk; + /* 0x20 */ J2DScreen* m_cursorRedScrn; + /* 0x24 */ J2DPane* m_cursorRedAllPane; + /* 0x28 */ J2DPane* m_cursorRed0Pane; + /* 0x2C */ J2DPane* m_cursorRed1Pane; + /* 0x30 */ J2DPane* m_cursorRed2Pane; + /* 0x34 */ J2DAnmTevRegKey* m_cursorRed2Brk; + /* 0x38 */ J2DAnmTevRegKey* m_cursorRedBrk; + /* 0x3C */ J2DScreen* m_cursorOrangeScrn; + /* 0x40 */ J2DPane* m_cursorOrangeAllPane; + /* 0x44 */ J2DPane* m_cursorOrange0Pane; + /* 0x48 */ J2DPane* m_cursorOrange1Pane; + /* 0x4C */ J2DPane* m_cursorOrange2Pane; + /* 0x50 */ J2DAnmTevRegKey* m_cursorOrange2Brk; + /* 0x54 */ J2DAnmTevRegKey* m_cursorOrangeBrk; + /* 0x58 */ J2DAnmColor* m_cursorYellowBpk; + /* 0x5C */ J2DAnmTransform* m_cursorYellowBck; + /* 0x60 */ bool m_redSight; /* 0x61 */ u8 mReserve; - /* 0x62 */ u8 mAlpha[6]; - /* 0x68 */ f32 field_0x68[6]; - /* 0x80 */ f32 field_0x80[6]; + /* 0x62 */ u8 m_alpha[6]; + /* 0x68 */ f32 m_proj_posX[6]; + /* 0x80 */ f32 m_proj_posY[6]; /* 0x98 */ f32 field_0x98[6]; /* 0xB0 */ f32 field_0xb0[6]; - /* 0xC8 */ cXyz field_0xc8[6]; + /* 0xC8 */ cXyz m_pos[6]; }; // Size: 0x110 class daAlink_c; @@ -70,10 +72,16 @@ class daAlink_c; class daBoomerang_c : public fopAc_ac_c { public: enum daBoomerang_FLG0 { - /* 0x001 */ FLG0_1 = 0x001, - /* 0x004 */ FLG0_UNK = 0x004, - /* 0x010 */ FLG0_10 = 0x010, - /* 0x200 */ FLG0_0x200 = 0x200, + /* 0x001 */ FLG0_1 = 0x1, + /* 0x002 */ FLG0_2 = 0x2, + /* 0x004 */ FLG0_4 = 0x4, + /* 0x010 */ FLG0_10 = 0x10, + /* 0x020 */ FLG0_20 = 0x20, + /* 0x040 */ FLG0_40 = 0x40, + /* 0x080 */ FLG0_80 = 0x80, + /* 0x100 */ FLG0_100 = 0x100, + /* 0x200 */ FLG0_200 = 0x200, + /* 0x400 */ FLG0_400 = 0x400, /* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800, /* 0x080 */ WIND_CATCH = 0x80, }; @@ -95,85 +103,86 @@ public: /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*); /* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16); /* 804A012C */ void setEffect(); - /* 804A0874 */ void procWait(); - /* 804A0F0C */ void procMove(); + /* 804A0874 */ int procWait(); + /* 804A0F0C */ int procMove(); /* 804A1814 */ int execute(); /* 804A1BF4 */ ~daBoomerang_c(); /* 804A1EE4 */ int createHeap(); /* 804A2084 */ int create(); /* 804A230C */ daBoomerang_c(); - u32 checkStateFlg0(daBoomerang_FLG0 i_flag) { return mStateFlg0 & i_flag; } - void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; } + u32 checkStateFlg0(daBoomerang_FLG0 i_flag) const { return m_stateFlg0 & i_flag; } + void onStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 |= flag; } + void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; } void onWindCatch() { onStateFlg0(WIND_CATCH); } - bool checkForceDelete() const { return mForceDelete; } - void onForceDelete() { mForceDelete = true; } + bool checkForceDelete() const { return m_forceDelete; } + void onForceDelete() { m_forceDelete = true; } bool checkCharge() const { return true; } void setThrow() { fopAcM_SetParam(this, 1); } - void setAimActor(fopAc_ac_c* i_actor) { (this->*mpSetAimActorFn)(i_actor); } - void cancelLockActor(fopAc_ac_c* i_actor) { (this->*mpCancelLockActorFn)(i_actor); } - u8 getLockReserve() const { return mSight.getReserve(); } - bool getLockCntMax() { return mLockCnt >= 5; } + void setAimActor(fopAc_ac_c* i_actor) { (this->*m_setAimActorFn)(i_actor); } + void cancelLockActor(fopAc_ac_c* i_actor) { (this->*m_cancelLockActorFn)(i_actor); } + u8 getLockReserve() const { return m_sight.getReserve(); } + bool getLockCntMax() { return m_lockCnt >= BOOMERANG_LOCK_MAX; } void onLockDistanceCancel() { onStateFlg0(FLG0_LOCK_DIST_CANCEL); } private: - /* 0x568 */ J3DModel* field_0x568; - /* 0x56C */ J3DModel* field_0x56c; + /* 0x568 */ J3DModel* mp_boomModel; + /* 0x56C */ J3DModel* mp_shippuModel; /* 0x570 */ J3DAnmTextureSRTKey* m_windBtk; - /* 0x574 */ mDoExt_bckAnm mBck; - /* 0x590 */ J3DModel* field_0x590; + /* 0x574 */ mDoExt_bckAnm m_shippuBck; + /* 0x590 */ J3DModel* mp_setboomEfModel; /* 0x594 */ J3DAnmTextureSRTKey* m_waitEffBtk; - /* 0x598 */ daBoomerang_sight_c mSight; - /* 0x6A8 */ s32 field_0x6a8; - /* 0x6AC */ s32 field_0x6ac[5]; - /* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points - /* 0x6D4 */ u32 field_0x6d4; + /* 0x598 */ daBoomerang_sight_c m_sight; + /* 0x6A8 */ fpc_ProcID m_lockLineActorID; + /* 0x6AC */ fpc_ProcID m_lockActorIDs[BOOMERANG_LOCK_MAX]; + /* 0x6C0 */ fopAc_ac_c* m_lockActors[BOOMERANG_LOCK_MAX]; // Actors corresponding to the five target points + /* 0x6D4 */ fpc_ProcID field_0x6d4; /* 0x6D8 */ fopAc_ac_c* field_0x6d8; - /* 0x6DC */ cXyz mLockActorsPositions[5]; - /* 0x718 */ u8 field_0x718[5]; - /* 0x720 */ Z2SoundObjSimple field_0x720; - /* 0x740 */ dBgS_Acch field_0x740; - /* 0x918 */ dPaPo_c field_0x918; - /* 0x950 */ u8 mLockCnt; + /* 0x6DC */ cXyz m_lockActorsPositions[BOOMERANG_LOCK_MAX]; + /* 0x718 */ u8 field_0x718[BOOMERANG_LOCK_MAX]; + /* 0x720 */ Z2SoundObjSimple m_sound; + /* 0x740 */ dBgS_ObjAcch m_acch; + /* 0x918 */ dPaPo_c m_papo; + /* 0x950 */ u8 m_lockCnt; /* 0x951 */ u8 field_0x951; /* 0x952 */ u8 field_0x952; - /* 0x953 */ u8 field_0x953; + /* 0x953 */ s8 m_reverb; /* 0x954 */ u8 field_0x954; /* 0x955 */ u8 field_0x955; - /* 0x956 */ bool mForceDelete; + /* 0x956 */ bool m_forceDelete; /* 0x957 */ u8 field_0x957; /* 0x958 */ s16 field_0x958; - /* 0x95A */ s16 field_0x95a; + /* 0x95A */ s16 m_modelRotY; /* 0x95C */ s16 field_0x95c; /* 0x95E */ s16 field_0x95e; /* 0x960 */ s16 field_0x960; /* 0x962 */ s16 field_0x962; - /* 0x964 */ u32 mStateFlg0; + /* 0x964 */ u32 m_stateFlg0; /* 0x968 */ u32 field_0x968; /* 0x96C */ u32 field_0x96c; /* 0x970 */ u32 field_0x970; /* 0x974 */ u32 field_0x974; /* 0x978 */ u32 field_0x978; /* 0x97C */ u32 field_0x97c; - /* 0x980 */ f32 field_0x980; - /* 0x984 */ f32 field_0x984; + /* 0x980 */ f32 mGroundY; + /* 0x984 */ f32 m_lockLineSqdist; /* 0x988 */ f32 field_0x988; - /* 0x98C */ f32 field_0x98c; - /* 0x990 */ cXyz field_0x990; + /* 0x98C */ f32 m_shippuFrame; + /* 0x990 */ cXyz m_aimPos; /* 0x99C */ cXyz field_0x99c; - /* 0x9A8 */ f32 field_0x9a8; - /* 0x9AC */ cXyz field_0x9ac; + /* 0x9A8 */ f32 m_shippuSize; + /* 0x9AC */ cXyz m_moveTargetPos; /* 0x9B8 */ cXyz field_0x9b8; - /* 0x9C4 */ cXyz field_0x9c4; - /* 0x9D0 */ dCcD_Stts field_0x9d0; - /* 0xA0C */ dCcD_Cps field_0xa0c; - /* 0xB50 */ dCcD_Cyl field_0xb50; - /* 0xC8C */ dBgS_BoomerangLinChk field_0xc8c; - /* 0xCFC */ dBgS_ObjLinChk field_0xcfc; - /* 0xD6C */ dBgS_ObjGndChk field_0xd6c; - /* 0xDC0 */ int (daBoomerang_c::*mpProcFn)(); - /* 0xDCC */ void (daBoomerang_c::*mpSetAimActorFn)(fopAc_ac_c*); - /* 0xDD8 */ void (daBoomerang_c::*mpCancelLockActorFn)(fopAc_ac_c*); + /* 0x9C4 */ cXyz m_movePos; + /* 0x9D0 */ dCcD_Stts m_colliderStts; + /* 0xA0C */ dCcD_Cps m_atCps; + /* 0xB50 */ dCcD_Cyl m_windAtCyl; + /* 0xC8C */ dBgS_BoomerangLinChk m_boomLineChk; + /* 0xCFC */ dBgS_ObjLinChk m_lineChk; + /* 0xD6C */ dBgS_ObjGndChk m_gndChk; + /* 0xDC0 */ int (daBoomerang_c::*m_procFn)(); + /* 0xDCC */ void (daBoomerang_c::*m_setAimActorFn)(fopAc_ac_c*); + /* 0xDD8 */ void (daBoomerang_c::*m_cancelLockActorFn)(fopAc_ac_c*); }; STATIC_ASSERT(sizeof(daBoomerang_c) == 0xDE4); @@ -188,5 +197,4 @@ public: static f32 const m_lockWindScale; }; - #endif /* D_A_BOOMERANG_H */ diff --git a/include/d/actor/d_a_grass.h b/include/d/actor/d_a_grass.h index ff01bde653..16d908c818 100644 --- a/include/d/actor/d_a_grass.h +++ b/include/d/actor/d_a_grass.h @@ -35,6 +35,8 @@ public: /* 8051EDF0 */ void deleteData(); /* 80520928 */ dGrass_room_c(); + dGrass_data_c* getData() { return mp_data; } + /* 0x0 */ dGrass_data_c* mp_data; }; @@ -60,17 +62,19 @@ public: /* 805208E4 */ void setAnm(int, s16); /* 8051F03C */ virtual void draw(); - /* 8051BFBC */ virtual ~dGrass_packet_c(); + /* 8051BFBC */ virtual ~dGrass_packet_c() {} typedef void (dGrass_packet_c::*deleteFunc)(int); static deleteFunc m_deleteRoom; dGrass_anm_c* getAnm() { return m_anm; } + dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; } + dGrass_data_c* getData() { return m_data; } void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; } - /* 0x00010 */ u16 field_0x10; + /* 0x00010 */ u16 m_dataNum; /* 0x00014 */ dGrass_data_c m_data[1500]; /* 0x1BD64 */ dGrass_anm_c m_anm[112]; /* 0x1D5E4 */ dGrass_room_c m_room[64]; @@ -86,7 +90,7 @@ public: /* 0x1D708 */ u32 m_Mkusa_9q_DL_size; /* 0x1D70C */ u8* mp_Mkusa_9q_cDL; /* 0x1D710 */ u32 m_Mkusa_9q_cDL_size; - /* 0x1D714 */ u16 field_0x1d714; + /* 0x1D714 */ s16 field_0x1d714; }; // Size: 0x1D718 STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718); @@ -117,6 +121,8 @@ public: /* 80521C08 */ void deleteData(); /* 80522FB4 */ dFlower_room_c(); + dFlower_data_c* getData() { return mp_data; } + /* 0x0 */ dFlower_data_c* mp_data; }; @@ -148,11 +154,18 @@ public: static deleteFunc m_deleteRoom; dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; } + dFlower_anm_c* getAnm() { return &m_anm[0]; } dFlower_data_c* getData() { return m_data; } void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; } - /* 0x00010 */ u16 field_0x10; + void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; } + void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; } + void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; } + void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; } + cXyz& getPlayerSwordTop() { return m_playerSwordTop; } + + /* 0x00010 */ u16 m_dataNum; /* 0x00014 */ dFlower_data_c m_data[1000]; /* 0x11954 */ dFlower_anm_c m_anm[72]; /* 0x12914 */ dFlower_room_c m_room[64]; @@ -183,17 +196,18 @@ public: */ class daGrass_c : public fopAc_ac_c { public: - /* 8051BEFC */ int createGrass(); + /* 8051BEFC */ bool createGrass(); /* 8051BF68 */ void deleteGrass(); /* 8051C040 */ void executeGrass(); /* 8051C074 */ void drawGrass(); /* 8051C0A8 */ void newGrassData(cXyz&, int, u8, u8, s16, u8); - /* 8051C0D4 */ int createFlower(); + /* 8051C0D4 */ bool createFlower(); /* 8051C140 */ void deleteFlower(); /* 8051C218 */ void executeFlower(); /* 8051C24C */ void drawFlower(); /* 8051C280 */ void newFlowerData(s8, cXyz&, int, s8, s16); - /* 8051C304 */ int create(); + + /* 8051C304 */ inline int create(); inline int Delete(); inline int execute(); @@ -217,7 +231,7 @@ namespace daGrass_prm { inline u8 getItemBitNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; } }; -struct offset_data { +struct daGrass_offsetData { /* 0x0 */ u8 num; /* 0x4 */ csXyz* set_type; }; diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 24ba5827fb..9862f623c8 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -38,6 +38,7 @@ public: static void initDropAngleY() { m_dropAngleY = 0x4000; } static void offEventKeepFlg() { m_eventKeepFlg = 0; } + static void onEventKeepFlg() { m_eventKeepFlg = 1; } static s16 m_dropAngleY; static s16 m_eventKeepFlg; @@ -935,6 +936,8 @@ public: void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); } bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); } + u32 checkItemSightBgHit() const { return checkResetFlg0(RFLG0_UNK_2000000); } + void setCanoeSlider() { mSpecialMode = 0x2D; } void offCanoeSlider() { @@ -1002,6 +1005,8 @@ public: cXyz* getRightHandPosP() { return &mRightHandPos; } cXyz* getHeadTopPosP() { return &mHeadTopPos; } + const cXyz& getSwordTopPos() const { return mSwordTopPos; } + u32 checkWolf() const { return checkNoResetFlg1(FLG1_IS_WOLF); } u32 checkEquipHeavyBoots() const { return checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); } u32 checkMagneBootsOn() const { return checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); } diff --git a/include/d/actor/d_a_spinner.h b/include/d/actor/d_a_spinner.h index 5f97df743d..9cc8ba531e 100644 --- a/include/d/actor/d_a_spinner.h +++ b/include/d/actor/d_a_spinner.h @@ -15,6 +15,15 @@ */ class daSpinner_c : public fopAc_ac_c { public: + enum daSpinner_TAG { + TAG_NONE, + TAG_START, + TAG_2, + TAG_INTO, + TAG_INTO_INC_ROT, + TAG_END, + }; + /* 804D198C */ int createHeap(); /* 804D1A70 */ int create(); /* 804D1FD0 */ ~daSpinner_c(); @@ -40,28 +49,28 @@ public: static u32 getWaitArg() { return 0; } - int getDeleteFlg() const { return mDeleteFlg; } + BOOL getDeleteFlg() const { return mDeleteFlg; } - bool checkSpinnerTagEnd() const { return mSpinnerTag == 5; } - bool checkSpinnerTagIntoIncRot() const { return mSpinnerTag == 4; } - bool checkSpinnerTagInto() const { return mSpinnerTag == 3; } + bool checkSpinnerTagEnd() const { return mSpinnerTag == TAG_END; } + bool checkSpinnerTagIntoIncRot() const { return mSpinnerTag == TAG_INTO_INC_ROT; } + bool checkSpinnerTagInto() const { return mSpinnerTag == TAG_INTO; } bool checkGroundHit() { return mAcch.ChkGroundHit(); } u8 getButtonJump() const { return mButtonJump; } u8 getJumpFlg() const { return mJumpFlg; } - void setMove(f32 i_speed, s16 param_1) { + void setMove(f32 i_speed, s16 i_moveTime) { fopAcM_SetParam(this, 1); speedF = i_speed; - field_0xa7a = param_1; + mRideMoveTime = i_moveTime; mCyl.OnAtSetBit(); } void clearPathMove() { mpPathMove = NULL; } void setSpinnerTag(const cXyz& param_0) { - if (!mSpinnerTag) { - mSpinnerTag = 1; + if (mSpinnerTag == TAG_NONE) { + mSpinnerTag = TAG_START; } clearPathMove(); @@ -69,61 +78,61 @@ public: } void offSpinnerTag() { - if (mSpinnerTag != 0) { - mSpinnerTag = 5; + if (mSpinnerTag != TAG_NONE) { + mSpinnerTag = TAG_END; } } bool reflectAccept() { bool accept = false; - if (!mBck.isStop() && mSpinnerTag == 0) { + if (!mBck.isStop() && mSpinnerTag == TAG_NONE) { accept = true; } return accept; } - MtxP getModelMtx() { return mpModel->getBaseTRMtx(); } + MtxPtr getModelMtx() { return mpModel->getBaseTRMtx(); } - s16 getAngleY() { return shape_angle.y + field_0xa7e; } + s16 getAngleY() { return shape_angle.y + mRotY; } - void forceDelete() { mDeleteFlg = 1; } + void forceDelete() { mDeleteFlg = true; } private: /* 0x568 */ J3DModel* mpModel; /* 0x56C */ mDoExt_bckAnm mBck; - /* 0x588 */ J3DAnmTransform* field_0x588; + /* 0x588 */ J3DAnmTransform* mpSpoutBck; /* 0x58C */ dBgS_AcchCir mAcchCir[3]; - /* 0x64C */ dBgS_Acch mAcch; + /* 0x64C */ dBgS_LinkAcch mAcch; /* 0x824 */ dBgS_LinkLinChk mLinChk; - /* 0x894 */ dPaPo_c field_0x894; - /* 0x8CC */ Z2SoundObjSimple field_0x8cc; + /* 0x894 */ dPaPo_c mPaPo; + /* 0x8CC */ Z2SoundObjSimple mSound; /* 0x8EC */ dCcD_Stts mStts; /* 0x928 */ dCcD_Cyl mCyl; /* 0xA64 */ dPath* mpPathMove; /* 0xA68 */ dPath* field_0xa68; /* 0xA6C */ u8 field_0xa6c; /* 0xA6D */ u8 mJumpFlg; - /* 0xA6E */ s8 field_0xa6e; + /* 0xA6E */ s8 mReverb; /* 0xA6F */ u8 mSpinnerTag; /* 0xA70 */ u8 mButtonJump; /* 0xA71 */ u8 mDeleteFlg; - /* 0xA72 */ u8 field_0xa72; - /* 0xA73 */ s8 field_0xa73; + /* 0xA72 */ u8 mPathNo; + /* 0xA73 */ s8 mPathDirection; /* 0xA74 */ u8 field_0xa74; - /* 0xA75 */ u8 field_0xa75; - /* 0xA76 */ u8 field_0xa76; + /* 0xA75 */ u8 mTrigJump; + /* 0xA76 */ s8 field_0xa76; /* 0xA77 */ u8 mPathForceRemove; /* 0xA78 */ u8 field_0xa78; /* 0xA79 */ u8 field_0xa79; - /* 0xA7A */ s16 field_0xa7a; + /* 0xA7A */ s16 mRideMoveTime; /* 0xA7C */ s16 field_0xa7c; - /* 0xA7E */ s16 field_0xa7e; + /* 0xA7E */ s16 mRotY; /* 0xA80 */ s16 field_0xa80; /* 0xA82 */ s16 field_0xa82; /* 0xA84 */ f32 field_0xa84; /* 0xA88 */ f32 field_0xa88; - /* 0xA8C */ u32 field_0xa8c[2]; + /* 0xA8C */ u32 mSpreadEmitterIDs[2]; /* 0xA94 */ u32 field_0xa94; /* 0xA98 */ cXyz field_0xa98; /* 0xAA4 */ cXyz field_0xaa4; diff --git a/include/d/actor/d_a_tag_sppath.h b/include/d/actor/d_a_tag_sppath.h index 68fd623e60..d32a0280fe 100644 --- a/include/d/actor/d_a_tag_sppath.h +++ b/include/d/actor/d_a_tag_sppath.h @@ -12,6 +12,11 @@ public: /* 80D62024 */ int getNearPathPos(cXyz*, dPath*); /* 80D629C0 */ int execute(); + dPath* getKeepPath() { return mpBestPath; } + u16 getKeepPointNum() const { return mBestNo; } + bool checkDirectionFront() const { return field_0x6e8 == 1; } + bool checkDirectionNone() const { return field_0x6e8 == 0; } + /* 0x568 */ dPath* mpInitPath; /* 0x56C */ dPath* mpBestPath; /* 0x570 */ dCcD_Cyl mCyl; diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index db51eccd17..d08639e575 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -407,6 +407,7 @@ public: cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); } bool ChkTgHookshotThrough() { return mGObjTg.ChkSPrm(0x80); } bool ChkTgShieldHit() { return mGObjTg.ChkRPrm(2); } + bool ChkTgSpinnerReflect() { return mGObjTg.ChkSPrm(0x200); } static const Z2SoundID m_hitSeID[24]; diff --git a/include/d/d_cc_mass_s.h b/include/d/d_cc_mass_s.h index d6fd4e17c3..da4478eb48 100644 --- a/include/d/d_cc_mass_s.h +++ b/include/d/d_cc_mass_s.h @@ -35,6 +35,8 @@ private: /* 0x0C */ f32 mCoHitLen; public: + virtual ~dCcMassS_HitInf() {} + void ClearPointer(); void SetAreaHitObj(cCcD_Obj* obj) { mpArea = obj; } void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; } diff --git a/include/d/d_cc_s.h b/include/d/d_cc_s.h index 8787b9c385..619bb360b8 100644 --- a/include/d/d_cc_s.h +++ b/include/d/d_cc_s.h @@ -49,6 +49,15 @@ public: u32 GetMassResultCam() { return mMass_Mng.GetResultCam(); } void PrepareMass() { mMass_Mng.Prepare(); } + u32 ChkMass(cXyz* param_0, fopAc_ac_c** param_1, dCcMassS_HitInf* param_2) { + u32 rt = mMass_Mng.Chk(param_0, param_1, param_2); + return rt; + } + + void SetMassAttr(f32 radius, f32 height, u8 param_2, u8 param_3) { + mMass_Mng.SetAttr(radius, height, param_2, param_3); + } + static bool m_mtrl_hit_tbl[64]; // /* 0x0000 */ cCcS mCCcS; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index d6517f018b..392c2623eb 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -9,6 +9,7 @@ #include "d/d_event_manager.h" #include "d/d_particle.h" #include "f_op/f_op_camera_mng.h" +#include "m_Do/m_Do_controller_pad.h" #include "global.h" class JKRAramArchive; @@ -848,6 +849,8 @@ int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcNa int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName, JKRHeap* heap); int dComIfG_TimerDeleteRequest(int i_mode); int dComIfG_TimerStart(int i_mode, s16 i_time); +u32 dComIfG_getTrigA(u32 i_padNo); + bool dComIfGp_isLightDropMapVisible(); int dComIfG_TimerEnd(int i_mode, int param_1); void dComIfGs_onStageBossEnemy(int i_stageNo); @@ -981,6 +984,10 @@ inline int dComIfG_getObjctResName2Index(const char* i_arcName, const char* i_re return g_dComIfG_gameInfo.mResControl.getObjectResName2Index(i_arcName, i_resName); } +inline u32 dComIfG_getTrigB(u32 i_padNo) { + return mDoCPd_c::getTrig(i_padNo) & PAD_BUTTON_B; +} + u8 dComIfGs_getMixItemIndex(int i_no); void dComIfGs_setSelectItemIndex(int i_no, u8 item_index); void dComIfGs_setMixItemIndex(int i_no, u8 item_index); @@ -1029,6 +1036,7 @@ u8 dComIfGs_checkGetInsectNum(); u8 dComIfGs_getSelectMixItemNoArrowIndex(int i_selmixItemIdx); BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no); s8 dComIfGs_PolyDamageOff_Check(); +void dComIfGs_Grass_hide_Set(s8 param_0); inline void dComIfGs_init() { g_dComIfG_gameInfo.info.init(); diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index 6e0da0c62b..d187374959 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -615,5 +615,6 @@ BOOL dKy_SunMoon_Light_Check(); void dKy_bgparts_activelight_set(LIGHT_INFLUENCE* light_inf_p, int bgpart_id); void dKy_bgparts_activelight_cut(int bgpart_id); int dKy_Indoor_check(); +void dKy_GfFog_tevstr_set(dKy_tevstr_c* tevstr_p); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/d_path.h b/include/d/d_path.h index 82e25d6b5c..517cd4f575 100644 --- a/include/d/d_path.h +++ b/include/d/d_path.h @@ -13,6 +13,7 @@ struct dPath { /* 0x4 */ u8 field_0x4; /* 0x5 */ bool m_closed; /* 0x6 */ u8 field_0x6; + /* 0x7 */ u8 field_0x7; /* 0x8 */ dStage_dPnt_c* m_points; }; |
