diff --git a/include/d/actor/d_a_bomb2.h b/include/d/actor/d_a_bomb2.h index 389a33f07..804f1bcf5 100644 --- a/include/d/actor/d_a_bomb2.h +++ b/include/d/actor/d_a_bomb2.h @@ -87,7 +87,7 @@ namespace daBomb2 { void set_no_hit(); bool chk_explode(); - static int solidHeapCB(fopAc_ac_c*); + static BOOL solidHeapCB(fopAc_ac_c*); bool create_heap_nut(); bool create_heap(); void crr_init(); diff --git a/include/d/actor/d_a_ep.h b/include/d/actor/d_a_ep.h index 87a1c5c8b..551e90671 100644 --- a/include/d/actor/d_a_ep.h +++ b/include/d/actor/d_a_ep.h @@ -8,6 +8,10 @@ #include "JSystem/JParticle/JPAEmitter.h" #include "SSystem/SComponent/c_phase.h" +struct ep_ga_s { + +}; + class ep_class : public fopAc_ac_c { public: /* 0x290 */ request_of_phase_process_class mPhsLoad_Ep; diff --git a/include/d/actor/d_a_kantera.h b/include/d/actor/d_a_kantera.h index e26d571d9..dba6d5123 100644 --- a/include/d/actor/d_a_kantera.h +++ b/include/d/actor/d_a_kantera.h @@ -9,6 +9,20 @@ #include "m_Do/m_Do_ext.h" #include "SSystem/SComponent/c_phase.h" +struct mo_ga_s { + /* 0x00 */ J3DModel* mpModel; + /* 0x04 */ cXyz mPos; + /* 0x10 */ cXyz m10; + /* 0x1C */ s16 mRotX; + /* 0x1E */ s16 mRotY; + /* 0x20 */ u8 m20[0x24 - 0x20]; + /* 0x24 */ f32 mScale; + /* 0x28 */ f32 mScaleY; + /* 0x2C */ s16 m2C; + /* 0x2E */ u8 m2E; + /* 0x2F */ u8 m2F; +}; + class kantera_class : public fopAc_ac_c { public: /* 0x290 */ request_of_phase_process_class mPhs; diff --git a/include/d/actor/d_a_mozo.h b/include/d/actor/d_a_mozo.h index 4d6076d9f..8c4ebf386 100644 --- a/include/d/actor/d_a_mozo.h +++ b/include/d/actor/d_a_mozo.h @@ -2,28 +2,71 @@ #define D_A_MOZO_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "m_Do/m_Do_ext.h" +#include "d/d_cc_d.h" class daMozo_c : public fopAc_ac_c { public: + typedef void(daMozo_c::*proc_t)(void); + void setProcess(void (daMozo_c::*)()) {} - void set_mtx(); + s32 _create(); + bool _delete(); + bool _draw(); + bool _execute(); void anime_proc(); - void wait_proc_init(); - void wait_proc(); + void checkRange(int); + BOOL CreateHeap(); + s32 CreateInit(); + void event_move(); + void getBeamActor(u32); void search_beam_proc_init(); void search_beam_proc(); void search_fire_proc_init(); void search_fire_proc(); void towait_proc_init(); void towait_proc(); - void checkRange(int); + void wait_proc_init(); + void wait_proc(); + void set_mtx(); void setAnm(int, float); - void getBeamActor(u32); - void event_move(); public: - /* Place member variables here */ + // TODO: add offset comments + proc_t mCurrentProc; + request_of_phase_process_class mPhs; + mDoExt_McaMorf* mAnimMorf; + mDoExt_brkAnm mBrkAnm; + J3DAnmTevRegKey* m_brk; + mDoExt_btkAnm mBtkAnm; + J3DAnmTextureSRTKey* m_btk; + // TODO: insert missing members + Quaternion mQuatRotation; + dCcD_Stts mColStatus; + dCcD_Cps mCapsuleCol; +}; + +class daMozo_HIO_c { +public: + daMozo_HIO_c(); + ~daMozo_HIO_c() {} +}; + +class daMozo_childHIO_c { +public: + ~daMozo_childHIO_c() {} +}; + +class daMozo_FireChildHIO_c { +public: + ~daMozo_FireChildHIO_c() {} +}; + +class daMozo_BeamChildHIO_c { +public: + ~daMozo_BeamChildHIO_c() {} }; #endif /* D_A_MOZO_H */ diff --git a/include/d/actor/d_a_nh.h b/include/d/actor/d_a_nh.h index 8f7d0d120..c78d3852b 100644 --- a/include/d/actor/d_a_nh.h +++ b/include/d/actor/d_a_nh.h @@ -106,7 +106,7 @@ class daNh_HIO_c : public JORReflexible { public: daNh_HIO_c(); - virtual ~daNh_HIO_c(); + virtual ~daNh_HIO_c() {} public: /* 0x04 */ s8 mChildID; diff --git a/include/d/actor/d_a_obj_AjavW.h b/include/d/actor/d_a_obj_AjavW.h index 4e12bfd5f..71674d1d9 100644 --- a/include/d/actor/d_a_obj_AjavW.h +++ b/include/d/actor/d_a_obj_AjavW.h @@ -7,11 +7,19 @@ #include "SSystem/SComponent/c_phase.h" class daObjAjavW_c : public fopAc_ac_c { +public: + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + bool create_heap(); + static BOOL solidHeapCB(fopAc_ac_c *i_this); + public: /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel* mModel; - /* 0x29C */ mDoExt_btkAnm mBtk; - /* 0x2B0 */ dBgW* mBgW; + /* 0x298 */ J3DModel * mpModel; + /* 0x29C */ mDoExt_btkAnm mBtkAnm; + /* 0x2B0 */ dBgW * mpBgW; }; #endif /* D_A_OBJ_AJAVW_H */ diff --git a/include/d/actor/d_a_obj_Vteng.h b/include/d/actor/d_a_obj_Vteng.h index 94a493ef4..76ce591f1 100644 --- a/include/d/actor/d_a_obj_Vteng.h +++ b/include/d/actor/d_a_obj_Vteng.h @@ -9,13 +9,20 @@ class daObjVteng_c : public fopAc_ac_c { public: void init_mtx(); + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + bool create_heap(); + bool jokai_demo(); + static BOOL solidHeapCB(fopAc_ac_c *i_this); public: /* 0x290 */ request_of_phase_process_class mPhs; /* 0x298 */ J3DModel* mpModel; /* 0x29C */ mDoExt_McaMorf* mpMorf; /* 0x2A0 */ dBgW* mpBgW; - /* 0x2A4 */ Mtx mMtx; + /* 0x2A4 */ Mtx mtx; }; #endif /* D_A_OBJ_VTENG_H */ diff --git a/include/d/actor/d_a_obj_dragonhead.h b/include/d/actor/d_a_obj_dragonhead.h index 2c9c8cb57..293cc5939 100644 --- a/include/d/actor/d_a_obj_dragonhead.h +++ b/include/d/actor/d_a_obj_dragonhead.h @@ -2,6 +2,9 @@ #define D_A_OBJ_DRAGONHEAD_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/d_cc_d.h" +#include "d/d_bg_w.h" class daObjDragonhead_c : public fopAc_ac_c { public: @@ -10,11 +13,21 @@ public: inline BOOL _draw(); inline BOOL _execute(); + BOOL CreateHeap(); void CreateInit(); void set_mtx(); public: - /* Place member variables here */ + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ J3DModel * mpModel; + /* 0x29C */ dCcD_Stts mStts; + /* 0x2D8 */ dCcD_Sph mSph; + /* 0x404 */ u8 mAlpha; + /* 0x405 */ bool mSwitchOn; + /* 0x408 */ dBgW * mpBgW; + /* 0x40C */ u8 field_0x40c; + /* 0x410 */ cXyz mSphCenter; + /* 0x41C */ Mtx mtx; }; #endif /* D_A_OBJ_DRAGONHEAD_H */ diff --git a/include/d/actor/d_a_obj_eayogn.h b/include/d/actor/d_a_obj_eayogn.h index e80fa4e7c..5825dc7e5 100644 --- a/include/d/actor/d_a_obj_eayogn.h +++ b/include/d/actor/d_a_obj_eayogn.h @@ -2,15 +2,29 @@ #define D_A_OBJ_EAYOGN_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/d_bg_w.h" +// #include "d/d_com_inf_game.h" class daObjEayogn_c : public fopAc_ac_c { public: - void check_ev_bit() const {} + // TODO: this function is marked as weak in the REL symbol map, but it does not get inlined for some reason? + // BOOL check_ev_bit() const { return dComIfGs_isSymbol(1); } + BOOL check_ev_bit() const; + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + BOOL create_heap(); + static BOOL solidHeapCB(fopAc_ac_c *i_this); void init_mtx(); + static const char M_arcname[7]; public: - /* Place member variables here */ + /* 0x290 */ J3DModel * mpModel; + /* 0x294 */ request_of_phase_process_class mPhs; + /* 0x2A0 */ dBgW * mpBgW; }; #endif /* D_A_OBJ_EAYOGN_H */ diff --git a/include/d/actor/d_a_obj_hfuck1.h b/include/d/actor/d_a_obj_hfuck1.h index ad71ada67..2dbaaaf6c 100644 --- a/include/d/actor/d_a_obj_hfuck1.h +++ b/include/d/actor/d_a_obj_hfuck1.h @@ -2,13 +2,28 @@ #define D_A_OBJ_HFUCK1_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/d_bg_w.h" +#include "d/d_cc_d.h" class daObjHfuck1_c : public fopAc_ac_c { public: void init_mtx(); + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + bool create_heap(); + bool checkCollision(); + static BOOL solidHeapCB(fopAc_ac_c *i_this); public: - /* Place member variables here */ + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ J3DModel * mpModel; + /* 0x29C */ dBgW * mpBgW; + /* 0x2A0 */ dCcD_Stts mStts; + /* 0x408 */ dCcD_Sph mSph; + /* 0x40C */ fopAc_ac_c * mpHookshotActor; }; #endif /* D_A_OBJ_HFUCK1_H */ diff --git a/include/d/actor/d_a_obj_hole.h b/include/d/actor/d_a_obj_hole.h index 8ddd91492..628c08202 100644 --- a/include/d/actor/d_a_obj_hole.h +++ b/include/d/actor/d_a_obj_hole.h @@ -3,10 +3,24 @@ #include "f_op/f_op_actor.h" #include "d/d_bg_s_lin_chk.h" +#include "d/d_bg_s_acch.h" class daObj_Hole_c : public fopAc_ac_c { public: - void modeProcInit(int) {} + enum Proc_e { + PROC_INIT = 0, + PROC_EXEC = 1 + }; + + enum Mode { + MODE_WAIT = 0, + MODE_EVENT = 1, + MODE_NULL, + }; + + static const char m_arc_name[]; + + void modeProcInit(int newMode) { modeProc(PROC_INIT, newMode); } void setMtx(); void getPosAndAngle(); @@ -14,22 +28,39 @@ public: void modeWait(); void modeEventInit(); void modeEvent(); - void modeProc(daObj_Hole_c::Proc_e mode, int i_nextState); + void modeProc(Proc_e proc, int newMode); void debugDraw(); void createInit(); void getArg(); + bool _execute(); + bool _draw(); + BOOL _createHeap(); + s32 _create(); + bool _delete(); + public: - /* 0x290 */ int mState; - /* 0x294 */ u8 mbHasModel; - /* 0x295 */ u8 mSclsNum; - /* 0x296 */ s16 mScale; - /* 0x298 */ u8 m298[0x2A0 - 0x298]; - /* 0x2A0 */ J3DModel* mpModel; - /* 0x2A4 */ dBgS_LinChk mLinChk; - /* 0x310 */ u8 m310[0x338 - 0x310]; - /* 0x338 */ int m338; - /* 0x33C */ u8 m33C[0x800 - 0x33C]; + /* 0x0290 */ s32 mMode; + /* 0x0294 */ u8 mHasModel; + /* 0x0295 */ u8 mExitIdx; + /* 0x0296 */ u16 mScaleLocal; + /* 0x0298 */ request_of_phase_process_class mPhs; + /* 0x02A0 */ J3DModel* mpMdl; + /* 0x02A4 */ dBgS_ObjLinChk mLinChk; + /* 0x0310 */ dBgS_ObjAcch mAcch; + /* 0x04D4 */ dBgS_AcchCir mAcchCir; +}; + +class daObj_Hole_HIO_c { +public: + daObj_Hole_HIO_c(); + virtual ~daObj_Hole_HIO_c() {} + + /* 0x04 */ s8 m04; + /* 0x05 */ u8 m05; + /* 0x08 */ f32 m08; + /* 0x0C */ s16 m0C; + /* 0x10 */ f32 m10; }; #endif /* D_A_OBJ_HOLE_H */ diff --git a/include/d/actor/d_a_obj_paper.h b/include/d/actor/d_a_obj_paper.h index 4d37fd16a..7c2cdc3cc 100644 --- a/include/d/actor/d_a_obj_paper.h +++ b/include/d/actor/d_a_obj_paper.h @@ -5,24 +5,65 @@ #include "d/d_cc_d.h" #include "SSystem/SComponent/c_phase.h" #include "f_op/f_op_msg.h" +#include "d/d_a_obj.h" namespace daObjPaper { + enum Type_e { + Opaper_e, + Ppos_e, + Piwa_e, + }; + class Act_c : public fopAc_ac_c { public: - void prm_get_msgNo() const {} - void prm_get_type() const {} + enum Prm_e { + PRM_MSG_NO_W = 0x10, + PRM_MSG_NO_S = 0x00, + + PRM_TYPE_W = 0x04, + PRM_TYPE_S = 0x10, + }; + + enum Act_Mode_e { + ActMode_WAIT_e, + ActMode_TALKBEGIN_e, + ActMode_GETMSG_e, + ActMode_TALKWAIT_e, + }; + + u32 prm_get_msgNo() const { return daObj::PrmAbstract(this, PRM_MSG_NO_W, PRM_MSG_NO_S); } + Type_e prm_get_type() const { return (Type_e)daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); } + + static const dCcD_SrcCyl M_cyl_src; + + static int solidHeapCB(fopAc_ac_c*); + bool create_heap(); + s32 _create(); + bool _delete(); + void mode_wait_init(); + void mode_wait(); + void mode_talk0_init(); + void mode_talk0(); + void mode_talk1_init(); + void mode_talk1(); + void mode_talk2_init(); + void mode_talk2(); + void set_mtx(); + void init_mtx(); + void damage_cc_proc(); + bool _execute(); + bool _draw(); public: /* 0x290 */ request_of_phase_process_class mPhs; /* 0x298 */ J3DModel* mpModel; - /* 0x29C */ dCcD_Cyl mCyl; - /* 0x3CC */ dCcD_Stts mStts; - /* 0x408 */ u8 mbHasCc; - /* 0x409 */ u8 m409[0x40C - 0x409]; + /* 0x29C */ dCcD_Cyl mCylinderCol; + /* 0x3CC */ dCcD_Stts mColStatus; + /* 0x408 */ bool mbHasCc; /* 0x40C */ int mMode; - /* 0x410 */ int mMsgId; + /* 0x410 */ u32 mMsgId; /* 0x414 */ msg_class* mpMsg; - /* 0x418 */ int mType; + /* 0x418 */ Type_e mType; }; }; diff --git a/include/d/actor/d_a_scene_change.h b/include/d/actor/d_a_scene_change.h index e1586bde8..e3b51d974 100644 --- a/include/d/actor/d_a_scene_change.h +++ b/include/d/actor/d_a_scene_change.h @@ -5,7 +5,19 @@ class d_a_scene_change_c : public fopAc_ac_c { public: - /* Place member variables here */ + /* 0x290 */ Mtx mTransformMtx; +}; + +class daSceneChgHIO_c { +public: + daSceneChgHIO_c(); + virtual ~daSceneChgHIO_c() { + m0004 = -1; + } + + s8 m0004; + s8 m0005; + f32 m0008; }; #endif /* D_A_SCENE_CHANGE_H */ diff --git a/include/d/actor/d_a_st.h b/include/d/actor/d_a_st.h index 06b3de6f4..c4d80e142 100644 --- a/include/d/actor/d_a_st.h +++ b/include/d/actor/d_a_st.h @@ -8,10 +8,18 @@ #include "m_Do/m_Do_ext.h" #include "c/c_damagereaction.h" +struct st_p { + +}; + +struct st_ke_s { + +}; + class st_class : public fopAc_ac_c { public: /* 0x02AC */ u8 m02AC[0x02B4 - 0x02AC]; - /* 0x02B4 */ daSt__BehaviorTypes mBehaviorType; + /* 0x02B4 */ u8 mBehaviorType; /* 0x02B5 */ u8 mAmbushSightRange; /* 0x02B6 */ u8 mUnusedParam; /* 0x02B7 */ u8 mAmbushSwitch; diff --git a/include/d/actor/d_a_swhit0.h b/include/d/actor/d_a_swhit0.h index d8f486810..9af1a38e2 100644 --- a/include/d/actor/d_a_swhit0.h +++ b/include/d/actor/d_a_swhit0.h @@ -21,7 +21,7 @@ public: s32 getTimer(); s32 getSwNo2(); - s32 CreateHeap(); + BOOL CreateHeap(); void decisionRtType(); s32 CreateInit(); diff --git a/include/d/actor/d_a_switem.h b/include/d/actor/d_a_switem.h index d9088c02a..4e05d6f3d 100644 --- a/include/d/actor/d_a_switem.h +++ b/include/d/actor/d_a_switem.h @@ -3,15 +3,30 @@ #include "f_op/f_op_actor.h" #include "d/d_cc_d.h" +#include "f_op/f_op_actor_mng.h" class daSwItem_c : public fopAc_ac_c { +public: + bool _delete(); + BOOL CreateInit(); + s32 _create(); + bool _execute(); + BOOL isRupeeInAllCreateTable(int); + bool _draw(); + public: /* 0x290 */ u8 m290[0x29C - 0x290]; /* 0x29C */ dCcD_Stts mStts; /* 0x2D8 */ dCcD_Cyl mCyl; /* 0x408 */ u8 mAtTypeTrigger; - /* 0x409 */ bool m409; + /* 0x409 */ bool mSpawnedItem; /* 0x40A */ u8 m40A[0x40C - 0x40A]; }; +namespace daSwItem_prm { + inline u32 getAtType(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x00) & 0xFF; } + inline u32 getItemTbl(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x08) & 0x3F; } + inline u32 getItemBitNo(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x0E) & 0x7F; } +} + #endif /* D_A_SWITEM_H */ diff --git a/include/d/actor/d_a_swtact.h b/include/d/actor/d_a_swtact.h index 7dbc6b716..0ed6af360 100644 --- a/include/d/actor/d_a_swtact.h +++ b/include/d/actor/d_a_swtact.h @@ -3,23 +3,40 @@ #include "f_op/f_op_actor.h" #include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor_mng.h" class daSwTact_c : public fopAc_ac_c { public: - void getR() {} + f32 getR() { return mRadius * mScale.x; } + bool _delete(); + BOOL CreateHeap(); void CreateInit(); void set_mtx(); + s32 getAnswer(); + s32 _create(); + bool _execute(); + bool _draw(); + + static const char * m_arcname; + static const f32 mDefaultR; + static const f32 mDefaultRwM; + static const u32 m_heapsize; public: /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel* mpModel; + /* 0x298 */ J3DModel * model; /* 0x29C */ f32 mRadius; - /* 0x2A0 */ u32 m2A0; + /* 0x2A0 */ u32 mSwitchNo; /* 0x2A4 */ u8 mAnswer; - /* 0x2A5 */ u8 m2A5; - /* 0x2A6 */ u8 m2A6; - /* 0x2A7 */ u8 m2A7[0x2A8 - 0x2A7]; + /* 0x2A5 */ bool mTrigger; + /* 0x2A6 */ u8 mPlayerStatus; }; +namespace daSwTact_prm { + inline u32 getSwitchNo(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 0) & 0xFF; } + inline u32 getAnswer(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; } + inline u32 getModel(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 16) & 0x0F; } +} + #endif /* D_A_SWTACT_H */ diff --git a/include/d/actor/d_a_tag_msg.h b/include/d/actor/d_a_tag_msg.h index faf2d1436..9bc295cef 100644 --- a/include/d/actor/d_a_tag_msg.h +++ b/include/d/actor/d_a_tag_msg.h @@ -5,13 +5,29 @@ class daTag_Msg_c : public fopAc_ac_c { public: + typedef BOOL (ActionFunc)(daTag_Msg_c*); + inline s32 create(); inline BOOL draw(); inline BOOL execute(); - void setActio(unsigned char) {} + void setActio(u8 action) { mAction = action; } + + u32 getEventNo(); + u32 getSwbit(); + u32 getSwbit2(); + u32 getType2(); + const char* myDemoName(); + u16 getMessage(); + u16 getEventFlag(); + BOOL arrivalTerms(); + int rangeCheck(); + int otherCheck(); public: - /* 0x290 */ u8 m290[0x294 - 0x290]; + /* 0x290 */ u8 mAction; + /* 0x291 */ u8 field_0x291; + /* 0x292 */ u8 field_0x292; + /* 0x293 */ u8 field_0x293; }; #endif /* D_A_TAG_MSG_H */ diff --git a/include/d/actor/d_a_tbox.h b/include/d/actor/d_a_tbox.h index 796eb31bf..2340fdd28 100644 --- a/include/d/actor/d_a_tbox.h +++ b/include/d/actor/d_a_tbox.h @@ -10,6 +10,7 @@ #include "d/d_particle.h" #include "d/d_bg_s_acch.h" #include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" class daTbox_c : public fopAc_ac_c { public: @@ -54,7 +55,7 @@ public: s32 getShapeType(); s32 getFuncType(); BOOL checkNormal(); - s32 CreateHeap(); + BOOL CreateHeap(); void CreateInit(); s32 boxCheck(); void lightUpProc(); @@ -120,7 +121,7 @@ public: /* 0x76C */ u8 mOpenedSwitch; }; -class daTbox_HIO_c { +class daTbox_HIO_c : public JORReflexible { public: daTbox_HIO_c(); virtual ~daTbox_HIO_c() { } diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 575e0d783..e5fa723fc 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -344,7 +344,6 @@ public: bool ChkCoHitNoActor() const { return mGObjCo.ChkRPrm(1); } bool ChkAtHitNoActor() const { return mGObjAt.ChkRPrm(2); } bool ChkTgHitNoActor() const { return mGObjTg.ChkRPrm(1); } - bool ChkTgWolfSpNoDamage() { return mGObjTg.ChkSPrm(0x800); } bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(2); } bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(4); } bool ChkTgHookShotNoHitMark() { return mGObjTg.ChkSPrm(0x400); } diff --git a/include/d/d_throwstone.h b/include/d/d_throwstone.h new file mode 100644 index 000000000..aa8497267 --- /dev/null +++ b/include/d/d_throwstone.h @@ -0,0 +1,23 @@ +#ifndef D_THROWSTONE_H +#define D_THROWSTONE_H + +#include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" + +class daThrowstone_c : public fopAc_ac_c { +public: + BOOL CreateHeap(); + inline s32 _create(); + inline BOOL _delete(); + inline BOOL _execute(); + inline bool _draw(); + + static const char M_arcname[5]; + +public: + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ J3DModel * mpModel; + /* 0x29C */ Mtx mMtx; +}; + +#endif /* D_THROWSTONE_H */ diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index bda6eff81..baa4c4cad 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -382,8 +382,6 @@ s32 fopAcM_createChildFromOffset(s16 procName, unsigned int parentProcID, u32 ac void fopAcM_DeleteHeap(fopAc_ac_c* p_actor); -s32 fopAcM_callCallback(fopAc_ac_c* p_actor, heapCallbackFunc p_callbackFunc, JKRHeap* p_heap); - bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size); inline void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ) { @@ -428,7 +426,6 @@ f32 fopAcM_searchActorDistanceXZ2(fopAc_ac_c* p_actorA, fopAc_ac_c* p_actorB); s32 fopAcM_rollPlayerCrash(fopAc_ac_c* i_this, f32 distAdjust, u32 flag); s32 fopAcM_checkCullingBox(Mtx, f32, f32, f32, f32, f32, f32); s32 fopAcM_cullingCheck(fopAc_ac_c*); -void* event_second_actor(u16); s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*); s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor); s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*); diff --git a/src/d/actor/d_a_bomb.cpp b/src/d/actor/d_a_bomb.cpp index 4d79e2fcb..22e7f53c9 100644 --- a/src/d/actor/d_a_bomb.cpp +++ b/src/d/actor/d_a_bomb.cpp @@ -1149,7 +1149,7 @@ BOOL daBomb_Delete(daBomb_c* i_this) { #include "d/actor/d_a_bomb3.inc" -int daBomb_createHeap(fopAc_ac_c* i_this) { +BOOL daBomb_createHeap(fopAc_ac_c* i_this) { static_cast(i_this)->createHeap(); } @@ -1176,7 +1176,7 @@ int daBomb_c::create() { } if(status == cPhs_COMPLEATE_e) { - if(fopAcM_entrySolidHeap(this, &daBomb_createHeap, m_attrType[mType].heapSize)) { + if(fopAcM_entrySolidHeap(this, daBomb_createHeap, m_attrType[mType].heapSize)) { create_init(); } else { diff --git a/src/d/actor/d_a_bomb2.cpp b/src/d/actor/d_a_bomb2.cpp index f812ef418..9344b747a 100644 --- a/src/d/actor/d_a_bomb2.cpp +++ b/src/d/actor/d_a_bomb2.cpp @@ -186,7 +186,7 @@ namespace daBomb2 { mpEmitter = param_1; } - int Act_c::solidHeapCB(fopAc_ac_c* i_this) { + BOOL Act_c::solidHeapCB(fopAc_ac_c* i_this) { return static_cast(i_this)->create_heap(); } @@ -310,7 +310,7 @@ namespace daBomb2 { int status = dComIfG_resLoad(&mPhs, L_attr.resName); if(status == cPhs_COMPLEATE_e) { - if(fopAcM_entrySolidHeap(this, &solidHeapCB, L_attr.heapSize)) { + if(fopAcM_entrySolidHeap(this, solidHeapCB, L_attr.heapSize)) { create_init(); } else { diff --git a/src/d/actor/d_a_item.cpp b/src/d/actor/d_a_item.cpp index 1c7f5c50b..794a750ec 100644 --- a/src/d/actor/d_a_item.cpp +++ b/src/d/actor/d_a_item.cpp @@ -242,7 +242,7 @@ s32 daItem_c::_daItem_create() { if (phase_state == cPhs_COMPLEATE_e) { // Note: The demo version calls getHeapSize instead of getFieldHeapSize here. u32 heap_size = dItem_data::getFieldHeapSize(m_itemNo); - if (!fopAcM_entrySolidHeap(this, &CheckFieldItemCreateHeap, heap_size)) { + if (!fopAcM_entrySolidHeap(this, CheckFieldItemCreateHeap, heap_size)) { return cPhs_ERROR_e; } CreateInit(); diff --git a/src/d/actor/d_a_kaji.cpp b/src/d/actor/d_a_kaji.cpp index da08d3849..9f67b2afe 100644 --- a/src/d/actor/d_a_kaji.cpp +++ b/src/d/actor/d_a_kaji.cpp @@ -46,7 +46,7 @@ s32 daKaji_c::_create() { s32 phase_state = dComIfG_resLoad(&mPhs, M_arcname); if (phase_state == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)&CheckCreateHeap, 0x660)) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x660)) { mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::YrotM(shape_angle.y); mDoMtx_stack_c::scaleM(mScale); diff --git a/src/d/actor/d_a_mozo.cpp b/src/d/actor/d_a_mozo.cpp index abb1fdd99..89d9dd168 100644 --- a/src/d/actor/d_a_mozo.cpp +++ b/src/d/actor/d_a_mozo.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_mozo.cpp // +#include "d/actor/d_a_mozo.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -14,95 +15,13 @@ #include "m_do/m_Do_mtx.h" #include "m_Do/m_Do_ext.h" - -/*** HIO ***/ -class daMozo_HIO_c { -public: - daMozo_HIO_c(); - ~daMozo_HIO_c(); -}; - static daMozo_HIO_c l_HIO; -class daMozo_childHIO_c { -public: - ~daMozo_childHIO_c(); -}; - -class daMozo_FireChildHIO_c { -public: - ~daMozo_FireChildHIO_c(); -}; - -class daMozo_BeamChildHIO_c { -public: - ~daMozo_BeamChildHIO_c(); -}; - -/*** Actor ***/ -class daMozo_c : public fopAc_ac_c { -public: - s32 _create(); - bool _delete(); - bool _draw(); - bool _execute(); - void anime_proc(); - void checkRange(int); - s32 CreateHeap(); - s32 CreateInit(); - void event_move(); - void getBeamActor(u32); - void search_beam_proc(); - void search_beam_proc_init(); - void search_fire_proc(); - void search_fire_proc_init(); - void set_mtx(); - void setAnm(int, float); - void towait_proc(); - void towait_proc_init(); - void wait_proc(); - void wait_proc_init(); - - typedef void(daMozo_c::*proc_t)(void); - proc_t mCurrentProc; - request_of_phase_process_class mPhs; - - mDoExt_McaMorf* mAnimMorf; - - mDoExt_brkAnm mBrkAnm; - J3DAnmTevRegKey* m_brk; - - mDoExt_btkAnm mBtkAnm; - J3DAnmTextureSRTKey* m_btk; - - // TODO: insert missing members - - Quaternion mQuatRotation; - - dCcD_Stts mColStatus; - dCcD_Cps mCapsuleCol; -}; - /* 000000EC-000001D0 .text __ct__12daMozo_HIO_cFv */ daMozo_HIO_c::daMozo_HIO_c() { /* Nonmatching */ } -/* 000001D0-0000022C .text __dt__21daMozo_FireChildHIO_cFv */ -daMozo_FireChildHIO_c::~daMozo_FireChildHIO_c() { - /* Nonmatching */ -} - -/* 0000022C-00000288 .text __dt__21daMozo_BeamChildHIO_cFv */ -daMozo_BeamChildHIO_c::~daMozo_BeamChildHIO_c() { - /* Nonmatching */ -} - -/* 00000288-000002D0 .text __dt__17daMozo_childHIO_cFv */ -daMozo_childHIO_c::~daMozo_childHIO_c() { - /* Nonmatching */ -} - /* 000002D0-00000568 .text daMozo_nodeCallBackBeam__FP8daMozo_cP8J3DModelP7J3DNodei */ void daMozo_nodeCallBackBeam(daMozo_c*, J3DModel*, J3DNode*, int) { /* Nonmatching */ @@ -119,12 +38,12 @@ void daMozo_nodeCallBack(J3DNode*, int) { } /* 0000078C-000007AC .text CheckCreateHeap__FP10fopAc_ac_c */ -s32 CheckCreateHeap(fopAc_ac_c* i_this) { +BOOL CheckCreateHeap(fopAc_ac_c* i_this) { return static_cast(i_this)->CreateHeap(); } /* 000007AC-00000A24 .text CreateHeap__8daMozo_cFv */ -s32 daMozo_c::CreateHeap() { +BOOL daMozo_c::CreateHeap() { /* Nonmatching */ J3DModelData* mdlData = (J3DModelData*)dComIfG_getObjectRes("Mozo", 9); @@ -269,7 +188,7 @@ s32 daMozo_c::_create() { s32 result = dComIfG_resLoad(&mPhs, "Mozo"); if (result == cPhs_COMPLEATE_e) { - s32 solidHeapResult = fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x1AA0); + s32 solidHeapResult = fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x1AA0); if (solidHeapResult & 0xFF == 0) { result = cPhs_ERROR_e; @@ -324,22 +243,22 @@ bool daMozo_c::_draw() { } /* 0000267C-000026A0 .text daMozo_Draw__FP8daMozo_c */ -s32 daMozo_Draw(daMozo_c* i_this) { +BOOL daMozo_Draw(daMozo_c* i_this) { return i_this->_draw(); } /* 000026A0-000026C4 .text daMozo_Execute__FP8daMozo_c */ -s32 daMozo_Execute(daMozo_c* i_this) { +BOOL daMozo_Execute(daMozo_c* i_this) { return i_this->_execute(); } /* 000026C4-000026CC .text daMozo_IsDelete__FP8daMozo_c */ -s32 daMozo_IsDelete(daMozo_c*) { +BOOL daMozo_IsDelete(daMozo_c*) { return TRUE; } /* 000026CC-000026F0 .text daMozo_Delete__FP8daMozo_c */ -s32 daMozo_Delete(daMozo_c* i_this) { +BOOL daMozo_Delete(daMozo_c* i_this) { return i_this->_delete(); } @@ -348,11 +267,6 @@ s32 daMozo_Create(fopAc_ac_c* i_this) { return static_cast(i_this)->_create(); } -/* 00002710-000027AC .text __dt__12daMozo_HIO_cFv */ -daMozo_HIO_c::~daMozo_HIO_c() { - /* Nonmatching */ -} - static actor_method_class l_daMozo_Method = { (process_method_func)daMozo_Create, (process_method_func)daMozo_Delete, diff --git a/src/d/actor/d_a_nh.cpp b/src/d/actor/d_a_nh.cpp index addeed504..ce4b8b1b7 100644 --- a/src/d/actor/d_a_nh.cpp +++ b/src/d/actor/d_a_nh.cpp @@ -129,7 +129,7 @@ s32 daNh_c::create() { fopAcM_SetupActor(this, daNh_c); - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)&checkCreateHeap, a_heap_size_tbl)) { + if (!fopAcM_entrySolidHeap(this, checkCreateHeap, a_heap_size_tbl)) { return cPhs_ERROR_e; } @@ -499,9 +499,6 @@ s32 daNh_Create(fopAc_ac_c* i_this) { return ((daNh_c*)i_this)->create(); } -/* 800FAEAC-800FAEF4 .text __dt__10daNh_HIO_cFv */ -daNh_HIO_c::~daNh_HIO_c() {} - actor_method_class l_daNh_Method = { (process_method_func)daNh_Create, (process_method_func)daNh_Delete, diff --git a/src/d/actor/d_a_npc_kamome.cpp b/src/d/actor/d_a_npc_kamome.cpp index 2edca964d..dcf901abd 100644 --- a/src/d/actor/d_a_npc_kamome.cpp +++ b/src/d/actor/d_a_npc_kamome.cpp @@ -289,7 +289,7 @@ s32 daNpc_kam_c::create() { s32 phase_state = dComIfG_resLoad(&mPhs, "Kamome"); if (phase_state == cPhs_COMPLEATE_e) { - if (!fopAcM_entrySolidHeap(this, &checkCreateHeap, l_heap_size)) { + if (!fopAcM_entrySolidHeap(this, checkCreateHeap, l_heap_size)) { mpMorf = NULL; return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_obj_AjavW.cpp b/src/d/actor/d_a_obj_AjavW.cpp index 5ca9c8f43..1ad4ba305 100644 --- a/src/d/actor/d_a_obj_AjavW.cpp +++ b/src/d/actor/d_a_obj_AjavW.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_AjavW.cpp // +#include "d/actor/d_a_obj_AjavW.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -12,22 +13,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjAjavW_c : public fopAc_ac_c { -public: - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - static BOOL solidHeapCB(fopAc_ac_c *i_this); - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ mDoExt_btkAnm mBtkAnm; - /* 0x2B0 */ dBgW * mpBgW; -}; - namespace { static const char l_arcname[] = "AjavW"; }; @@ -66,7 +51,7 @@ s32 daObjAjavW_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, l_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x8c0) == 1) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x8c0) == 1) { if (dComIfG_Bgsp()->Regist(mpBgW, this)) { ret = cPhs_ERROR_e; } else { diff --git a/src/d/actor/d_a_obj_Vteng.cpp b/src/d/actor/d_a_obj_Vteng.cpp index ab3539561..88b63e2af 100644 --- a/src/d/actor/d_a_obj_Vteng.cpp +++ b/src/d/actor/d_a_obj_Vteng.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_Vteng.cpp // +#include "d/actor/d_a_obj_Vteng.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -12,25 +13,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjVteng_c : public fopAc_ac_c { -public: - void init_mtx(); - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - bool jokai_demo(); - static BOOL solidHeapCB(fopAc_ac_c *i_this); - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ mDoExt_McaMorf* mpMorf; - /* 0x2A0 */ dBgW * mpBgW; - /* 0x2A4 */ Mtx mtx; -}; - namespace { static const char l_arcname[] = "Vteng"; }; @@ -93,7 +75,7 @@ s32 daObjVteng_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, l_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x72a0)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x72a0)) { fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); init_mtx(); if (dComIfG_Bgsp()->Regist(mpBgW, this)) { diff --git a/src/d/actor/d_a_obj_Ygush00.cpp b/src/d/actor/d_a_obj_Ygush00.cpp index 90b90c7c9..15042a4ae 100644 --- a/src/d/actor/d_a_obj_Ygush00.cpp +++ b/src/d/actor/d_a_obj_Ygush00.cpp @@ -71,7 +71,7 @@ s32 daObjYgush00_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, l_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x740) == 1) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x740) == 1) { mpModel->setBaseScale(mScale); mDoMtx_stack_c::transS(current.pos); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); diff --git a/src/d/actor/d_a_obj_adnno.cpp b/src/d/actor/d_a_obj_adnno.cpp index 2476e987c..de6bd99fc 100644 --- a/src/d/actor/d_a_obj_adnno.cpp +++ b/src/d/actor/d_a_obj_adnno.cpp @@ -67,7 +67,7 @@ s32 daObjAdnno_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, "Adnno"); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x9C00) == 0) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x9C00) == 0) { ret = cPhs_ERROR_e; } else { CreateInit(); diff --git a/src/d/actor/d_a_obj_akabe.cpp b/src/d/actor/d_a_obj_akabe.cpp index ca89a7a87..16c7505cf 100644 --- a/src/d/actor/d_a_obj_akabe.cpp +++ b/src/d/actor/d_a_obj_akabe.cpp @@ -68,7 +68,7 @@ namespace daObjAkabe { init_mtx(); static const u32 heap_size[4] = { 0x200, 0x200, 0x200, 0x3E0, }; - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, heap_size[mType])) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, heap_size[mType])) { dComIfG_Bgsp()->Regist(mpBgW, this); mpBgW->SetCrrFunc(NULL); mpBgW->SetPriority(1); diff --git a/src/d/actor/d_a_obj_bscurtain.cpp b/src/d/actor/d_a_obj_bscurtain.cpp index 2114fa273..501f4ac50 100644 --- a/src/d/actor/d_a_obj_bscurtain.cpp +++ b/src/d/actor/d_a_obj_bscurtain.cpp @@ -66,7 +66,7 @@ s32 daObj_Bscurtain_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, M_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x10000)) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x10000)) { ret = CreateInit(); } else { ret = cPhs_ERROR_e; diff --git a/src/d/actor/d_a_obj_cafelmp.cpp b/src/d/actor/d_a_obj_cafelmp.cpp index e89e5d671..9149e5e7c 100644 --- a/src/d/actor/d_a_obj_cafelmp.cpp +++ b/src/d/actor/d_a_obj_cafelmp.cpp @@ -51,7 +51,7 @@ s32 daObjCafelmp_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, "Cafelmp"); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x680) == 0) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x680) == 0) { ret = cPhs_ERROR_e; } else { CreateInit(); diff --git a/src/d/actor/d_a_obj_dmgroom.cpp b/src/d/actor/d_a_obj_dmgroom.cpp index 1689e796f..a66ca827b 100644 --- a/src/d/actor/d_a_obj_dmgroom.cpp +++ b/src/d/actor/d_a_obj_dmgroom.cpp @@ -56,7 +56,7 @@ s32 daObjDmgroom_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, "Dmgroom"); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x1460) == 0) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x1460) == 0) { ret = cPhs_ERROR_e; } else { CreateInit(); diff --git a/src/d/actor/d_a_obj_dragonhead.cpp b/src/d/actor/d_a_obj_dragonhead.cpp index e69e72e5f..171f39f83 100644 --- a/src/d/actor/d_a_obj_dragonhead.cpp +++ b/src/d/actor/d_a_obj_dragonhead.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_dragonhead.cpp // +#include "d/actor/d_a_obj_dragonhead.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -13,29 +14,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjDragonhead_c : public fopAc_ac_c { -public: - inline s32 _create(); - inline bool _execute(); - inline bool _draw(); - inline bool _delete(); - BOOL CreateHeap(); - void CreateInit(); - void set_mtx(); - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ dCcD_Stts mStts; - /* 0x2D8 */ dCcD_Sph mSph; - /* 0x404 */ u8 mAlpha; - /* 0x405 */ bool mSwitchOn; - /* 0x408 */ dBgW * mpBgW; - /* 0x40C */ u8 field_0x40c; - /* 0x410 */ cXyz mSphCenter; - /* 0x41C */ Mtx mtx; -}; - static dCcD_SrcSph sph_check_src = { // dCcD_SrcGObjInf { @@ -138,7 +116,7 @@ s32 daObjDragonhead_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, "Qdghd"); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x10500) == 0) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x10500) == 0) { ret = cPhs_ERROR_e; } else { CreateInit(); @@ -148,16 +126,16 @@ s32 daObjDragonhead_c::_create() { return ret; } -bool daObjDragonhead_c::_delete() { +BOOL daObjDragonhead_c::_delete() { if (heap != NULL && field_0x40c == 1) dComIfG_Bgsp()->Release(mpBgW); mDoAud_seDeleteObject(&mSphCenter); dComIfG_resDelete(&mPhs, "Qdghd"); - return true; + return TRUE; } -bool daObjDragonhead_c::_execute() { +BOOL daObjDragonhead_c::_execute() { dComIfG_Ccsp()->Set(&mSph); if (!mSwitchOn) { mDoAud_seStart(JA_SE_OBJ_ICEBERG_BREATH, &mSphCenter, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); @@ -200,10 +178,10 @@ bool daObjDragonhead_c::_execute() { } set_mtx(); - return true; + return TRUE; } -bool daObjDragonhead_c::_draw() { +BOOL daObjDragonhead_c::_draw() { g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &mTevStr); g_env_light.setLightTevColorType(mpModel, &mTevStr); dComIfGd_setListBG(); @@ -215,7 +193,7 @@ bool daObjDragonhead_c::_draw() { } mDoExt_modelUpdateDL(mpModel); dComIfGd_setList(); - return true; + return TRUE; } /* 000003CC-000004FC .text daObjDragonhead_Create__FPv */ diff --git a/src/d/actor/d_a_obj_eayogn.cpp b/src/d/actor/d_a_obj_eayogn.cpp index 989fef374..6bd253cf7 100644 --- a/src/d/actor/d_a_obj_eayogn.cpp +++ b/src/d/actor/d_a_obj_eayogn.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_eayogn.cpp // +#include "d/actor/d_a_obj_eayogn.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -12,34 +13,16 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjEayogn_c : public fopAc_ac_c { -public: - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - static bool solidHeapCB(fopAc_ac_c *i_this); - void init_mtx(); - BOOL check_ev_bit() const; - static const char M_arcname[7]; - -public: - /* 0x290 */ J3DModel * mpModel; - /* 0x294 */ request_of_phase_process_class mPhs; - /* 0x2A0 */ dBgW * mpBgW; -}; - const char daObjEayogn_c::M_arcname[7] = "Eayogn"; /* 00000078-00000098 .text solidHeapCB__13daObjEayogn_cFP10fopAc_ac_c */ -bool daObjEayogn_c::solidHeapCB(fopAc_ac_c* i_this) { +BOOL daObjEayogn_c::solidHeapCB(fopAc_ac_c* i_this) { return ((daObjEayogn_c*)i_this)->create_heap(); } /* 00000098-00000198 .text create_heap__13daObjEayogn_cFv */ -bool daObjEayogn_c::create_heap() { - bool ret = false; +BOOL daObjEayogn_c::create_heap() { + BOOL ret = FALSE; J3DModelData* mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, 0x04)); JUT_ASSERT(0x5c, mdl_data != 0); @@ -49,7 +32,7 @@ bool daObjEayogn_c::create_heap() { if (mpModel != NULL) { mpBgW = dBgW_NewSet((cBgD_t*)dComIfG_getObjectRes(M_arcname, 0x07), cBgW::MOVE_BG_e, &mpModel->getBaseTRMtx()); if (mpBgW != NULL) - ret = true; + ret = TRUE; } } @@ -67,7 +50,7 @@ s32 daObjEayogn_c::_create() { if (ret == cPhs_COMPLEATE_e) { ret = cPhs_ERROR_e; - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x0)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x0)) { fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); init_mtx(); dComIfG_Bgsp()->Regist(mpBgW, this); diff --git a/src/d/actor/d_a_obj_ganonbed.cpp b/src/d/actor/d_a_obj_ganonbed.cpp index ae40b7e65..8b514fcb8 100644 --- a/src/d/actor/d_a_obj_ganonbed.cpp +++ b/src/d/actor/d_a_obj_ganonbed.cpp @@ -57,7 +57,7 @@ s32 daObjGbed_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, l_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x13e0)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x13e0)) { if (dComIfG_Bgsp()->Regist(mpBgW, this)) { ret = cPhs_ERROR_e; } else { diff --git a/src/d/actor/d_a_obj_gong.cpp b/src/d/actor/d_a_obj_gong.cpp index f79d57910..4d988ef19 100644 --- a/src/d/actor/d_a_obj_gong.cpp +++ b/src/d/actor/d_a_obj_gong.cpp @@ -67,7 +67,7 @@ s32 daObjGong::Act_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, M_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x0)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x0)) { fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); init_mtx(); fopAcM_setCullSizeBox(this, -100.0f, -1.0f, -50.0f, 100.0f, 230.0f, 50.0f); diff --git a/src/d/actor/d_a_obj_hfuck1.cpp b/src/d/actor/d_a_obj_hfuck1.cpp index 5798eab93..6f2550dc2 100644 --- a/src/d/actor/d_a_obj_hfuck1.cpp +++ b/src/d/actor/d_a_obj_hfuck1.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_hfuck1.cpp // +#include "d/actor/d_a_obj_hfuck1.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -13,26 +14,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjHfuck1_c : public fopAc_ac_c { -public: - void init_mtx(); - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - bool checkCollision(); - static BOOL solidHeapCB(fopAc_ac_c *i_this); - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ dBgW * mpBgW; - /* 0x2A0 */ dCcD_Stts mStts; - /* 0x408 */ dCcD_Sph mSph; - /* 0x40C */ fopAc_ac_c * mpHookshotActor; -}; - namespace { static const char l_arcname[] = "Hfuck1"; @@ -122,7 +103,7 @@ s32 daObjHfuck1_c::_create() { s32 ret = dComIfG_resLoad(&mPhs, l_arcname); if (ret == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0xc20)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0xc20)) { if (dComIfG_Bgsp()->Regist(mpBgW, this)) { ret = cPhs_ERROR_e; } else { diff --git a/src/d/actor/d_a_obj_hole.cpp b/src/d/actor/d_a_obj_hole.cpp index 2f63ed092..5f1979af1 100644 --- a/src/d/actor/d_a_obj_hole.cpp +++ b/src/d/actor/d_a_obj_hole.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_hole.cpp // +#include "d/actor/d_a_obj_hole.h" #include "d/d_bg_s_lin_chk.h" #include "d/d_bg_s_acch.h" #include "d/d_com_inf_game.h" @@ -23,86 +24,22 @@ static f32 dummy2[3] = {1.0f, 1.0f, 1.0f}; static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01}; static f64 dummy4[2] = {3.0, 0.5}; - -class daObj_Hole_HIO_c { -public: - daObj_Hole_HIO_c(); - virtual ~daObj_Hole_HIO_c() {} - - /* 0x0004 */ s8 m0004; - /* 0x0005 */ u8 m0005; - /* 0x0008 */ float m0008; - /* 0x000C */ s16 m000C; - /* 0x0010 */ float m0010; -}; - static daObj_Hole_HIO_c l_HIO; -class daObj_Hole_c : public fopAc_ac_c { -public: - enum Proc_e { - PROC_INIT = 0, - PROC_EXEC = 1 - }; - - enum Mode { - MODE_WAIT = 0, - MODE_EVENT = 1, - MODE_NULL, - }; - - void modeProcInit(int newMode) { modeProc(PROC_INIT, newMode); } - - void setMtx(); - void getPosAndAngle(); - - void modeWaitInit(); - void modeWait(); - void modeEventInit(); - void modeEvent(); - void modeProc(Proc_e, int); - - s32 _execute(); - - void debugDraw(); - s32 _draw(); - - void createInit(); - s32 _createHeap(); - void getArg(); - - s32 _create(); - s32 _delete(); - - static const char m_arc_name[]; - - /* 0x0290 */ s32 mMode; - /* 0x0294 */ u8 mHasModel; - /* 0x0295 */ u8 mExitIdx; - /* 0x0296 */ u16 mScaleLocal; - /* 0x0298 */ request_of_phase_process_class mPhs; - - /* 0x02A0 */ J3DModel* mpMdl; - - /* 0x02A4 */ dBgS_ObjLinChk mLinChk; - /* 0x0310 */ dBgS_ObjAcch mAcch; - /* 0x04D4 */ dBgS_AcchCir mAcchCir; -}; - const char daObj_Hole_c::m_arc_name[] = "Aana"; /* 000000EC-0000010C .text createHeap_CB__FP10fopAc_ac_c */ -static s32 createHeap_CB(fopAc_ac_c* i_actor) { +static BOOL createHeap_CB(fopAc_ac_c* i_actor) { return static_cast(i_actor)->_createHeap(); } /* 0000010C-00000148 .text __ct__16daObj_Hole_HIO_cFv */ daObj_Hole_HIO_c::daObj_Hole_HIO_c() { - m0004 = -1; - m0005 = 0; - m0008 = 65.0f; - m000C = 0; - m0010 = 2.0f; + m04 = -1; + m05 = 0; + m08 = 65.0f; + m0C = 0; + m10 = 2.0f; } /* 00000148-000002BC .text setMtx__12daObj_Hole_cFv */ @@ -111,23 +48,23 @@ void daObj_Hole_c::setMtx() { adjustPos.x = current.pos.x; adjustPos.y = current.pos.y; adjustPos.z = current.pos.z; - adjustPos.y += l_HIO.m0010; + adjustPos.y += l_HIO.m10; if (mMode != MODE_EVENT) { shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(0)) + 0x8000; } if (mHasModel == 0xFF) { - float scale = l_HIO.m0008 * mScale.x; + float scale = l_HIO.m08 * mScale.x; - if (l_HIO.m000C != 0) { - scale += l_HIO.m000C * 10; + if (l_HIO.m0C != 0) { + scale += l_HIO.m0C * 10; } else { scale += mScaleLocal * 10; } - scale /= l_HIO.m0008; + scale /= l_HIO.m08; cXyz scaleVec; scaleVec.setall(scale); @@ -167,10 +104,10 @@ void daObj_Hole_c::modeWaitInit() { /* 00000410-000004F0 .text modeWait__12daObj_Hole_cFv */ void daObj_Hole_c::modeWait() { - float scale = l_HIO.m0008 * mScale.x; + float scale = l_HIO.m08 * mScale.x; - if (l_HIO.m000C != 0) { - scale += l_HIO.m000C * 10; + if (l_HIO.m0C != 0) { + scale += l_HIO.m0C * 10; } else { scale += mScaleLocal * 10; @@ -241,21 +178,21 @@ void daObj_Hole_c::modeProc(daObj_Hole_c::Proc_e proc, int newMode) { } /* 000006C0-00000700 .text _execute__12daObj_Hole_cFv */ -s32 daObj_Hole_c::_execute() { +bool daObj_Hole_c::_execute() { modeProc(PROC_EXEC, MODE_NULL); setMtx(); - return 0; + return false; } /* 00000700-00000738 .text debugDraw__12daObj_Hole_cFv */ void daObj_Hole_c::debugDraw() { cXyz pos = current.pos; - pos.y += l_HIO.m0010; + pos.y += l_HIO.m10; } /* 00000738-000007BC .text _draw__12daObj_Hole_cFv */ -s32 daObj_Hole_c::_draw() { - if (l_HIO.m0005 != 0) { +bool daObj_Hole_c::_draw() { + if (l_HIO.m05 != 0) { debugDraw(); } @@ -266,7 +203,7 @@ s32 daObj_Hole_c::_draw() { mDoExt_modelUpdateDL(mpMdl); } - return 1; + return true; } /* 000007BC-00000864 .text createInit__12daObj_Hole_cFv */ @@ -286,7 +223,7 @@ void daObj_Hole_c::createInit() { } /* 00000864-00000928 .text _createHeap__12daObj_Hole_cFv */ -s32 daObj_Hole_c::_createHeap() { +BOOL daObj_Hole_c::_createHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arc_name, 3); JUT_ASSERT(0x13D, modelData != 0); @@ -294,10 +231,10 @@ s32 daObj_Hole_c::_createHeap() { mpMdl = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022); if (mpMdl == NULL) { - return 0; + return FALSE; } else { - return 1; + return TRUE; } } @@ -326,7 +263,7 @@ s32 daObj_Hole_c::_create() { getArg(); if (mHasModel == 0xFF) { - u32 heapResult = fopAcM_entrySolidHeap(this, (heapCallbackFunc)createHeap_CB, 0x1000); + u32 heapResult = fopAcM_entrySolidHeap(this, createHeap_CB, 0x1000); if (heapResult == 0) { return cPhs_ERROR_e; @@ -340,9 +277,9 @@ s32 daObj_Hole_c::_create() { } /* 0000122C-0000125C .text _delete__12daObj_Hole_cFv */ -s32 daObj_Hole_c::_delete() { +bool daObj_Hole_c::_delete() { dComIfG_resDelete(&mPhs, m_arc_name); - return 1; + return true; } /* 0000125C-0000127C .text daObj_HoleCreate__FPv */ @@ -351,22 +288,22 @@ static s32 daObj_HoleCreate(void* i_actor) { } /* 0000127C-000012A0 .text daObj_HoleDelete__FPv */ -static u8 daObj_HoleDelete(void* i_actor) { +static BOOL daObj_HoleDelete(void* i_actor) { return static_cast(i_actor)->_delete(); } /* 000012A0-000012C4 .text daObj_HoleExecute__FPv */ -static u8 daObj_HoleExecute(void* i_actor) { +static BOOL daObj_HoleExecute(void* i_actor) { return static_cast(i_actor)->_execute(); } /* 000012C4-000012E8 .text daObj_HoleDraw__FPv */ -static u8 daObj_HoleDraw(void* i_actor) { +static BOOL daObj_HoleDraw(void* i_actor) { return static_cast(i_actor)->_draw(); } /* 000012E8-000012F0 .text daObj_HoleIsDelete__FPv */ -static u8 daObj_HoleIsDelete(void* i_actor) { +static BOOL daObj_HoleIsDelete(void* i_actor) { return TRUE; } diff --git a/src/d/actor/d_a_obj_paper.cpp b/src/d/actor/d_a_obj_paper.cpp index b5094564d..e6d437ab3 100644 --- a/src/d/actor/d_a_obj_paper.cpp +++ b/src/d/actor/d_a_obj_paper.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_paper.cpp // +#include "d/actor/d_a_obj_paper.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "f_op/f_op_actor.h" @@ -27,12 +28,6 @@ static f64 dummy4[2] = {3.0f, 0.5f}; namespace daObjPaper { namespace { - enum Type_e { - Opaper_e, - Ppos_e, - Piwa_e, - }; - struct Attr_c { /* 0x00 */ char* mResName; /* 0x04 */ s32 mHeapSize; @@ -59,7 +54,7 @@ namespace daObjPaper { inline const Attr_c & attr(Type_e type) { return L_attr[type]; } } - static const dCcD_SrcCyl M_cyl_src = { + const dCcD_SrcCyl Act_c::M_cyl_src = { // dCcD_SrcGObjInf { /* Flags */ 0, @@ -89,64 +84,6 @@ namespace daObjPaper { }, }; - enum Act_Mode_e { - ActMode_WAIT_e, - ActMode_TALKBEGIN_e, - ActMode_GETMSG_e, - ActMode_TALKWAIT_e, - }; - - class Act_c : public fopAc_ac_c { - public: - static int solidHeapCB(fopAc_ac_c*); - bool create_heap(); - s32 _create(); - bool _delete(); - - void mode_wait_init(); - void mode_wait(); - - void mode_talk0_init(); - void mode_talk0(); - - void mode_talk1_init(); - void mode_talk1(); - - void mode_talk2_init(); - void mode_talk2(); - - void set_mtx(); - void init_mtx(); - - void damage_cc_proc(); - bool _execute(); - bool _draw(); - - public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel* mpModel; - - /* 0x29C */ dCcD_Cyl mCylinderCol; - /* 0x3CC */ dCcD_Stts mColStatus; - /* 0x408 */ bool mbHasCc; - - /* 0x40C */ int mMode; - /* 0x410 */ u32 mMsgId; - /* 0x414 */ msg_class* mpMsg; - /* 0x418 */ Type_e mType; - - enum Prm_e { - PRM_MSG_NO_W = 0x10, - PRM_MSG_NO_S = 0x00, - - PRM_TYPE_W = 0x04, - PRM_TYPE_S = 0x10, - }; - - u32 prm_get_msgNo() const { return daObj::PrmAbstract(this, PRM_MSG_NO_W, PRM_MSG_NO_S); } - Type_e prm_get_type() const { return (Type_e)daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); } - }; - /* 00000078-0000009C .text solidHeapCB__Q210daObjPaper5Act_cFP10fopAc_ac_c */ int Act_c::solidHeapCB(fopAc_ac_c* i_this) { return static_cast(i_this)->create_heap(); @@ -177,7 +114,7 @@ namespace daObjPaper { s32 result = dComIfG_resLoad(&mPhs, attr(mType).mResName); if (result == cPhs_COMPLEATE_e) { - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, attr(mType).mHeapSize)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, attr(mType).mHeapSize)) { mEyePos.y += attr(mType).mEyeOffset; mAttentionInfo.mPosition.y += attr(mType).mAttentionOffset; diff --git a/src/d/actor/d_a_obj_pbka.cpp b/src/d/actor/d_a_obj_pbka.cpp index 6253a8b33..571205e30 100644 --- a/src/d/actor/d_a_obj_pbka.cpp +++ b/src/d/actor/d_a_obj_pbka.cpp @@ -61,7 +61,7 @@ static cPhs__Step daObjPbka_Create(void* i_this) { cPhsStep = dComIfG_resLoad(&a_this->mPhase, "Pbka"); if (cPhsStep == cPhs_COMPLEATE_e) { - if ((fopAcM_entrySolidHeap(a_this, CheckCreateHeap, 0x680) & 0xff) == 0) { + if (fopAcM_entrySolidHeap(a_this, CheckCreateHeap, 0x680) == 0) { cPhsStep = cPhs_ERROR_e; } else { a_this->CreateInit(); diff --git a/src/d/actor/d_a_obj_toripost.cpp b/src/d/actor/d_a_obj_toripost.cpp index 2e7c0965b..e4e3e4c4c 100644 --- a/src/d/actor/d_a_obj_toripost.cpp +++ b/src/d/actor/d_a_obj_toripost.cpp @@ -102,7 +102,7 @@ static u8 dummy3[] = { 0 }; -static int createHeap_CB(fopAc_ac_c* i_this) { +static BOOL createHeap_CB(fopAc_ac_c* i_this) { return static_cast(i_this)->_createHeap(); } @@ -113,12 +113,12 @@ BOOL daObjTpost_c::_createHeap() { mMorf = new mDoExt_McaMorf(modelData, 0, 0, 0, -1, 1.0f, 0, -1, 1, 0, 0x80000, 0x11000022); if(mMorf == 0 || mMorf->getModel() == 0) { - return 0; + return FALSE; } else { mMorf->getModel()->setUserArea((u32)this); - return 1; + return TRUE; } } @@ -947,7 +947,7 @@ int daObjTpost_c::_create() { getArg(); int step = dComIfG_resLoad(&mPhs, m_arc_name); if(step == cPhs_COMPLEATE_e) { - if(fopAcM_entrySolidHeap(this, &createHeap_CB, 0x7E0) == 0) { + if(fopAcM_entrySolidHeap(this, createHeap_CB, 0x7E0) == 0) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 27dcec5e4..c68d403e3 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -4507,7 +4507,7 @@ J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_di /* 80124C98-80125CC8 .text playerInit__9daPy_lk_cFv */ void daPy_lk_c::playerInit() { - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)&daPy_createHeap, 0xB0000)) { + if (!fopAcM_entrySolidHeap(this, daPy_createHeap, 0xB0000)) { JUT_ASSERT(0x53B6, 0); } diff --git a/src/d/actor/d_a_scene_change.cpp b/src/d/actor/d_a_scene_change.cpp index d2b721b0d..b3b2fb671 100644 --- a/src/d/actor/d_a_scene_change.cpp +++ b/src/d/actor/d_a_scene_change.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_scene_change.cpp // +#include "d/actor/d_a_scene_change.h" #include "JSystem/JKernel/JKRHeap.h" #include "f_op/f_op_actor.h" #include "f_op/f_op_actor_mng.h" @@ -11,23 +12,8 @@ #include "d/d_procname.h" #include "dolphin/types.h" -class daSceneChgHIO_c { -public: - daSceneChgHIO_c(); - virtual ~daSceneChgHIO_c(); - - s8 m0004; - s8 m0005; - f32 m0008; -}; - static daSceneChgHIO_c l_HIO; -class d_a_scene_change_c : public fopAc_ac_c { -public: - Mtx mTransformMtx; -}; - /* 000000EC-00000118 .text __ct__15daSceneChgHIO_cFv */ daSceneChgHIO_c::daSceneChgHIO_c() { m0004 = 0xFF; @@ -68,11 +54,6 @@ BOOL daSceneChgIsDelete(void* i_this) { return TRUE; } -/* 000001C8-00000218 .text __dt__15daSceneChgHIO_cFv */ -daSceneChgHIO_c::~daSceneChgHIO_c() { - m0004 = 0xFF; -} - static actor_method_class daSceneChgMethodTable = { (process_method_func)daSceneChgCreate, (process_method_func)daSceneChgDelete, diff --git a/src/d/actor/d_a_sea.cpp b/src/d/actor/d_a_sea.cpp index d23364b1d..975854544 100644 --- a/src/d/actor/d_a_sea.cpp +++ b/src/d/actor/d_a_sea.cpp @@ -347,7 +347,7 @@ void daSea_packet_c::execute(cXyz&) { } /* 8015C75C-8015D80C .text draw__14daSea_packet_cFv */ -BOOL daSea_packet_c::draw() { +void daSea_packet_c::draw() { /* Nonmatching */ } @@ -386,7 +386,7 @@ BOOL CheckCreateHeap(fopAc_ac_c* i_this) { /* 8015D924-8015D99C .text daSea_Create__FP10fopAc_ac_c */ s32 daSea_Create(fopAc_ac_c* i_this) { fopAcM_SetupActor(i_this, sea_class); - if (!fopAcM_entrySolidHeap(i_this, (heapCallbackFunc)CheckCreateHeap, 0xA000)) + if (!fopAcM_entrySolidHeap(i_this, CheckCreateHeap, 0xA000)) return cPhs_ERROR_e; return cPhs_COMPLEATE_e; } diff --git a/src/d/actor/d_a_shop_item.cpp b/src/d/actor/d_a_shop_item.cpp index 27dc1fb12..ef5d105e9 100644 --- a/src/d/actor/d_a_shop_item.cpp +++ b/src/d/actor/d_a_shop_item.cpp @@ -196,17 +196,17 @@ int daShopItem_c::_create() { else if(result == cPhs_COMPLEATE_e && result2 == cPhs_COMPLEATE_e) { u8 type = fopAcM_GetParamBit(fopAcM_GetParam(this), 8, 4); if(type == 2 || (type == 0 && mModelType[m_itemNo] == 0x02)) { - if(fopAcM_entrySolidHeap(this, &CheckItemCreateHeap, dItem_data::getHeapSize(m_itemNo)) == 0) { + if(fopAcM_entrySolidHeap(this, CheckItemCreateHeap, dItem_data::getHeapSize(m_itemNo)) == 0) { return cPhs_ERROR_e; } } else if(type == 1 || (type == 0 && mModelType[m_itemNo] == 0x01)) { - if(fopAcM_entrySolidHeap(this, &CheckFieldItemCreateHeap, dItem_data::getFieldHeapSize(m_itemNo)) == 0) { + if(fopAcM_entrySolidHeap(this, CheckFieldItemCreateHeap, dItem_data::getFieldHeapSize(m_itemNo)) == 0) { return cPhs_ERROR_e; } } else { - if(fopAcM_entrySolidHeap(this, &CheckItemCreateHeap, dItem_data::getHeapSize(m_itemNo)) == 0) { + if(fopAcM_entrySolidHeap(this, CheckItemCreateHeap, dItem_data::getHeapSize(m_itemNo)) == 0) { return cPhs_ERROR_e; } } diff --git a/src/d/actor/d_a_swhit0.cpp b/src/d/actor/d_a_swhit0.cpp index 71d265e64..0aeac82db 100644 --- a/src/d/actor/d_a_swhit0.cpp +++ b/src/d/actor/d_a_swhit0.cpp @@ -102,7 +102,7 @@ s32 daSwhit0_c::getSwNo2() { } /* 000000C4-00000230 .text CreateHeap__10daSwhit0_cFv */ -s32 daSwhit0_c::CreateHeap() { +BOOL daSwhit0_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Always", 0x35); JUT_ASSERT(0xD5, modelData != 0); @@ -184,7 +184,7 @@ s32 daSwhit0_c::CreateInit() { } /* 000004E8-00000508 .text CheckCreateHeap__FP10fopAc_ac_c */ -static s32 CheckCreateHeap(fopAc_ac_c* i_actr) { +static BOOL CheckCreateHeap(fopAc_ac_c* i_actr) { return static_cast(i_actr)->CreateHeap(); } @@ -195,7 +195,7 @@ s32 daSwhit0_c::create() { shape_angle.z = 0; current.angle.z = 0; - if ((fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x34A0) & 0xFF) == 0) { + if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x34A0) == 0) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_switem.cpp b/src/d/actor/d_a_switem.cpp index 69d9c7334..fa5ef044b 100644 --- a/src/d/actor/d_a_switem.cpp +++ b/src/d/actor/d_a_switem.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_switem.cpp // +#include "d/actor/d_a_switem.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/d_procname.h" @@ -12,30 +13,6 @@ #include "d/d_item.h" #include "d/actor/d_a_item.h" -class daSwItem_c : public fopAc_ac_c { -public: - bool _delete(); - BOOL CreateInit(); - s32 _create(); - bool _execute(); - BOOL isRupeeInAllCreateTable(int); - bool _draw(); - -public: - /* 0x290 */ u8 m290[0x29C - 0x290]; - /* 0x29C */ dCcD_Stts mStts; - /* 0x2D8 */ dCcD_Cyl mCyl; - /* 0x408 */ u8 mAtTypeTrigger; - /* 0x409 */ bool mSpawnedItem; - /* 0x40A */ u8 field_40A[0x40C - 0x40A]; -}; - -namespace daSwItem_prm { - inline u32 getAtType(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x00) & 0xFF; } - inline u32 getItemTbl(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x08) & 0x3F; } - inline u32 getItemBitNo(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x0E) & 0x7F; } -} - static dCcD_SrcCyl l_cyl_src = { // dCcD_SrcGObjInf { diff --git a/src/d/actor/d_a_swtact.cpp b/src/d/actor/d_a_swtact.cpp index b63a58643..a152f5841 100644 --- a/src/d/actor/d_a_swtact.cpp +++ b/src/d/actor/d_a_swtact.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_swtact.cpp // +#include "d/actor/d_a_swtact.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" @@ -12,41 +13,6 @@ #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" -class daSwTact_c : public fopAc_ac_c { -public: - bool _delete(); - BOOL CreateHeap(); - void CreateInit(); - void set_mtx(); - s32 getAnswer(); - s32 _create(); - bool _execute(); - bool _draw(); - - inline f32 getR() { return mRadius * mScale.x; } - - static const char * m_arcname; - static const f32 mDefaultR; - static const f32 mDefaultRwM; - static const u32 m_heapsize; - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * model; - /* 0x29C */ f32 mRadius; - /* 0x2A0 */ u32 mSwitchNo; - /* 0x2A4 */ u8 mAnswer; - /* 0x2A5 */ bool mTrigger; - /* 0x2A6 */ u8 mPlayerStatus; - /* 0x2A7 */ u8 pad; -}; - -namespace daSwTact_prm { - inline u32 getSwitchNo(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 0) & 0xFF; } - inline u32 getAnswer(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; } - inline u32 getModel(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 16) & 0x0F; } -} - const char * daSwTact_c::m_arcname = "Itact"; const f32 daSwTact_c::mDefaultR = 50.0f; const f32 daSwTact_c::mDefaultRwM = 100.0f; @@ -59,7 +25,7 @@ bool daSwTact_c::_delete() { } /* 000000AC-000000CC .text CheckCreateHeap__FP10fopAc_ac_c */ -s32 CheckCreateHeap(fopAc_ac_c* i_ac) { +BOOL CheckCreateHeap(fopAc_ac_c* i_ac) { return ((daSwTact_c *)i_ac)->CreateHeap(); } @@ -111,7 +77,7 @@ s32 daSwTact_c::_create() { result = dComIfG_resLoad(&this->mPhs, m_arcname); if (result == cPhs_COMPLEATE_e) { - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x3000)) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x3000)) { return cPhs_ERROR_e; } } diff --git a/src/d/actor/d_a_tag_msg.cpp b/src/d/actor/d_a_tag_msg.cpp index ba09aad03..ad4981281 100644 --- a/src/d/actor/d_a_tag_msg.cpp +++ b/src/d/actor/d_a_tag_msg.cpp @@ -2,53 +2,33 @@ // Generated by dtk // Translation Unit: d_a_tag_msg.cpp // +#include "d/actor/d_a_tag_msg.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/actor/d_a_player_main.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" -struct daTag_Msg_c : public fopAc_ac_c { -public: - u32 getEventNo(); - u32 getSwbit(); - u32 getSwbit2(); - u32 getType2(); - const char* myDemoName(); - u16 getMessage(); - u16 getEventFlag(); - s32 arrivalTerms(); - int rangeCheck(); - int otherCheck(); - - inline s32 execute(); - inline s32 create(); -public: - /* 0x00 */ u8 mAction; - /* 0x01 */ u8 field_0x291; - /* 0x02 */ u8 field_0x292; - /* 0x03 */ u8 field_0x293; -}; // Size = 0x294 - -u8 bss_3569; -u8 bss_1036; -u8 bss_1034; -u8 bss_1032; -u8 bss_1031; -u8 bss_1026; -u8 bss_1024; -u8 bss_1022; -u8 bss_1021; -u8 bss_984; -u8 bss_982; -u8 bss_980; -u8 bss_979; -u8 bss_941; -u8 bss_939; -u8 bss_937; -u32 bss_936[15]; -u32 l_msgId; -msg_class* l_msg; -u8 msg_mode; +static Vec bss_3569; +// Not sure what these are, but they have size 1, and alignment 1 in the debug maps, but alignment 4 in the non-debug maps. +static u8 bss_1036 __attribute__((aligned(4))); +static u8 bss_1034 __attribute__((aligned(4))); +static u8 bss_1032 __attribute__((aligned(4))); +static u8 bss_1031 __attribute__((aligned(4))); +static u8 bss_1026 __attribute__((aligned(4))); +static u8 bss_1024 __attribute__((aligned(4))); +static u8 bss_1022 __attribute__((aligned(4))); +static u8 bss_1021 __attribute__((aligned(4))); +static u8 bss_984 __attribute__((aligned(4)));; +static u8 bss_982 __attribute__((aligned(4)));; +static u8 bss_980 __attribute__((aligned(4)));; +static u8 bss_979 __attribute__((aligned(4)));; +static u8 bss_941 __attribute__((aligned(4)));; +static u8 bss_939 __attribute__((aligned(4)));; +static u8 bss_937 __attribute__((aligned(4)));; +static u8 bss_936 __attribute__((aligned(4)));; +static u32 l_msgId; +static msg_class* l_msg; +static u8 msg_mode; u32 daTag_Msg_c::getEventNo() { return mBase.mParameters >> 0x18; @@ -90,24 +70,24 @@ u16 daTag_Msg_c::getEventFlag() { return orig.angle.z; } -s32 daTag_Msg_c::arrivalTerms() { +BOOL daTag_Msg_c::arrivalTerms() { int swBit; u16 eventFlag; swBit = (int)(getSwbit2() & 0xFF); eventFlag = getEventFlag(); if ((s32)swBit != 0xff && dComIfGs_isSwitch(swBit, current.roomNo) == 0) { - return 0; + return FALSE; } else if (eventFlag != 0xffff && dComIfGs_isEventBit(eventFlag) == 0) { - return 0; + return FALSE; } else { - return 1; + return TRUE; } } /* 0000021C-000002FC .text rangeCheck__11daTag_Msg_cFv */ -int daTag_Msg_c::rangeCheck() { +BOOL daTag_Msg_c::rangeCheck() { daPy_lk_c* link; cXyz diff; @@ -119,13 +99,13 @@ int daTag_Msg_c::rangeCheck() { } if (diff.abs2XZ() < mScale.x * mScale.x * 10000.0f) { if(diff.y <= mScale.y * 100.0f) { - return 1; + return TRUE; } } - return 0; + return FALSE; } -int daTag_Msg_c::otherCheck() { +BOOL daTag_Msg_c::otherCheck() { daPy_lk_c *player; short diff; short actorAngle; @@ -133,7 +113,7 @@ int daTag_Msg_c::otherCheck() { actorAngle = fopAcM_searchActorAngleY(this, daPy_getPlayerActorClass()); player = daPy_getPlayerLinkActorClass(); if ((getType2() & 1) != 0) { - return 1; + return TRUE; } JUT_ASSERT(0xC8, player); if (getMessage() == 0x1902) { @@ -142,7 +122,7 @@ int daTag_Msg_c::otherCheck() { diff = -diff; } if (0x3000 < diff) { - return 0; + return FALSE; } } actorAngle = (short)(actorAngle + 0x7fff) - player->current.angle.y; @@ -150,13 +130,13 @@ int daTag_Msg_c::otherCheck() { actorAngle = (short)-actorAngle; } if (actorAngle > 0x1000) { - return 0; + return FALSE; } - return 1; + return TRUE; } -static s32 daTag_Msg_actionEvent(daTag_Msg_c* a_this) { +static BOOL daTag_Msg_actionEvent(daTag_Msg_c* a_this) { int message = a_this->getMessage(); switch (msg_mode / 1) { case 0: @@ -197,19 +177,19 @@ static s32 daTag_Msg_actionEvent(daTag_Msg_c* a_this) { daPy_getPlayerLinkActorClass()->offPlayerNoDraw(); } if (a_this->getType2() & 1) { - a_this->mAction = 0; + a_this->setActio(0); } else { - a_this->mAction = 2; + a_this->setActio(2); } } - return 1; + return TRUE; } -static s32 daTag_Msg_actionHunt(daTag_Msg_c* a_this) { +static BOOL daTag_Msg_actionHunt(daTag_Msg_c* a_this) { u8 swBit; if (a_this->mEvtInfo.mCommand == dEvtCmd_INTALK_e) { - a_this->mAction = 3; + a_this->setActio(3); swBit = a_this->getSwbit(); if ((swBit & 0xff) != 0xff) { dComIfGs_onSwitch(swBit,a_this->current.roomNo); @@ -226,39 +206,39 @@ static s32 daTag_Msg_actionHunt(daTag_Msg_c* a_this) { } a_this->mEvtInfo.mCondition |= dEvtCnd_CANTALK_e; } - return 1; + return TRUE; } /* 00000754-000007B0 .text daTag_Msg_actionArrival__FP11daTag_Msg_c */ -static s32 daTag_Msg_actionArrival(daTag_Msg_c* a_this) { +static BOOL daTag_Msg_actionArrival(daTag_Msg_c* a_this) { char *cutsceneName; if (a_this->arrivalTerms() != 0) { cutsceneName = (char*)a_this->myDemoName(); a_this->mEvtInfo.setEventName(cutsceneName); - a_this->mAction = 2; + a_this->setActio(2); daTag_Msg_actionHunt(a_this); } - return 1; + return TRUE; } -static s32 daTag_Msg_actionWait(daTag_Msg_c*) { - return true; +static BOOL daTag_Msg_actionWait(daTag_Msg_c*) { + return TRUE; } -static s32 daTag_Msg_Draw(daTag_Msg_c*) { - return true; +static BOOL daTag_Msg_Draw(daTag_Msg_c*) { + return TRUE; } -s32 daTag_Msg_c::execute() { - static s32 (*l_action[4])(daTag_Msg_c*) = { +BOOL daTag_Msg_c::execute() { + static ActionFunc* l_action[4] = { daTag_Msg_actionWait, daTag_Msg_actionArrival, daTag_Msg_actionHunt, daTag_Msg_actionEvent, }; l_action[mAction](this); - return 1; + return TRUE; } s32 daTag_Msg_c::create() { @@ -266,11 +246,11 @@ s32 daTag_Msg_c::create() { fopAcM_SetupActor(this, daTag_Msg_c); swBit = (int)(getSwbit() & 0xFF); if ((getMessage() == 0x9c5) && dComIfGs_isEventBit(0x502)) { - mAction = 0; + setActio(0); } else if ((s32)swBit != 0xff && dComIfGs_isSwitch(swBit, current.roomNo) != 0) { - mAction = 0; + setActio(0); } else { - mAction = 1; + setActio(1); } shape_angle.z = 0; shape_angle.x = 0; @@ -281,20 +261,20 @@ s32 daTag_Msg_c::create() { mAttentionInfo.mPosition.y += 150; mEyePos.y += 150.0f; } - return 4; + return cPhs_COMPLEATE_e; } -static s32 daTag_Msg_Execute(daTag_Msg_c* a_this) { +static BOOL daTag_Msg_Execute(daTag_Msg_c* a_this) { return a_this->execute(); } -static s32 daTag_Msg_IsDelete(daTag_Msg_c*) { - return true; +static BOOL daTag_Msg_IsDelete(daTag_Msg_c*) { + return TRUE; } static BOOL daTag_Msg_Delete(daTag_Msg_c* a_this) { a_this->~daTag_Msg_c(); - return true; + return TRUE; } static s32 daTag_Msg_Create(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp index be383557b..8156f4419 100644 --- a/src/d/actor/d_a_tbox.cpp +++ b/src/d/actor/d_a_tbox.cpp @@ -408,12 +408,12 @@ BOOL daTbox_c::checkNormal() { } /* 0000108C-000010AC .text CheckCreateHeap__FP10fopAc_ac_c */ -static s32 CheckCreateHeap(fopAc_ac_c* i_actor) { +static BOOL CheckCreateHeap(fopAc_ac_c* i_actor) { return static_cast(i_actor)->CreateHeap(); } /* 000010AC-0000114C .text CreateHeap__8daTbox_cFv */ -s32 daTbox_c::CreateHeap() { +BOOL daTbox_c::CreateHeap() { if (commonShapeSet() != cPhs_COMPLEATE_e) { return FALSE; } @@ -511,7 +511,7 @@ void daTbox_c::CreateInit() { mAllColRatio = 1.0f; if (l_HIO.mHioId < 0) { - l_HIO.mHioId = mDoHIO_root.mDoHIO_createChild("宝箱", (JORReflexible*)(&l_HIO)); + l_HIO.mHioId = mDoHIO_root.mDoHIO_createChild("宝箱", &l_HIO); } shape_angle.z = 0; @@ -1241,7 +1241,7 @@ static s32 daTbox_Create(fopAc_ac_c* i_actor) { heapSize += opensize_tbl[shapeType]; } - u32 heapResult = fopAcM_entrySolidHeap(i_actor, (heapCallbackFunc)CheckCreateHeap, heapSize); + u32 heapResult = fopAcM_entrySolidHeap(i_actor, CheckCreateHeap, heapSize); if (!heapResult) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_vrbox.cpp b/src/d/actor/d_a_vrbox.cpp index 670f3e9a1..433603e70 100644 --- a/src/d/actor/d_a_vrbox.cpp +++ b/src/d/actor/d_a_vrbox.cpp @@ -185,7 +185,7 @@ static s32 daVrbox_Create(fopAc_ac_c* i_actor) { i_this->m29C = 0; s32 phase_state = cPhs_COMPLEATE_e; - if (fopAcM_entrySolidHeap(i_this, (heapCallbackFunc)&daVrbox_solidHeapCB, 0xC60)) { + if (fopAcM_entrySolidHeap(i_this, daVrbox_solidHeapCB, 0xC60)) { dComIfGp_onStatus(1); g_env_light.mbVrboxInvisible = 0; } else { diff --git a/src/d/actor/d_a_vrbox2.cpp b/src/d/actor/d_a_vrbox2.cpp index 1853daff1..cef98b12a 100644 --- a/src/d/actor/d_a_vrbox2.cpp +++ b/src/d/actor/d_a_vrbox2.cpp @@ -281,7 +281,7 @@ s32 daVrbox2_Create(fopAc_ac_c* i_actor) { vrbox2_class* i_this = static_cast(i_actor); s32 phase_state = cPhs_COMPLEATE_e; - if (!fopAcM_entrySolidHeap(i_this, (heapCallbackFunc)&daVrbox2_solidHeapCB, 0x21a0)) + if (!fopAcM_entrySolidHeap(i_this, daVrbox2_solidHeapCB, 0x21a0)) phase_state = cPhs_ERROR_e; return phase_state; diff --git a/src/d/d_a_itembase_static.cpp b/src/d/d_a_itembase_static.cpp index a518f9f5a..12d46c02f 100644 --- a/src/d/d_a_itembase_static.cpp +++ b/src/d/d_a_itembase_static.cpp @@ -89,7 +89,7 @@ void daItemBase_c::setLoadError() { } /* 80068748-800687B4 .text CheckItemCreateHeap__FP10fopAc_ac_c */ -int CheckItemCreateHeap(fopAc_ac_c* i_ac) { +BOOL CheckItemCreateHeap(fopAc_ac_c* i_ac) { daItemBase_c * i_this = (daItemBase_c *)i_ac; u8 itemNo = i_this->getItemNo(); return i_this->CreateItemHeap( @@ -105,7 +105,7 @@ int CheckItemCreateHeap(fopAc_ac_c* i_ac) { } /* 800687B4-80068820 .text CheckFieldItemCreateHeap__FP10fopAc_ac_c */ -int CheckFieldItemCreateHeap(fopAc_ac_c* i_ac) { +BOOL CheckFieldItemCreateHeap(fopAc_ac_c* i_ac) { daItemBase_c * i_this = (daItemBase_c *)i_ac; u8 itemNo = i_this->getItemNo(); return i_this->CreateItemHeap( diff --git a/src/d/d_throwstone.cpp b/src/d/d_throwstone.cpp index eb12db2e1..13fd1a697 100644 --- a/src/d/d_throwstone.cpp +++ b/src/d/d_throwstone.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_throwstone.cpp // +#include "d/d_throwstone.h" #include "f_op/f_op_actor.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" @@ -11,21 +12,6 @@ #include "m_Do/m_Do_mtx.h" #include "JSystem/JKernel/JKRHeap.h" -class daThrowstone_c : fopAc_ac_c { -public: - s32 CreateHeap(); - inline s32 _create(); - inline BOOL _delete(); - inline BOOL _execute(); - inline bool _draw(); - static const char M_arcname[5]; - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ Mtx mMtx; -}; - const char daThrowstone_c::M_arcname[] = "Aisi"; /* 8023B544-8023B564 .text CheckCreateHeap__FP10fopAc_ac_c */ @@ -35,7 +21,7 @@ static BOOL CheckCreateHeap(fopAc_ac_c* i_actor) { } /* 8023B564-8023B5DC .text CreateHeap__14daThrowstone_cFv */ -s32 daThrowstone_c::CreateHeap() { +BOOL daThrowstone_c::CreateHeap() { J3DModelData* pModelData = (J3DModelData*)dComIfG_getObjectRes(M_arcname, 0x03); if (pModelData == NULL) return FALSE;