From e69d6ae3f6b76b3bad6a1b1e41699bf464dc8272 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Fri, 24 Nov 2023 13:53:54 -0500 Subject: [PATCH] Begin moving existing actor class defs to headers --- include/d/actor/d_a_andsw2.h | 22 ++++-- include/d/actor/d_a_bg.h | 48 ++++++++++--- include/d/actor/d_a_boko.h | 16 +++++ include/d/actor/d_a_daiocta.h | 15 +++- include/d/actor/d_a_kaji.h | 21 ++++-- include/d/actor/d_a_nh.h | 96 +++++++++++++++++++++++-- include/d/actor/d_a_obj_bscurtain.h | 28 ++++++-- include/d/actor/d_a_obj_gong.h | 17 ++++- include/d/actor/d_a_obj_monument.h | 42 ++++++++++- include/d/actor/d_a_rectangle.h | 5 +- include/d/actor/d_a_sea.h | 5 +- include/d/actor/d_a_spotbox.h | 14 ++-- include/d/actor/d_a_swattack.h | 15 +++- src/d/actor/d_a_andsw2.cpp | 61 ++++++---------- src/d/actor/d_a_bg.cpp | 45 +----------- src/d/actor/d_a_kaji.cpp | 21 +----- src/d/actor/d_a_nh.cpp | 108 +--------------------------- src/d/actor/d_a_obj_bscurtain.cpp | 29 +------- src/d/actor/d_a_obj_gong.cpp | 25 ++----- src/d/actor/d_a_obj_monument.cpp | 42 +---------- src/d/actor/d_a_rectangle.cpp | 7 +- src/d/actor/d_a_sea.cpp | 14 +--- src/d/actor/d_a_spotbox.cpp | 11 +-- src/d/actor/d_a_swattack.cpp | 22 +----- src/d/actor/d_a_vrbox2.cpp | 12 +--- src/d/d_a_boko_static.cpp | 23 +----- 26 files changed, 327 insertions(+), 437 deletions(-) diff --git a/include/d/actor/d_a_andsw2.h b/include/d/actor/d_a_andsw2.h index 22a4d95aa..501ce5cfb 100644 --- a/include/d/actor/d_a_andsw2.h +++ b/include/d/actor/d_a_andsw2.h @@ -3,19 +3,27 @@ #include "f_op/f_op_actor.h" -class daAndsw2_c : public fopAc_ac_c { +struct daAndsw2_c : public fopAc_ac_c { public: - void create() {} - void draw() {} - void execute() {} - void setActio(unsigned char) {} + void setActio(u8 action) { mAction = action; } + + u8 getEventNo(); + u8 getSwbit(); + u8 getSwbit2(); + u8 getType(); + u8 getTimer(); + u8 getNum(); + u8 getTopSw(); + BOOL chkAllSw2(); + + inline BOOL execute(); + inline s32 create(); + inline BOOL draw(); public: /* 0x290 */ u8 mAction; - /* 0x291 */ u8 m291[0x292 - 0x291]; /* 0x292 */ s16 mTimer; /* 0x294 */ s16 mEventIdx; - /* 0x296 */ u8 m296[0x298 - 0x296]; }; #endif /* D_A_ANDSW2_H */ diff --git a/include/d/actor/d_a_bg.h b/include/d/actor/d_a_bg.h index 480a7a187..910b6f164 100644 --- a/include/d/actor/d_a_bg.h +++ b/include/d/actor/d_a_bg.h @@ -3,23 +3,55 @@ #include "f_op/f_op_actor.h" #include "d/d_bg_w.h" +#include "m_Do/m_Do_ext.h" +#include "SSystem/SComponent/c_phase.h" + +class daBg_btkAnm_c { +public: + BOOL create(J3DModelData*, J3DAnmTextureSRTKey*); + void entry(J3DModelData*); + void play(); + +public: + /* 0x00 */ mDoExt_btkAnm * anm; + /* 0x04 */ u8 special; +}; + +class daBg_brkAnm_c { +public: + BOOL create(J3DModelData*, J3DAnmTevRegKey*); + void entry(J3DModelData*); + void play(); + +public: + /* 0x00 */ mDoExt_brkAnm * anm; + /* 0x04 */ u8 special; +}; class daBg_c : public fopAc_ac_c { public: void calcRoomMemory(char**, long*, char**, long*) {} - void draw() {} - void execute() {} void getRoomMemory(int) {} void initRoomMemory() {} - void isDelete() {} + + ~daBg_c(); + const char * setArcName(); + inline BOOL createHeap(); + s32 create(); + inline BOOL execute(); + inline BOOL draw(); + inline BOOL isDelete(); public: - /* 0x290 */ void* m290; - /* 0x294 */ void* m294; - /* 0x298 */ daBg___Bg mBg[4]; - /* 0x2D8 */ dBgW* mpBgW; + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ struct BgModel { + J3DModel * model; + daBg_btkAnm_c * btk; + daBg_brkAnm_c * brk; + dKy_tevstr_c * mpTevStr; + } bg[4]; + /* 0x2D8 */ dBgW * bgw; /* 0x2DC */ u8 mUnloadTimer; - /* 0x2DD */ u8 m2DD[0x2E0 - 0x2DD]; }; #endif /* D_A_BG_H */ diff --git a/include/d/actor/d_a_boko.h b/include/d/actor/d_a_boko.h index a76c09644..c59c67f95 100644 --- a/include/d/actor/d_a_boko.h +++ b/include/d/actor/d_a_boko.h @@ -9,8 +9,22 @@ #include "m_Do/m_Do_ext.h" #include "SSystem/SComponent/c_phase.h" +struct ke_c_s { + +}; + class daBoko_c : public fopAc_ac_c { public: + static Vec m_top_offset[6]; + static Vec m_blur_root_offset[6]; + static Vec m_root_offset[6]; + static f32 m_cps_r[6]; + static s32 m_at_point[6]; + static u32 m_at_type[6]; + static f32 m_jump_blur_rate[6]; + static f32 m_blur_rate[6]; + static u8 m_se_type[6]; + void getAtPoint() {} void getAtType() {} void getBlurRate() {} @@ -26,6 +40,8 @@ public: void setRotAngleSpeed(short) {} void setThrow(short) {} + void getTopPos(cXyz *); + void getBlurRootPos(cXyz *); void keDraw(); void keCalc1(ke_c_s*, int); void keCalc(); diff --git a/include/d/actor/d_a_daiocta.h b/include/d/actor/d_a_daiocta.h index 725dfae48..2b30981d0 100644 --- a/include/d/actor/d_a_daiocta.h +++ b/include/d/actor/d_a_daiocta.h @@ -6,7 +6,15 @@ class daDaiocta_c : public fopAc_ac_c { public: - void getSw() {} + enum Proc_e { + + }; + + enum Mode_e { + + }; + + u8 getSw() { return mSwitchNo; } void _coHit(fopAc_ac_c*); void _nodeControl(J3DNode*, J3DModel*); @@ -43,7 +51,7 @@ public: void modeDemo(); void modeDeleteInit(); void modeDelete(); - void modeProc(daDaiocta_c::Proc_e, daDaiocta_c::Mode_e); + void modeProc(Proc_e, Mode_e); void setAnm(); void setWater(); void _execute(); @@ -57,7 +65,8 @@ public: void _delete(); public: - /* Place member variables here */ + /* 0x290 */ u8 field_0x290[0x574 - 0x290]; + /* 0x574 */ u8 mSwitchNo; }; #endif /* D_A_DAIOCTA_H */ diff --git a/include/d/actor/d_a_kaji.h b/include/d/actor/d_a_kaji.h index 293e03564..519741565 100644 --- a/include/d/actor/d_a_kaji.h +++ b/include/d/actor/d_a_kaji.h @@ -2,18 +2,27 @@ #define D_A_KAJI_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "m_Do/m_Do_ext.h" class daKaji_c : public fopAc_ac_c { public: - void _create() {} - void _delete() {} - void _draw() {} - void _execute() {} - void setAnm(int, float) {} + static const char M_arcname[]; + + inline s32 _create(); + inline BOOL _delete(); + inline BOOL _execute(); + inline bool _draw(); + void setAnm(int, f32) {} void set_mtx() {} + BOOL CreateHeap(); + public: - /* Place member variables here */ + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ u8 pad[0x29C - 0x298]; + /* 0x29C */ mDoExt_McaMorf* mpMorf; + /* 0x2A0 */ Mtx mMtx; }; #endif /* D_A_KAJI_H */ diff --git a/include/d/actor/d_a_nh.h b/include/d/actor/d_a_nh.h index 62ed3a271..9242ea255 100644 --- a/include/d/actor/d_a_nh.h +++ b/include/d/actor/d_a_nh.h @@ -2,6 +2,7 @@ #define D_A_NH_H #include "f_op/f_op_actor.h" +#include "m_Do/m_Do_hostIO.h" #include "d/d_cc_d.h" #include "d/d_bg_s_acch.h" #include "d/d_bg_s_acch.h" @@ -10,24 +11,107 @@ class daNh_c : public fopAc_ac_c { public: - void isTypeBottle() {} - + enum Type { + TYPE_BOTTLE = 0x01, + // Any other value besides 0x01 will behave as the normal, non-bottled type. + // All three of the Forest Fireflies placed in stages have their type set to 0xFF. + // TYPE_BOTTLE (0x01) is spawned via daPy_lk_c::procBottleOpen. + }; + + enum ActionStatus { + ACTION_STARTING = 0, + ACTION_ONGOING = 1, + ACTION_ENDING = -1, + }; + + typedef BOOL (daNh_c::*daNh_c_ActionFunc)(void*); + + bool isTypeBottle() { return mType == TYPE_BOTTLE; } + + ~daNh_c(); void setBaseMtx(); - void action(void* arg); + BOOL createHeap(); + s32 create(); + BOOL init(); + void action(void*); + BOOL setAction(daNh_c_ActionFunc, void*); + BOOL checkBinCatch(); + BOOL searchPlayer(); + BOOL moveProc(f32, f32, s16); + f32 getHomeDistance(); + BOOL checkTimer(); void BGCheck(); void airMove(); + BOOL waitAction(void*); + BOOL checkEscapeEnd(); + BOOL escapeAction(void*); + BOOL returnAction(void*); + BOOL execute(); + BOOL initBrkAnm(bool); void playBrkAnm(); + BOOL draw(); public: - /* 0x290 */ u8 m290[0x29C - 0x290]; + /* 0x290 */ u8 temp1[0x298 - 0x290]; + /* 0x298 */ J3DModel* mpModel; /* 0x29C */ dBgS_ObjAcch mAcch; /* 0x460 */ dBgS_AcchCir mAcchCir; /* 0x4A0 */ dCcD_Stts mStts; /* 0x4DC */ dCcD_Cyl mCyl; /* 0x60C */ mDoExt_brkAnm mBrkAnm; - /* 0x624 */ u8 m624[0x630 - 0x624]; + /* 0x624 */ u8 temp2[0x630 - 0x624]; /* 0x630 */ cBgS_PolyInfo mPolyInfo; - /* 0x640 */ u8 m640[0x6A8 - 0x640]; + /* 0x640 */ daNh_c_ActionFunc mCurrActionFunc; + /* 0x64C */ Mtx mGlowMtx; + /* 0x67C */ f32 mPlayerDist; + /* 0x680 */ f32 mGroundY; + /* 0x684 */ int mBottleTimer; + /* 0x688 */ s32 mAlpha; + /* 0x68C */ u8 unk68C; + /* 0x68D */ s8 mActionStatus; + /* 0x68E */ u8 mGlowAlpha; + /* 0x68F */ u8 mWobbleDir; + /* 0x690 */ u8 mWobbleTimer; + /* 0x691 */ u8 mType; + /* 0x692 */ u8 temp5[0x694 - 0x692]; + /* 0x694 */ s16 mEscapeTimer; + /* 0x696 */ s16 unk696; + /* 0x698 */ s16 unk698; + /* 0x69A */ s16 unk69A; + /* 0x69C */ u8 temp6[0x6A0 - 0x69C]; + /* 0x6A0 */ f32 unk6A0; + /* 0x6A4 */ u8 temp7[0x6A8 - 0x6A4]; }; +class daNh_HIO_c : public JORReflexible { + struct hio_prm_c { + // Note: Offsets are relative to daNh_HIO_c instead of hio_prm_c for convenience. + /* 0x08 */ f32 field_0x08; + /* 0x0C */ f32 field_0x0c; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 mGlowOffsetY; + /* 0x18 */ f32 mGlowScale; + /* 0x1C */ f32 mMinFrightenSpeed; + /* 0x20 */ f32 mHeightAboveGround; + /* 0x24 */ f32 mAscentSpeed; + /* 0x28 */ f32 mDescentSpeed; + /* 0x2C */ f32 mGravity; + /* 0x30 */ f32 mMaxHomeDist; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 mModelScale; + /* 0x3C */ s16 field_0x3c; + /* 0x3E */ s16 mDefaultGlowAlpha; + /* 0x40 */ s16 mBottleLifetime; + }; // Size: 0x3C + +public: + daNh_HIO_c(); + virtual ~daNh_HIO_c(); + +public: + /* 0x04 */ s8 mChildID; + /* 0x08 */ hio_prm_c prm; + /* 0x44 */ daNh_c* mpActor; +}; // Size: 0x48 + #endif /* D_A_NH_H */ diff --git a/include/d/actor/d_a_obj_bscurtain.h b/include/d/actor/d_a_obj_bscurtain.h index 034a664f9..e2ffdec14 100644 --- a/include/d/actor/d_a_obj_bscurtain.h +++ b/include/d/actor/d_a_obj_bscurtain.h @@ -3,20 +3,34 @@ #include "f_op/f_op_actor.h" #include "SSystem/SComponent/c_phase.h" +#include "m_Do/m_Do_hostIO.h" class daObj_Bscurtain_c : public fopAc_ac_c { public: - void _create() {} - void _delete() {} - void _draw() {} - void _execute() {} - + BOOL CreateHeap(); + s32 CreateInit(); + inline s32 _create(); + inline bool _delete(); + inline bool _execute(); + inline bool _draw(); void set_mtx(); + static const char M_arcname[4]; public: /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ u8 m298[0x29C - 0x298]; - /* 0x29C */ J3DModel* mpModel; + /* 0x298 */ u32 field_0x298; + /* 0x29C */ J3DModel * mpModel; +}; + +class daObj_Bscurtain_HIO_c : public mDoHIO_entry_c { +public: + daObj_Bscurtain_HIO_c(); + virtual ~daObj_Bscurtain_HIO_c() {} + +public: + /* 0x04 */ s8 field_0x04; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ u16 field_0x0c; }; #endif /* D_A_OBJ_BSCURTAIN_H */ diff --git a/include/d/actor/d_a_obj_gong.h b/include/d/actor/d_a_obj_gong.h index 5e3de01cf..127a32ff0 100644 --- a/include/d/actor/d_a_obj_gong.h +++ b/include/d/actor/d_a_obj_gong.h @@ -2,15 +2,28 @@ #define D_A_OBJ_GONG_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "m_Do/m_Do_ext.h" namespace daObjGong { class Act_c : public fopAc_ac_c { public: - void set_mtx(); + static BOOL solidHeapCB(fopAc_ac_c *i_this); + + static const char M_arcname[6]; + + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + bool create_heap(); void init_mtx(); + void set_mtx(); + bool demo_move(); public: - /* Place member variables here */ + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ mDoExt_McaMorf * mpMorf; }; }; diff --git a/include/d/actor/d_a_obj_monument.h b/include/d/actor/d_a_obj_monument.h index eb88fb08d..105a06fb8 100644 --- a/include/d/actor/d_a_obj_monument.h +++ b/include/d/actor/d_a_obj_monument.h @@ -2,15 +2,53 @@ #define D_A_OBJ_MONUMENT_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/d_bg_w.h" +#include "d/d_a_obj.h" namespace daObjMonument { + namespace { + enum Type_e { + ONE_e, + TWO_e, + }; + + struct Attr_c { + /* 0x00 */ s16 mModelId; + /* 0x01 */ s16 mBgWId; + }; + } + class Act_c : public fopAc_ac_c { public: - void set_mtx(); + enum Prm_e { + PRM_TYPE_W = 0x01, + PRM_TYPE_S = 0x00, + + PRM_SWSAVE_W = 0x08, + PRM_SWSAVE_S = 0x08, + }; + + static BOOL solidHeapCB(fopAc_ac_c *i_this); + static const char M_arcname[6]; + + Type_e prm_get_type() const { return (Type_e)daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); } + u32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } + + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); + bool create_heap(); void init_mtx(); + void set_mtx(); public: - /* Place member variables here */ + /* 0x290 */ request_of_phase_process_class mPhs; + /* 0x298 */ J3DModel * mpModel; + /* 0x29C */ Type_e mType; + /* 0x2A0 */ dBgW * mpBgW; + /* 0x2A4 */ Mtx mtx; }; }; diff --git a/include/d/actor/d_a_rectangle.h b/include/d/actor/d_a_rectangle.h index 18d5a4a9b..5801fb974 100644 --- a/include/d/actor/d_a_rectangle.h +++ b/include/d/actor/d_a_rectangle.h @@ -3,9 +3,6 @@ #include "f_op/f_op_actor.h" -class RECTANGLE_class : public fopAc_ac_c { -public: - /* Place member variables here */ -}; +class RECTANGLE_class : public fopAc_ac_c {}; #endif /* D_A_RECTANGLE_H */ diff --git a/include/d/actor/d_a_sea.h b/include/d/actor/d_a_sea.h index ce7c9436b..5ff482242 100644 --- a/include/d/actor/d_a_sea.h +++ b/include/d/actor/d_a_sea.h @@ -94,7 +94,10 @@ public: static f32 BASE_HEIGHT; }; -class sea_class; +class sea_class : public fopAc_ac_c { + /* 0x290 */ u32 field_0x290; + /* 0x294 */ u32 field_0x294; +}; void daSea_Init(); void daSea_ChkAreaBeforePos(f32, f32); diff --git a/include/d/actor/d_a_spotbox.h b/include/d/actor/d_a_spotbox.h index 14bf87dee..bbb1ad4f5 100644 --- a/include/d/actor/d_a_spotbox.h +++ b/include/d/actor/d_a_spotbox.h @@ -3,15 +3,15 @@ #include "f_op/f_op_actor.h" -class daSpotbox_c : public fopAc_ac_c { +struct daSpotbox_c : public fopAc_ac_c { public: - void create() {} - void draw() {} - void execute() {} - void getType() {} + inline s32 create(); + inline BOOL draw(); + inline BOOL execute(); + inline u32 getType(); public: - /* Place member variables here */ -}; + /* 0x290 */ Mtx mMtx; +}; // Size: 0x2C0 #endif /* D_A_SPOTBOX_H */ diff --git a/include/d/actor/d_a_swattack.h b/include/d/actor/d_a_swattack.h index ff8fd72c4..081036de3 100644 --- a/include/d/actor/d_a_swattack.h +++ b/include/d/actor/d_a_swattack.h @@ -2,17 +2,28 @@ #define D_A_SWATTACK_H #include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" #include "d/d_cc_d.h" class daSwAt_c : public fopAc_ac_c { public: + s32 _create(); + bool _execute(); + bool _draw(); + bool _delete(); void CreateInit(); public: - /* 0x290 */ u8 m290[0x29C - 0x290]; + /* 0x290 */ u32 field_0x290[3]; /* 0x29C */ dCcD_Stts mStts; /* 0x2D8 */ dCcD_Cyl mCyl; - /* 0x408 */ u8 m408[0x410 - 0x408]; + /* 0x408 */ u8 mAtType; + /* 0x40C */ u32 mSwitchNo; +}; + +namespace daSwAt_prm { + inline u8 getAtType(daSwAt_c* ac) { return (fopAcM_GetParam(ac) >> 0) & 0xFF; } + inline u8 getSwitchNo(daSwAt_c* ac) { return (fopAcM_GetParam(ac) >> 8) & 0xFF; } }; #endif /* D_A_SWATTACK_H */ diff --git a/src/d/actor/d_a_andsw2.cpp b/src/d/actor/d_a_andsw2.cpp index f0996df8a..87e07e7ab 100644 --- a/src/d/actor/d_a_andsw2.cpp +++ b/src/d/actor/d_a_andsw2.cpp @@ -3,13 +3,14 @@ // Translation Unit: d_a_andsw2.cpp // +#include "d/actor/d_a_andsw2.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" #include "dolphin/types.h" -enum { +enum Action { ACT_ON_ALL, ACT_TIMER, ACT_ORDER, @@ -18,31 +19,11 @@ enum { ACT_WAIT, }; -enum { +enum Type { TYPE_ONE_OFF, TYPE_CONTINUOUS, }; -struct daAndsw2_c : public fopAc_ac_c { -public: - u8 getEventNo(); - u8 getSwbit(); - u8 getSwbit2(); - u8 getType(); - u8 getTimer(); - u8 getNum(); - u8 getTopSw(); - BOOL chkAllSw2(); - - inline BOOL execute(); - inline s32 create(); - -public: - u8 mAction; - s16 mTimer; - s16 mEventIdx; -}; - /* 00000078-00000084 .text getEventNo__10daAndsw2_cFv */ u8 daAndsw2_c::getEventNo() { return (orig.angle.x & 0x00FF) >> 0; @@ -109,18 +90,18 @@ static BOOL daAndsw2_actionOnAll(daAndsw2_c* i_this) { if (i_this->chkAllSw2()) { if (i_this->getTimer() != 0xFF) { i_this->mTimer = i_this->getTimer()*15; - i_this->mAction = ACT_TIMER; + i_this->setActio(ACT_TIMER); } else if (i_this->mEventIdx != -1) { - i_this->mAction = ACT_ORDER; + i_this->setActio(ACT_ORDER); } else { int room = i_this->current.roomNo; int sw = i_this->getSwbit(); dComIfGs_onSwitch(sw, room); if (i_this->getType() == TYPE_CONTINUOUS) { - i_this->mAction = ACT_OFF; + i_this->setActio(ACT_OFF); } else { - i_this->mAction = ACT_WAIT; + i_this->setActio(ACT_WAIT); } } } @@ -130,18 +111,18 @@ static BOOL daAndsw2_actionOnAll(daAndsw2_c* i_this) { /* 000002B0-00000380 .text daAndsw2_actionTimer__FP10daAndsw2_c */ static BOOL daAndsw2_actionTimer(daAndsw2_c* i_this) { if (i_this->getType() == TYPE_CONTINUOUS && !i_this->chkAllSw2()) { - i_this->mAction = ACT_ON_ALL; + i_this->setActio(ACT_ON_ALL); } else if (i_this->mTimer > 0) { i_this->mTimer -= 1; } else if (i_this->mEventIdx != -1) { - i_this->mAction = ACT_ORDER; + i_this->setActio(ACT_ORDER); } else { int room = i_this->current.roomNo; int sw = i_this->getSwbit(); dComIfGs_onSwitch(sw, room); if (i_this->getType() == TYPE_CONTINUOUS) { - i_this->mAction = ACT_WAIT; + i_this->setActio(ACT_WAIT); } } return TRUE; @@ -150,12 +131,12 @@ static BOOL daAndsw2_actionTimer(daAndsw2_c* i_this) { /* 00000380-00000438 .text daAndsw2_actionOrder__FP10daAndsw2_c */ static BOOL daAndsw2_actionOrder(daAndsw2_c* i_this) { if (i_this->mEvtInfo.checkCommandDemoAccrpt()) { - i_this->mAction = ACT_EVENT; + i_this->setActio(ACT_EVENT); int room = i_this->current.roomNo; int sw = i_this->getSwbit(); dComIfGs_onSwitch(sw, room); } else if (i_this->getType() == TYPE_CONTINUOUS && !i_this->chkAllSw2()) { - i_this->mAction = ACT_ON_ALL; + i_this->setActio(ACT_ON_ALL); } else { fopAcM_orderOtherEventId(i_this, i_this->mEventIdx, i_this->getEventNo(), 0xFFFF, 0, 1); } @@ -166,9 +147,9 @@ static BOOL daAndsw2_actionOrder(daAndsw2_c* i_this) { static BOOL daAndsw2_actionEvent(daAndsw2_c* i_this) { if (dComIfGp_evmng_endCheck(i_this->mEventIdx)) { if (i_this->getType() == TYPE_CONTINUOUS) { - i_this->mAction = ACT_OFF; + i_this->setActio(ACT_OFF); } else { - i_this->mAction = ACT_WAIT; + i_this->setActio(ACT_WAIT); } dComIfGp_event_reset(); } @@ -178,7 +159,7 @@ static BOOL daAndsw2_actionEvent(daAndsw2_c* i_this) { /* 000004BC-00000528 .text daAndsw2_actionOff__FP10daAndsw2_c */ static BOOL daAndsw2_actionOff(daAndsw2_c* i_this) { if (!i_this->chkAllSw2()) { - i_this->mAction = ACT_ON_ALL; + i_this->setActio(ACT_ON_ALL); int room = i_this->current.roomNo; int sw = i_this->getSwbit(); dComIfGs_offSwitch(sw, room); @@ -213,29 +194,29 @@ s32 daAndsw2_c::create() { case TYPE_ONE_OFF: if (sw == 0xFF || dComIfGs_isSwitch(sw, current.roomNo)) { // Switch invalid or already set. - mAction = ACT_WAIT; + setActio(ACT_WAIT); } else { // Switch not yet set, check for the condition to be met. - mAction = ACT_ON_ALL; + setActio(ACT_ON_ALL); } mEventIdx = dComIfGp_evmng_getEventIdx(NULL, getEventNo()); break; case TYPE_CONTINUOUS: if (sw == 0xFF) { // Switch invalid. - mAction = ACT_WAIT; + setActio(ACT_WAIT); } else if (dComIfGs_isSwitch(sw, current.roomNo)) { // Switch already set, wait for the condition to no longer be met. - mAction = ACT_OFF; + setActio(ACT_OFF); } else { // Switch not yet set, check for the condition to be met. - mAction = ACT_ON_ALL; + setActio(ACT_ON_ALL); } mEventIdx = dComIfGp_evmng_getEventIdx(NULL, getEventNo()); break; default: // Invalid type, do nothing. - mAction = ACT_WAIT; + setActio(ACT_WAIT); break; } diff --git a/src/d/actor/d_a_bg.cpp b/src/d/actor/d_a_bg.cpp index 0b925aea3..1935e47ba 100644 --- a/src/d/actor/d_a_bg.cpp +++ b/src/d/actor/d_a_bg.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_bg.cpp // +#include "d/actor/d_a_bg.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" @@ -21,50 +22,6 @@ #include "JSystem/JKernel/JKRSolidHeap.h" #include "JSystem/JUtility/JUTAssert.h" -class daBg_btkAnm_c { -public: - BOOL create(J3DModelData*, J3DAnmTextureSRTKey*); - void entry(J3DModelData*); - void play(); - -public: - /* 0x00 */ mDoExt_btkAnm * anm; - /* 0x04 */ u8 special; -}; - -class daBg_brkAnm_c { -public: - BOOL create(J3DModelData*, J3DAnmTevRegKey*); - void entry(J3DModelData*); - void play(); - -public: - /* 0x00 */ mDoExt_brkAnm * anm; - /* 0x04 */ u8 special; -}; - -class daBg_c : public fopAc_ac_c { -public: - ~daBg_c(); - const char * setArcName(); - inline BOOL createHeap(); - s32 create(); - inline BOOL execute(); - inline BOOL draw(); - inline BOOL isDelete(); - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ struct BgModel { - J3DModel * model; - daBg_btkAnm_c * btk; - daBg_brkAnm_c * brk; - dKy_tevstr_c * mpTevStr; - } bg[4]; - /* 0x2D8 */ dBgW * bgw; - /* 0x2DC */ u8 mUnloadTimer; -}; - /* 800D8434-800D8478 .text setArcName__6daBg_cFv */ const char* daBg_c::setArcName() { static char arcName[32]; diff --git a/src/d/actor/d_a_kaji.cpp b/src/d/actor/d_a_kaji.cpp index b61833a36..73b95e161 100644 --- a/src/d/actor/d_a_kaji.cpp +++ b/src/d/actor/d_a_kaji.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_kaji.cpp // +#include "d/actor/d_a_kaji.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -13,26 +14,6 @@ #include "d/d_procname.h" #include "dolphin/types.h" -struct daKaji_c : fopAc_ac_c { -public: - BOOL CreateHeap(); - inline s32 _create(); - inline BOOL _delete(); - inline BOOL _execute(); - inline bool _draw(); - - void setAnm(int, f32) {} - void set_mtx() {} - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ u8 pad[0x29C - 0x298]; - /* 0x29C */ mDoExt_McaMorf* mpMorf; - /* 0x2A0 */ Mtx mMtx; - - static const char M_arcname[]; -}; - static daObjPirateship::Act_c* l_p_ship; const char daKaji_c::M_arcname[] = "Kaji"; diff --git a/src/d/actor/d_a_nh.cpp b/src/d/actor/d_a_nh.cpp index 11102db92..d42c21d72 100644 --- a/src/d/actor/d_a_nh.cpp +++ b/src/d/actor/d_a_nh.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_nh.cpp // +#include "d/actor/d_a_nh.h" #include "JSystem/JKernel/JKRHeap.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" @@ -16,39 +17,6 @@ #include "m_Do/m_Do_mtx.h" #include "JSystem/JUtility/JUTAssert.h" -class daNh_c; - -class daNh_HIO_c : public JORReflexible { - struct hio_prm_c { - // Note: Offsets are relative to daNh_HIO_c instead of hio_prm_c for convenience. - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 mGlowOffsetY; - /* 0x18 */ f32 mGlowScale; - /* 0x1C */ f32 mMinFrightenSpeed; - /* 0x20 */ f32 mHeightAboveGround; - /* 0x24 */ f32 mAscentSpeed; - /* 0x28 */ f32 mDescentSpeed; - /* 0x2C */ f32 mGravity; - /* 0x30 */ f32 mMaxHomeDist; - /* 0x34 */ f32 field_0x34; - /* 0x38 */ f32 mModelScale; - /* 0x3C */ s16 field_0x3c; - /* 0x3E */ s16 mDefaultGlowAlpha; - /* 0x40 */ s16 mBottleLifetime; - }; // Size: 0x3C - -public: - daNh_HIO_c(); - virtual ~daNh_HIO_c(); - -public: - /* 0x04 */ s8 mChildID; - /* 0x08 */ hio_prm_c prm; - /* 0x44 */ daNh_c* mpActor; -}; // Size: 0x48 - static daNh_HIO_c l_HIO; static dCcD_SrcCyl l_cyl_src = { @@ -81,80 +49,6 @@ static dCcD_SrcCyl l_cyl_src = { }, }; -class daNh_c : fopAc_ac_c { -public: - enum Type { - TYPE_BOTTLE = 0x01, - // Any other value besides 0x01 will behave as the normal, non-bottled type. - // All three of the Forest Fireflies placed in stages have their type set to 0xFF. - // TYPE_BOTTLE (0x01) is spawned via daPy_lk_c::procBottleOpen. - }; - - enum ActionStatus { - ACTION_STARTING = 0, - ACTION_ONGOING = 1, - ACTION_ENDING = -1, - }; - - typedef BOOL (daNh_c::*daNh_c_ActionFunc)(void*); - - bool isTypeBottle() { return mType == TYPE_BOTTLE; } - - ~daNh_c(); - void setBaseMtx(); - BOOL createHeap(); - s32 create(); - BOOL init(); - void action(void*); - BOOL setAction(daNh_c_ActionFunc, void*); - BOOL checkBinCatch(); - BOOL searchPlayer(); - BOOL moveProc(f32, f32, s16); - f32 getHomeDistance(); - BOOL checkTimer(); - void BGCheck(); - void airMove(); - BOOL waitAction(void*); - BOOL checkEscapeEnd(); - BOOL escapeAction(void*); - BOOL returnAction(void*); - BOOL execute(); - BOOL initBrkAnm(bool); - void playBrkAnm(); - BOOL draw(); - -public: - /* 0x290 */ u8 temp1[0x298 - 0x290]; - /* 0x298 */ J3DModel* mpModel; - /* 0x29C */ dBgS_ObjAcch mAcch; - /* 0x460 */ dBgS_AcchCir mAcchCir; - /* 0x4A0 */ dCcD_Stts mStts; - /* 0x4DC */ dCcD_Cyl mCyl; - /* 0x60C */ mDoExt_brkAnm mBrkAnm; - /* 0x624 */ u8 temp2[0x630 - 0x624]; - /* 0x630 */ cBgS_PolyInfo mPolyInfo; - /* 0x640 */ daNh_c_ActionFunc mCurrActionFunc; - /* 0x64C */ Mtx mGlowMtx; - /* 0x67C */ f32 mPlayerDist; - /* 0x680 */ f32 mGroundY; - /* 0x684 */ int mBottleTimer; - /* 0x688 */ s32 mAlpha; - /* 0x68C */ u8 unk68C; - /* 0x68D */ s8 mActionStatus; - /* 0x68E */ u8 mGlowAlpha; - /* 0x68F */ u8 mWobbleDir; - /* 0x690 */ u8 mWobbleTimer; - /* 0x691 */ u8 mType; - /* 0x692 */ u8 temp5[0x694 - 0x692]; - /* 0x694 */ s16 mEscapeTimer; - /* 0x696 */ s16 unk696; - /* 0x698 */ s16 unk698; - /* 0x69A */ s16 unk69A; - /* 0x69C */ u8 temp6[0x6A0 - 0x69C]; - /* 0x6A0 */ f32 unk6A0; - /* 0x6A4 */ u8 temp7[0x6A8 - 0x6A4]; -}; - /* 800F95B8-800F9654 .text __ct__10daNh_HIO_cFv */ daNh_HIO_c::daNh_HIO_c() { mChildID = -1; diff --git a/src/d/actor/d_a_obj_bscurtain.cpp b/src/d/actor/d_a_obj_bscurtain.cpp index 6b23aafaf..f7cfe2a48 100644 --- a/src/d/actor/d_a_obj_bscurtain.cpp +++ b/src/d/actor/d_a_obj_bscurtain.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_bscurtain.cpp // +#include "d/actor/d_a_obj_bscurtain.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JParticle/JPAParticle.h" #include "JSystem/JKernel/JKRHeap.h" @@ -14,34 +15,6 @@ #include "m_Do/m_Do_hostIO.h" #include "m_Do/m_Do_mtx.h" -class daObj_Bscurtain_c : fopAc_ac_c { -public: - BOOL CreateHeap(); - s32 CreateInit(); - inline s32 _create(); - inline bool _delete(); - inline bool _execute(); - inline bool _draw(); - void set_mtx(); - static const char M_arcname[4]; - -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ u32 field_0x298; - /* 0x29C */ J3DModel * mpModel; -}; - -class daObj_Bscurtain_HIO_c : public mDoHIO_entry_c { -public: - daObj_Bscurtain_HIO_c(); - virtual ~daObj_Bscurtain_HIO_c() {} - -public: - /* 0x04 */ s8 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ u16 field_0x0c; -}; - daObj_Bscurtain_HIO_c l_HIO; const char daObj_Bscurtain_c::M_arcname[4] = "Ptc"; diff --git a/src/d/actor/d_a_obj_gong.cpp b/src/d/actor/d_a_obj_gong.cpp index fab86fecc..b27ca72a5 100644 --- a/src/d/actor/d_a_obj_gong.cpp +++ b/src/d/actor/d_a_obj_gong.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_gong.cpp // +#include "d/actor/d_a_obj_gong.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -16,35 +17,17 @@ namespace daObjGong { namespace { - struct L_attr_entry { + struct Attr_c { /* 0x00 */ f32 spec; /* 0x04 */ f32 offsetY; }; - static const L_attr_entry L_attr = { + static const Attr_c L_attr = { 0.75f, 125.0f, }; - inline const L_attr_entry & attr() { return L_attr; } + inline const Attr_c & attr() { return L_attr; } } - - class Act_c : fopAc_ac_c { - public: - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - void init_mtx(); - void set_mtx(); - bool demo_move(); - static BOOL solidHeapCB(fopAc_ac_c *i_this); - static const char M_arcname[6]; - - public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ mDoExt_McaMorf * mpMorf; - }; } const char daObjGong::Act_c::M_arcname[6] = "Vdora"; diff --git a/src/d/actor/d_a_obj_monument.cpp b/src/d/actor/d_a_obj_monument.cpp index 942ab0c27..cf004ff0c 100644 --- a/src/d/actor/d_a_obj_monument.cpp +++ b/src/d/actor/d_a_obj_monument.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_monument.cpp // +#include "d/actor/d_a_obj_monument.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -15,16 +16,6 @@ namespace daObjMonument { namespace { - enum Type_e { - ONE_e, - TWO_e, - }; - - struct Attr_c { - /* 0x00 */ s16 mModelId; - /* 0x01 */ s16 mBgWId; - }; - static Attr_c L_attr[2] = { { 0x04, 0x08 }, { 0x05, 0x09 }, @@ -32,37 +23,6 @@ namespace daObjMonument { inline const Attr_c & attr(Type_e type) { return L_attr[type]; } } - - class Act_c : fopAc_ac_c { - public: - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - bool create_heap(); - void init_mtx(); - void set_mtx(); - static BOOL solidHeapCB(fopAc_ac_c *i_this); - static const char M_arcname[6]; - - public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - /* 0x29C */ Type_e mType; - /* 0x2A0 */ dBgW * mpBgW; - /* 0x2A4 */ Mtx mtx; - - enum Prm_e { - PRM_TYPE_W = 0x01, - PRM_TYPE_S = 0x00, - - PRM_SWSAVE_W = 0x08, - PRM_SWSAVE_S = 0x08, - }; - - Type_e prm_get_type() const { return (Type_e)daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); } - u32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } - }; } const char daObjMonument::Act_c::M_arcname[6] = "Esekh"; diff --git a/src/d/actor/d_a_rectangle.cpp b/src/d/actor/d_a_rectangle.cpp index 5154cf6d1..0a0f0466d 100644 --- a/src/d/actor/d_a_rectangle.cpp +++ b/src/d/actor/d_a_rectangle.cpp @@ -1,12 +1,9 @@ -/** - * d_a_rectangle.cpp - */ + +#include "d/actor/d_a_rectangle.h" #include "f_op/f_op_actor.h" #include "d/d_procname.h" #include "dolphin/types.h" -struct RECTANGLE_class : fopAc_ac_c {}; - /* 00000078-00000080 .text daRct_Draw__FP15RECTANGLE_class */ static BOOL daRct_Draw(RECTANGLE_class*) { return true; diff --git a/src/d/actor/d_a_sea.cpp b/src/d/actor/d_a_sea.cpp index 5ed8980cc..4d6a04e08 100644 --- a/src/d/actor/d_a_sea.cpp +++ b/src/d/actor/d_a_sea.cpp @@ -9,11 +9,7 @@ #include "d/d_stage.h" #include "m_Do/m_Do_lib.h" #include "JSystem/JKernel/JKRHeap.h" - -class sea_class : public fopAc_ac_c { - /* 0x290 */ u32 field_0x290; - /* 0x294 */ u32 field_0x294; -}; +#include "d/actor/d_a_daiocta.h" daSea_packet_c l_cloth; @@ -318,12 +314,6 @@ void daSea_packet_c::SetCullStopFlag() { } } -class daDaiocta_c : public fopAc_ac_c { -public: - /* 0x298 */ u32 field_0x298[0xB9]; - /* 0x574 */ u8 mSwitchNo; -}; - /* 8015C11C-8015C1DC .text CheckRoomChange__14daSea_packet_cFv */ void daSea_packet_c::CheckRoomChange() { dStage_roomDt_c * room = dComIfGp_roomControl_getStatusRoomDt(dComIfGp_roomControl_getStayNo()); @@ -336,7 +326,7 @@ void daSea_packet_c::CheckRoomChange() { ClrFlat(); } } else { - if (!dComIfGs_isSwitch(octa->mSwitchNo, fopAcM_GetHomeRoomNo(octa))) { + if (!dComIfGs_isSwitch(octa->getSw(), fopAcM_GetHomeRoomNo(octa))) { SetFlat(); } else { ClrFlat(); diff --git a/src/d/actor/d_a_spotbox.cpp b/src/d/actor/d_a_spotbox.cpp index eb1350651..54b6f6b3c 100644 --- a/src/d/actor/d_a_spotbox.cpp +++ b/src/d/actor/d_a_spotbox.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_spotbox.cpp // +#include "d/actor/d_a_spotbox.h" #include "JSystem/JKernel/JKRHeap.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" @@ -10,16 +11,6 @@ #include "dolphin/types.h" #include "d/d_procname.h" -struct daSpotbox_c : public fopAc_ac_c { -public: - inline s32 create(); - inline BOOL draw(); - inline BOOL execute(); - inline u32 getType(); -public: - /* 0x290 */ Mtx mMtx; -}; // Size: 0x2C0 - s32 daSpotbox_c::create() { fopAcM_SetupActor(this, daSpotbox_c); f32 baseScale = getType() != 0 ? 1000.0f : 100.0f; diff --git a/src/d/actor/d_a_swattack.cpp b/src/d/actor/d_a_swattack.cpp index 5b19064d2..6ed1b7cc5 100644 --- a/src/d/actor/d_a_swattack.cpp +++ b/src/d/actor/d_a_swattack.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_swattack.cpp // +#include "d/actor/d_a_swattack.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -10,27 +11,6 @@ #include "d/d_com_inf_game.h" #include "d/d_procname.h" -class daSwAt_c : public fopAc_ac_c { -public: - s32 _create(); - bool _execute(); - bool _draw(); - bool _delete(); - void CreateInit(); - -public: - /* 0x290 */ u32 field_0x290[3]; - /* 0x29C */ dCcD_Stts mStts; - /* 0x2D8 */ dCcD_Cyl mCyl; - /* 0x408 */ u8 mAtType; - /* 0x40C */ u32 mSwitchNo; -}; - -namespace daSwAt_prm { - inline u8 getAtType(daSwAt_c* ac) { return (fopAcM_GetParam(ac) >> 0) & 0xFF; } - inline u8 getSwitchNo(daSwAt_c* ac) { return (fopAcM_GetParam(ac) >> 8) & 0xFF; } -}; - static dCcD_SrcCyl l_cyl_src = { // dCcD_SrcGObjInf { diff --git a/src/d/actor/d_a_vrbox2.cpp b/src/d/actor/d_a_vrbox2.cpp index c38657a86..1853daff1 100644 --- a/src/d/actor/d_a_vrbox2.cpp +++ b/src/d/actor/d_a_vrbox2.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_vrbox2.cpp // +#include "d/actor/d_a_vrbox2.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_camera_mng.h" #include "d/d_com_inf_game.h" @@ -14,17 +15,6 @@ #include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" -class vrbox2_class : public fopAc_ac_c { -public: - /* 0x290 */ void * field_0x290; - /* 0x294 */ J3DModel* mpBackCloud; - /* 0x298 */ void * field_0x298; - /* 0x29C */ J3DModel* mpKasumiMae; - /* 0x2A0 */ void * field_0x2a0; - /* 0x2A4 */ J3DModel* mpUsoUmi; - /* 0x2A4 */ void * field_0x2a8; -}; - /* 8015EA14-8015EA5C .text texScrollCheck__FRf */ void texScrollCheck(float& v) { while (v < 0.0f) diff --git a/src/d/d_a_boko_static.cpp b/src/d/d_a_boko_static.cpp index 903a4a8fc..81a69fc0f 100644 --- a/src/d/d_a_boko_static.cpp +++ b/src/d/d_a_boko_static.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_boko_static.cpp // +#include "d/actor/d_a_boko.h" #include "f_op/f_op_actor.h" #include "f_op/f_op_actor_mng.h" #include "d/d_cc_d.h" @@ -11,28 +12,6 @@ #include "JSystem/J3DGraphAnimator/J3DModel.h" #include "m_Do/m_Do_mtx.h" -class daBoko_c : fopAc_ac_c { -public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ J3DModel * mpModel; - - /* TODO The entire rest of daBoko_c */ - -public: - void getTopPos(cXyz *); - void getBlurRootPos(cXyz *); - - static Vec m_top_offset[6]; - static Vec m_blur_root_offset[6]; - static Vec m_root_offset[6]; - static f32 m_cps_r[6]; - static s32 m_at_point[6]; - static u32 m_at_type[6]; - static f32 m_jump_blur_rate[6]; - static f32 m_blur_rate[6]; - static u8 m_se_type[6]; -}; - Vec daBoko_c::m_top_offset[6] = { { 0.0f, 0.0f, 85.0f }, { 16.0f, 0.0f, 77.0f },