From ee992eb80c798a3c3cec73fb785edf6852fbd259 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Thu, 12 Dec 2024 22:58:40 +0200 Subject: daObj_BouMato_c OK (#2264) * daObj_BouMato_c OK * daObjGraRock_c Matched except template function order * daBkyRock_c OK --- include/d/actor/d_a_arrow.h | 1 + include/d/actor/d_a_npc.h | 2 ++ include/d/actor/d_a_obj_bky_rock.h | 59 ++++++++++++++++++++++++++++--------- include/d/actor/d_a_obj_boumato.h | 60 +++++++++++++++++++++++++++++--------- include/d/actor/d_a_obj_gra_rock.h | 42 +++++++++++++++++++------- include/d/d_model.h | 2 ++ include/d/d_procname.h | 2 +- 7 files changed, 129 insertions(+), 39 deletions(-) (limited to 'include/d') diff --git a/include/d/actor/d_a_arrow.h b/include/d/actor/d_a_arrow.h index 41af437877..b330655ca5 100644 --- a/include/d/actor/d_a_arrow.h +++ b/include/d/actor/d_a_arrow.h @@ -58,6 +58,7 @@ public: void setBombArrowExplode() { field_0x950 = 0; } bool checkBombArrow() const { return mArrowType == true; } + u32 getHitAcID() { return mHitAcID; } void setShoot() { fopAcM_SetParam(this, 1); } void setChargeShoot() { fopAcM_SetParam(this, 2); } diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 9b16ab6a1a..631beb377a 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -587,6 +587,7 @@ u8 daNpcT_getDistTableIdx(int param_0, int param_1); BOOL daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* i_ActorP); void daNpcT_offTmpBit(u32 i_idx); void daNpcT_onTmpBit(u32 i_idx); +BOOL daNpcT_chkTmpBit(u32 i_idx); void daNpcT_onEvtBit(u32 i_idx); struct daBaseNpc_matAnm_c { @@ -1005,6 +1006,7 @@ BOOL daNpcF_chkEvtBit(u32 i_idx); void daNpcF_onEvtBit(u32 i_idx); BOOL daNpcF_chkTmpBit(u32 i_idx); void daNpcF_offTmpBit(u32 i_idx); +u8 daNpcF_getDistTableIdx(int param_0, int param_1); BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16); int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3); s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16); diff --git a/include/d/actor/d_a_obj_bky_rock.h b/include/d/actor/d_a_obj_bky_rock.h index c58837ddba..2771435fb5 100644 --- a/include/d/actor/d_a_obj_bky_rock.h +++ b/include/d/actor/d_a_obj_bky_rock.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_BKY_ROCK_H #define D_A_OBJ_BKY_ROCK_H +#include "d/d_cc_d.h" +#include "d/d_model.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,41 +13,72 @@ * @details * */ -class daBkyRock_c : public fopAc_ac_c { +class daBkyRock_c : public fopAc_ac_c, public request_of_phase_process_class { public: struct _pieceData { public: - /* 80BB6914 */ _pieceData(); + /* 80BB6914 */ _pieceData() { mMdlObj.mpObj = NULL; } + + /* 0x00 */ dMdl_obj_c mMdlObj; + /* 0x34 */ Vec position; + /* 0x40 */ f32 targetX; + /* 0x44 */ f32 targetZ; + /* 0x48 */ f32 scale; + /* 0x4C */ f32 speedY; + /* 0x50 */ s16 rotationX; + /* 0x52 */ s16 rotationZ; + /* 0x54 */ s16 rotationSpeed; + }; + + typedef void (daBkyRock_c::*exeProc)(); + + enum Mode { + MODE_0, + MODE_1, + MODE_2, }; /* 80BB6858 */ daBkyRock_c(); - /* 80BB6B5C */ ~daBkyRock_c(); - /* 80BB6C4C */ void create(); - /* 80BB6D60 */ void execute(); - /* 80BB6D84 */ void draw(); - /* 80BB6EB8 */ void Delete(); + /* 80BB6B5C */ virtual ~daBkyRock_c(); + /* 80BB6C4C */ int create(); + /* 80BB6D60 */ int execute(); + /* 80BB6D84 */ int draw(); + /* 80BB6EB8 */ int Delete(); /* 80BB6F64 */ void setModelMtx(); - /* 80BB6FD4 */ void createHeap(); + /* 80BB6FD4 */ int createHeap(); /* 80BB7144 */ void init(); /* 80BB72FC */ void middleExe(); /* 80BB7364 */ void exeModeNoDamage(); /* 80BB7458 */ void exeModeDamage(); /* 80BB75D8 */ void exeModePiece(); - /* 80BB7690 */ void chkHitBombArrow(); + /* 80BB7690 */ bool chkHitBombArrow(); /* 80BB776C */ void initChangeModeBefore(); /* 80BB77FC */ void initChangeModeAfter(); /* 80BB7818 */ void pieceMove(); /* 80BB7988 */ void pieceMoveInit(); /* 80BB7C18 */ void callBombEmt(int, u16 const*); - static u8 const s_CcDCyl[68]; - static u8 s_exeProc[36]; + u8 getSwBit0() { return fopAcM_GetParamBit(this, 4, 8); } + u8 getSwBit1() { return fopAcM_GetParamBit(this, 12, 8); } + s8 getNameNo() { return fopAcM_GetParamBit(this, 0, 4); } + + static dCcD_SrcCyl const s_CcDCyl; + static exeProc s_exeProc[3]; private: - /* 0x568 */ u8 field_0x568[0xf50 - 0x568]; + /* 0x568 */ int mVibrationTimer; + /* 0x578 */ u8 mMode; + /* 0x579 */ bool field_0x579; + /* 0x57A */ bool field_0x57a; + /* 0x57B */ Mtx mMtx; + /* 0x5AC */ dBgW* mBgW; + /* 0x5B0 */ dCcD_Stts mStts; + /* 0x5EC */ dCcD_Cyl mCyls[2]; + /* 0x864 */ J3DModel* mModels[3]; + /* 0x870 */ _pieceData mPieces[20]; }; -STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50); +//STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50); #endif /* D_A_OBJ_BKY_ROCK_H */ diff --git a/include/d/actor/d_a_obj_boumato.h b/include/d/actor/d_a_obj_boumato.h index e113f069d7..02623377d6 100644 --- a/include/d/actor/d_a_obj_boumato.h +++ b/include/d/actor/d_a_obj_boumato.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_BOUMATO_H #define D_A_OBJ_BOUMATO_H +#include "d/d_bg_s_acch.h" +#include "d/d_jnt_col.h" #include "f_op/f_op_actor_mng.h" #include "d/d_cc_d.h" @@ -13,34 +15,64 @@ * */ class daObj_BouMato_c : public fopAc_ac_c { +private: + /* 0x568 */ int field_0x568; + /* 0x56C */ request_of_phase_process_class mPhase; + /* 0x574 */ J3DModel* mModel; + /* 0x578 */ dBgS_ObjAcch mAcch; + /* 0x750 */ dCcD_Stts mStts; + /* 0x78C */ dBgS_AcchCir mAcchCir; + /* 0x7CC */ cBgS_GndChk mGndChk; + /* 0x808 */ dCcD_Cyl mCyl; + /* 0x944 */ cM3dGCyl mCyl2; + /* 0x95C */ cM3dGLin mGLin; + /* 0x978 */ dBgS_LinChk mLinChk; + /* 0x9E8 */ dJntCol_c mJntCol; + /* 0x9F8 */ csXyz field_0x9f8[3]; + /* 0xA0A */ u16 field_0xa0a; + /* 0xA0C */ int mCutType; + /* 0xA10 */ int field_0xa10; + /* 0xA14 */ f32 mGroundH; + /* 0xA18 */ f32 field_0xa18[3]; + /* 0xA24 */ s16 field_0xa24[3]; + /* 0xA2A */ s16 field_0xa2a; + /* 0xA2C */ int mShadowId; + /* 0xA30 */ s16 field_0xa30; + /* 0xA32 */ u8 field_0xa32; + /* 0xA34 */ fpc_ProcID mTargetId; + /* 0xA38 */ u8 field_0xa38; + /* 0xA39 */ bool mIsCurTurnRight; + public: - /* 80BBAFEC */ ~daObj_BouMato_c(); - /* 80BBB230 */ void create(); - /* 80BBB770 */ void CreateHeap(); - /* 80BBB800 */ void Delete(); - /* 80BBB834 */ void Execute(); - /* 80BBBD80 */ void Draw(); - /* 80BBBE50 */ void createHeapCallBack(fopAc_ac_c*); - /* 80BBBE70 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); - /* 80BBBEA0 */ void srchArrow(void*, void*); + /* 80BBAFEC */ virtual ~daObj_BouMato_c(); + /* 80BBB230 */ int create(); + /* 80BBB770 */ int CreateHeap(); + /* 80BBB800 */ int Delete(); + /* 80BBB834 */ int Execute(); + /* 80BBBD80 */ int Draw(); + /* 80BBBE50 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80BBBE70 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); + /* 80BBBEA0 */ static void* srchArrow(void*, void*); /* 80BBBF4C */ void deleteStuckArrow(); - /* 80BBBFF8 */ void getResName(); + /* 80BBBFF8 */ char* getResName(); /* 80BBC008 */ void setSwayParam(fopAc_ac_c*); /* 80BBC19C */ void setEnvTevColor(); /* 80BBC1F8 */ void setRoomNo(); /* 80BBC23C */ void setMtx(); -private: - /* 0x568 */ u8 field_0x568[0xa40 - 0x568]; + u8 getType() { return 0; } + u8 getOffSwBit() { return (fopAcM_GetParam(this) & 0xff00) >> 8; } + u8 getOnSwBit() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; } + void setCutType(u8 cutType) { mCutType = cutType; } }; STATIC_ASSERT(sizeof(daObj_BouMato_c) == 0xa40); class daObj_BouMato_Param_c { public: - /* 80BBC404 */ ~daObj_BouMato_Param_c(); + /* 80BBC404 */ virtual ~daObj_BouMato_Param_c() {} - static u8 const m[28]; + static f32 const m[7]; }; diff --git a/include/d/actor/d_a_obj_gra_rock.h b/include/d/actor/d_a_obj_gra_rock.h index a2b9cebc3a..4283b09238 100644 --- a/include/d/actor/d_a_obj_gra_rock.h +++ b/include/d/actor/d_a_obj_gra_rock.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_GRA_ROCK_H #define D_A_OBJ_GRA_ROCK_H +#include "d/d_bg_s_acch.h" +#include "d/d_bg_s_movebg_actor.h" #include "f_op/f_op_actor_mng.h" #include "d/d_cc_d.h" @@ -12,7 +14,7 @@ * @details * */ -class daObjGraRock_c : public fopAc_ac_c { +class daObjGraRock_c : public dBgS_MoveBgActor { public: /* 80C110F8 */ void setAttnPos(); /* 80C11444 */ void setBaseMtx(); @@ -21,21 +23,39 @@ public: /* 80C11730 */ void setEnvTevColor(); /* 80C1178C */ void setRoomNo(); /* 80C117D0 */ void col_set(); - /* 80C11964 */ void checkHitAt(cCcD_Obj*); - /* 80C11970 */ void Create(); - /* 80C11B68 */ void CreateHeap(); - /* 80C11C64 */ void create(); - /* 80C11FF0 */ void Execute(f32 (**)[3][4]); - /* 80C120FC */ void Draw(); - /* 80C121C4 */ void Delete(); + /* 80C11964 */ int checkHitAt(cCcD_Obj*); + /* 80C11970 */ int Create(); + /* 80C11B68 */ int CreateHeap(); + /* 80C11C64 */ int create(); + /* 80C11FF0 */ int Execute(Mtx**); + /* 80C120FC */ int Draw(); + /* 80C121C4 */ int Delete(); - static u8 const mCcDCyl[68]; + static dCcD_SrcCyl const mCcDCyl; private: - /* 0x568 */ u8 field_0x568[0x9cc - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhases[5]; + /* 0x5C8 */ J3DModel* mModel; + /* 0x5CC */ mDoExt_btpAnm mBtp; + /* 0x5E4 */ dBgS_ObjAcch mAcch; + /* 0x7BC */ dCcD_Stts mStts; + /* 0x7F8 */ dBgS_AcchCir mAcchCir; + /* 0x838 */ dCcD_Cyl mCyl; + /* 0x974 */ cBgS_GndChk mGndChk; + /* 0x9B0 */ s16 field_0x9b0; + /* 0x9B2 */ s16 field_0x9b2; + /* 0x9B4 */ s16 field_0x9b4; + /* 0x9B6 */ s16 field_0x9b6; + /* 0x9B8 */ s16 field_0x9b8; + /* 0x9BA */ s16 field_0x9ba; + /* 0x9BC */ u8 field_0x9bc; + /* 0x9BD */ u8 field_0x9bd; + /* 0x9BD */ s16 field_0x9be; + /* 0x9C0 */ u32 mParticleIds[2]; + /* 0x9BD */ u8 field_0x9c8; }; -STATIC_ASSERT(sizeof(daObjGraRock_c) == 0x9cc); +//STATIC_ASSERT(sizeof(daObjGraRock_c) == 0x9cc); #endif /* D_A_OBJ_GRA_ROCK_H */ diff --git a/include/d/d_model.h b/include/d/d_model.h index 9dc33d0ef2..0215637e3d 100644 --- a/include/d/d_model.h +++ b/include/d/d_model.h @@ -2,6 +2,7 @@ #define D_D_MODEL_H #include "JSystem/J3DGraphBase/J3DPacket.h" +#include "m_Do/m_Do_mtx.h" class J3DModelData; class dKy_tevstr_c; @@ -9,6 +10,7 @@ class dKy_tevstr_c; class dMdl_obj_c { public: MtxP getMtx() { return mMtx; } + void setMtx(Mtx mtx) { cMtx_copy(mtx, mMtx); } /* 0x00 */ Mtx mMtx; /* 0x30 */ dMdl_obj_c* mpObj; diff --git a/include/d/d_procname.h b/include/d/d_procname.h index 21c6600ce2..fe95a88b96 100644 --- a/include/d/d_procname.h +++ b/include/d/d_procname.h @@ -796,4 +796,4 @@ enum { PROC_GAMEOVER = 0x0317, }; -#endif /* D_PROCNAME_H */ \ No newline at end of file +#endif /* D_PROCNAME_H */ -- cgit v1.2.3