From 897b22f9369b4b06eb8eb261ea6563f2dd91a223 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sat, 25 Nov 2023 18:05:07 -0500 Subject: [PATCH] Move more actor classes to headers --- include/d/actor/d_a_alldie.h | 10 +- include/d/actor/d_a_branch.h | 2 +- include/d/actor/d_a_disappear.h | 4 +- include/d/actor/d_a_movie_player.h | 4 +- include/d/actor/d_a_obj_akabe.h | 40 ++- include/d/actor/d_a_obj_cafelmp.h | 5 +- include/d/actor/d_a_obj_homensmoke.h | 21 +- include/d/actor/d_a_obj_pbka.h | 5 +- include/d/actor/d_a_tbox.h | 152 +++++++---- include/m_Do/m_Do_dvd_thread.h | 2 +- src/d/actor/d_a_alldie.cpp | 58 ++-- src/d/actor/d_a_arrow.cpp | 2 +- src/d/actor/d_a_branch.cpp | 4 +- src/d/actor/d_a_disappear.cpp | 25 +- src/d/actor/d_a_ib.cpp | 6 +- src/d/actor/d_a_obj_akabe.cpp | 43 +-- src/d/actor/d_a_obj_cafelmp.cpp | 22 +- src/d/actor/d_a_obj_homensmoke.cpp | 23 +- src/d/actor/d_a_obj_monument.cpp | 2 +- src/d/actor/d_a_obj_pbka.cpp | 35 +-- src/d/actor/d_a_tbox.cpp | 383 ++++++++------------------- src/d/d_s_title.cpp | 7 +- src/d/d_throwstone.cpp | 4 +- src/m_Do/m_Do_dvd_thread.cpp | 4 +- 24 files changed, 346 insertions(+), 517 deletions(-) diff --git a/include/d/actor/d_a_alldie.h b/include/d/actor/d_a_alldie.h index 572ed9d74..283cba49c 100644 --- a/include/d/actor/d_a_alldie.h +++ b/include/d/actor/d_a_alldie.h @@ -7,11 +7,15 @@ class daAlldie_c : public fopAc_ac_c { public: inline s32 create(); inline BOOL draw(); - void setActio(unsigned char) {} + void setActio(u8 action) { mAction = action; } + u8 getSwbit(); + BOOL actionWait(); + BOOL actionCheck(); + BOOL actionTimer(); + BOOL execute(); public: - /* 0x290 */ u8 mState; - /* 0x291 */ u8 m291[0x292 - 0x291]; + /* 0x290 */ u8 mAction; /* 0x292 */ s16 mTimer; }; diff --git a/include/d/actor/d_a_branch.h b/include/d/actor/d_a_branch.h index 7820cbc8c..5ad82325c 100644 --- a/include/d/actor/d_a_branch.h +++ b/include/d/actor/d_a_branch.h @@ -27,7 +27,7 @@ public: void demoPlay(mDoExt_McaMorf*); s32 CreateHeap(); - static s32 solidHeapCB(fopAc_ac_c*); + static BOOL solidHeapCB(fopAc_ac_c*); MtxP getJointMtx(const char*); diff --git a/include/d/actor/d_a_disappear.h b/include/d/actor/d_a_disappear.h index 2326b6de3..9d10d9bfe 100644 --- a/include/d/actor/d_a_disappear.h +++ b/include/d/actor/d_a_disappear.h @@ -5,7 +5,9 @@ class disappear_class : public fopAc_ac_c { public: - /* Place member variables here */ + /* 0x290 */ u8 m290[0x298 - 0x290]; + /* 0x298 */ s32 mSwitchNo; + /* 0x29C */ s16 mTimer; }; #endif /* D_A_DISAPPEAR_H */ diff --git a/include/d/actor/d_a_movie_player.h b/include/d/actor/d_a_movie_player.h index 8337bcc41..448896d49 100644 --- a/include/d/actor/d_a_movie_player.h +++ b/include/d/actor/d_a_movie_player.h @@ -16,8 +16,8 @@ public: void daMP_c_Callback_Draw(daMP_c*); public: - /* 0x290 */ u8 m290[0x294 - 0x290]; - /* 0x294 */ int m294; + /* 0x290 */ u32 (*mpCallBack1)(); + /* 0x294 */ u32 (*mpCallBack2)(f32); }; #endif /* D_A_MOVIE_PLAYER_H */ diff --git a/include/d/actor/d_a_obj_akabe.h b/include/d/actor/d_a_obj_akabe.h index 190eef440..b6fe5f652 100644 --- a/include/d/actor/d_a_obj_akabe.h +++ b/include/d/actor/d_a_obj_akabe.h @@ -4,22 +4,48 @@ #include "f_op/f_op_actor.h" #include "d/d_bg_w.h" #include "SSystem/SComponent/c_phase.h" +#include "d/d_a_obj.h" namespace daObjAkabe { class Act_c : public fopAc_ac_c { public: - void prm_get_always() const {} - void prm_get_arg0() const {} - void prm_get_scl() const {} - void prm_get_swSave() const {} + enum Prm_e { + PRM_SWSAVE_W = 8, + PRM_SWSAVE_S = 0, + + PRM_SCL_W = 2, + PRM_SCL_S = 8, + + PRM_ALWAYS_W = 1, + PRM_ALWAYS_S = 12, + + PRM_ARG0_W = 4, + PRM_ARG0_S = 16, + }; + + s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } + s32 prm_get_scl() const { return daObj::PrmAbstract(this, PRM_SCL_W, PRM_SCL_S); } + s32 prm_get_always() const { return daObj::PrmAbstract(this, PRM_ALWAYS_W, PRM_ALWAYS_S); } + s32 prm_get_arg0() const { return daObj::PrmAbstract(this, PRM_ARG0_W, PRM_ARG0_S); } + s32 _create(); + bool create_heap(); + bool _delete(); + void init_scale(); + void init_mtx(); + bool chk_appear(); + bool _execute(); + bool _draw(); + + static BOOL solidHeapCB(fopAc_ac_c*); + static const char* const M_arcname[4]; + public: /* 0x290 */ request_of_phase_process_class mPhs; /* 0x298 */ dBgW* mpBgW; - /* 0x29C */ Mtx mCollMtx; - /* 0x2CC */ int mType; + /* 0x29C */ Mtx mMtx; + /* 0x2CC */ s32 mType; /* 0x2D0 */ u8 mbAppear; - /* 0x2D1 */ u8 m2D1[0x2D4 - 0x2D1]; }; }; diff --git a/include/d/actor/d_a_obj_cafelmp.h b/include/d/actor/d_a_obj_cafelmp.h index 4269a8dd1..a92b8f5f0 100644 --- a/include/d/actor/d_a_obj_cafelmp.h +++ b/include/d/actor/d_a_obj_cafelmp.h @@ -2,6 +2,7 @@ #define D_A_OBJ_CAFELMP_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" class daObjCafelmp_c : public fopAc_ac_c { public: @@ -10,11 +11,13 @@ 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; }; #endif /* D_A_OBJ_CAFELMP_H */ diff --git a/include/d/actor/d_a_obj_homensmoke.h b/include/d/actor/d_a_obj_homensmoke.h index f056ed871..58b21d067 100644 --- a/include/d/actor/d_a_obj_homensmoke.h +++ b/include/d/actor/d_a_obj_homensmoke.h @@ -2,15 +2,30 @@ #define D_A_OBJ_HOMENSMOKE_H #include "f_op/f_op_actor.h" +#include "d/d_particle.h" +#include "d/d_a_obj.h" namespace daObjHomensmoke { class Act_c : public fopAc_ac_c { public: - void param_get_arg0() const {} - void param_get_axis() const {} + int param_get_arg0() const { return daObj::PrmAbstract(this, 1, 0) & 0x1; } + int param_get_axis() const { return daObj::PrmAbstract(this, 1, 1) & 0x1; } + + virtual ~Act_c() {} + void set_mtx(); + s32 _create(); + bool _delete(); + bool _execute(); + bool _draw(); public: - /* Place member variables here */ + /* 0x290 */ /* vtable */ + /* 0x294 */ u8 m294[0x29C - 0x294]; + /* 0x29C */ Mtx mMtx; + /* 0x2CC */ int mType; + /* 0x2D0 */ dPa_smokeEcallBack mSmokeCb; + /* 0x2F0 */ BOOL mbInitialized; + /* 0x2F4 */ cXyz mSmokePos; }; }; diff --git a/include/d/actor/d_a_obj_pbka.h b/include/d/actor/d_a_obj_pbka.h index 1a8912b48..d187852e8 100644 --- a/include/d/actor/d_a_obj_pbka.h +++ b/include/d/actor/d_a_obj_pbka.h @@ -2,6 +2,7 @@ #define D_A_OBJ_PBKA_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" class daObjPbka_c : public fopAc_ac_c { public: @@ -10,11 +11,13 @@ 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 mPhase; + /* 0x298 */ J3DModel* mpModel; }; #endif /* D_A_OBJ_PBKA_H */ diff --git a/include/d/actor/d_a_tbox.h b/include/d/actor/d_a_tbox.h index 698340629..796eb31bf 100644 --- a/include/d/actor/d_a_tbox.h +++ b/include/d/actor/d_a_tbox.h @@ -6,28 +6,57 @@ #include "JSystem/JParticle/JPAEmitter.h" #include "m_Do/m_Do_ext.h" #include "SSystem/SComponent/c_phase.h" +#include "d/d_bg_w.h" +#include "d/d_particle.h" +#include "d/d_bg_s_acch.h" +#include "f_op/f_op_actor_mng.h" class daTbox_c : public fopAc_ac_c { public: - void action() {} - void deleteProc() {} - inline BOOL draw(); - void flagCheck(unsigned short) {} - void flagClr() {} - void flagOff(unsigned short) {} - void flagOn(unsigned short) {} - void getItemNo() {} - void getPhase() {} - void getSwNo() {} - void getTboxNo() {} - void setAction(int (daTbox_c::*)()) {} + struct modelInfo { + s16 modelId; + s16 openBckId; + s16 btkId; + s16 brkId; + s16 closedColId; + s16 openColId; + }; + typedef BOOL (daTbox_c::*ActionFunc)(); + + u8 getTboxNo() { return fopAcM_GetParam(this) >> 0x07 & 0x1F; } + int getSwNo() { return fopAcM_GetParam(this) >> 0x0C & 0xFF; } + u8 getItemNo() { return orig.angle.z >> 8 & 0xFF; } + void flagOn(u16 flag) { mFlags |= flag; } + void flagOff(u16 flag) { mFlags &= ~flag; } + void flagClr() { mFlags = 0; } + BOOL flagCheck(u16 flag) { return mFlags & flag; } + request_of_phase_process_class* getPhase() { return &mPhs; } + bool action() { return (this->*mActionFunc)(); } + void setAction(ActionFunc func) { mActionFunc = func; } + void deleteProc() {} // Maybe only used in the demo + + inline BOOL draw(); + BOOL execute(); + s32 commonShapeSet(); + s32 effectShapeSet(); + s32 envShapeSet(); + s32 bgCheckSet(); void searchRoomNo(); void lightReady(); + BOOL checkEnv(); + BOOL checkOpen(); + modelInfo& getModelInfo(); void clrDzb(); void setDzb(); void surfaceProc(); + BOOL checkRoomDisp(int); + s32 getShapeType(); + s32 getFuncType(); + BOOL checkNormal(); + s32 CreateHeap(); void CreateInit(); + s32 boxCheck(); void lightUpProc(); void lightDownProc(); void darkProc(); @@ -37,57 +66,70 @@ public: void demoInitAppear(); void demoProcAppear_Tact(); void demoProcAppear(); + s32 demoProc(); void OpenInit_com(); void OpenInit(); void setCollision(); + BOOL actionWait(); + BOOL actionDemo(); + BOOL actionDemo2(); + BOOL actionOpenWait(); + BOOL actionSwOnWait(); + BOOL actionSwOnWait2(); + BOOL actionGenocide(); public: - /* 0x290 */ int mRoomNo; - /* 0x294 */ request_of_phase_process_class mResLoadDalways; - /* 0x29C */ J3DModel* mpModel1; - /* 0x2A0 */ mDoExt_bckAnm mBckAnkm; - /* 0x2B0 */ mDoExt_btkAnm* mpBtkAnm; - /* 0x2B4 */ mDoExt_brkAnm* m2B4; - /* 0x2B8 */ cBgW* m2B8; - /* 0x2BC */ void* m2BC; - /* 0x2C0 */ void* m2C0; - /* 0x2C4 */ void* m2C4; - /* 0x2C8 */ void* m2C8; - /* 0x2CC */ void* m2CC; - /* 0x2D0 */ void* m2D0; - /* 0x2D4 */ void* m2D4; - /* 0x2D8 */ void* m2D8; - /* 0x2DC */ void* m2DC; - /* 0x2E0 */ void* m2E0; - /* 0x2E4 */ void* m2E4; - /* 0x2E8 */ void* m2E8; - /* 0x2EC */ void* m2EC; - /* 0x2F0 */ void* m2F0; - /* 0x2F4 */ void* m2F4; - /* 0x2F8 */ void* m2F8; - /* 0x2FC */ void* m2FC; - /* 0x300 */ void* m300; - /* 0x304 */ void* m304; - /* 0x308 */ void* m308; - /* 0x30C */ u8 m30C[0x324 - 0x30C]; - /* 0x324 */ J3DModel* mpModel; - /* 0x328 */ mDoExt_brkAnm m328; - /* 0x340 */ u8 m340[0x350 - 0x340]; - /* 0x350 */ int mStaffId; - /* 0x354 */ Mtx m354; + /* 0x290 */ s32 mRoomNo; + /* 0x294 */ request_of_phase_process_class mPhs; + /* 0x29C */ J3DModel* mpChestMdl; + /* 0x2A0 */ mDoExt_bckAnm mOpenAnm; + /* 0x2B0 */ mDoExt_btkAnm* mpAppearTexAnm; + /* 0x2B4 */ mDoExt_brkAnm* mpAppearRegAnm; + /* 0x2B8 */ dBgW* mpBgWClosed; + /* 0x2BC */ dBgW* mpBgWOpen; + /* 0x2C0 */ dBgW* mpBgWVines; + /* 0x2C4 */ dBgW* mpBgWCurrent; + /* 0x2C8 */ J3DModel* mpFlashMdl; + /* 0x2CC */ mDoExt_bckAnm mFlashAnm; + /* 0x2DC */ mDoExt_btkAnm mFlashTexAnm; + /* 0x2F0 */ mDoExt_brkAnm mFlashRegAnm; + /* 0x308 */ u32 m0308; + /* 0x30C */ mDoExt_brkAnm mBrkAnm3; + /* 0x324 */ J3DModel* mpTactPlatformMdl; + /* 0x328 */ mDoExt_brkAnm mTactPlatformBrk; + /* 0x340 */ ActionFunc mActionFunc; + /* 0x34C */ f32 mInvisibleScrollVal; + /* 0x350 */ u32 mStaffId; + /* 0x354 */ Mtx mMtx; /* 0x384 */ LIGHT_INFLUENCE mPLight; /* 0x3A4 */ LIGHT_INFLUENCE mEfLight; - /* 0x3C4 */ u8 m3C4[0x3E4 - 0x3C4]; - /* 0x3E4 */ JPABaseEmitter* m3E4; + /* 0x3C4 */ dPa_smokeEcallBack mSmokeCB; + /* 0x3E4 */ JPABaseEmitter* mSmokeEmitter; /* 0x3E8 */ f32 mAllColRatio; - /* 0x3EC */ u8 m3EC[0x3F0 - 0x3EC]; - /* 0x3F0 */ u16 m3F0; - /* 0x3F2 */ s16 m3F2; - /* 0x3F4 */ u8 m3F4[0x600 - 0x3F4]; - /* 0x600 */ dCcD_Stts mStts; - /* 0x63C */ dCcD_Cyl mCyl; - /* 0x76C */ u8 mChestOpenFlagIndex; - /* 0x76D */ u8 m76D[0x770 - 0x76D]; + /* 0x3EC */ f32 m03EC; + /* 0x3F0 */ u16 mFlags; + /* 0x3F2 */ u16 mOpenTimer; + /* 0x3F4 */ bool mHasOpenAnmFinished; + /* 0x3F5 */ bool mIsFlashPlaying; + /* 0x3F6 */ u16 mAppearTimer; + /* 0x3F8 */ u8 mGenocideDelayTimer; + /* 0x3FC */ dBgS_ObjAcch mObjAcch; + /* 0x5C0 */ dBgS_AcchCir mAcchCir; + /* 0x600 */ dCcD_Stts mColStatus; + /* 0x63C */ dCcD_Cyl mColCyl; + /* 0x76C */ u8 mOpenedSwitch; +}; + +class daTbox_HIO_c { +public: + daTbox_HIO_c(); + virtual ~daTbox_HIO_c() { } + + /* 0x04 */ s8 mHioId; + /* 0x06 */ s16 m06; + /* 0x08 */ s16 m08; + /* 0x0A */ s16 m0A; + /* 0x0C */ s16 m0C; }; #endif /* D_A_TBOX_H */ diff --git a/include/m_Do/m_Do_dvd_thread.h b/include/m_Do/m_Do_dvd_thread.h index 6480683e1..02410d32b 100644 --- a/include/m_Do/m_Do_dvd_thread.h +++ b/include/m_Do/m_Do_dvd_thread.h @@ -27,7 +27,7 @@ class mDoDvdThd_param_c { public: mDoDvdThd_param_c(); void kick(); - s32 waitForKick(); + BOOL waitForKick(); mDoDvdThd_command_c* getFirstCommand(); void addition(mDoDvdThd_command_c*); void cut(mDoDvdThd_command_c*); diff --git a/src/d/actor/d_a_alldie.cpp b/src/d/actor/d_a_alldie.cpp index 67ceaf203..3678768e6 100644 --- a/src/d/actor/d_a_alldie.cpp +++ b/src/d/actor/d_a_alldie.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_alldie.cpp // +#include "d/actor/d_a_alldie.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" @@ -14,56 +15,41 @@ enum { ACT_TIMER, }; -struct daAlldie_c : public fopAc_ac_c { -public: - u8 getSwbit(); - s32 actionWait(); - s32 actionCheck(); - s32 actionTimer(); - s32 execute(); - - inline s32 create(); - -public: - u8 mAction; - s16 mTimer; -}; - /* 00000078-00000084 .text getSwbit__10daAlldie_cFv */ u8 daAlldie_c::getSwbit() { return fopAcM_GetParam(this) >> 0x8; } /* 00000084-0000008C .text actionWait__10daAlldie_cFv */ -s32 daAlldie_c::actionWait() { - return 1; +BOOL daAlldie_c::actionWait() { + return TRUE; } /* 0000008C-000000D8 .text actionCheck__10daAlldie_cFv */ -s32 daAlldie_c::actionCheck() { +BOOL daAlldie_c::actionCheck() { if (!fopAcM_myRoomSearchEnemy(fopAcM_GetRoomNo(this))) { - mAction = ACT_TIMER; + setActio(ACT_TIMER); mTimer = 65; } - return 1; + return TRUE; } /* 000000D8-0000016C .text actionTimer__10daAlldie_cFv */ -s32 daAlldie_c::actionTimer() { +BOOL daAlldie_c::actionTimer() { if (fopAcM_myRoomSearchEnemy(fopAcM_GetRoomNo(this))) { - mAction = ACT_CHECK; + setActio(ACT_CHECK); } else if (mTimer > 0) { mTimer--; } else { - mAction = ACT_WAIT; + setActio(ACT_WAIT); dComIfGs_onSwitch(getSwbit(), fopAcM_GetRoomNo(this)); } - return 1; + return TRUE; } /* 0000016C-000001BC .text execute__10daAlldie_cFv */ -s32 daAlldie_c::execute() { +BOOL daAlldie_c::execute() { switch (mAction) { case ACT_CHECK: actionCheck(); @@ -76,16 +62,16 @@ s32 daAlldie_c::execute() { break; } - return 1; + return TRUE; } s32 daAlldie_c::create() { fopAcM_SetupActor(this, daAlldie_c); if (!dComIfGs_isSwitch(getSwbit(), fopAcM_GetRoomNo(this))) { - mAction = ACT_CHECK; + setActio(ACT_CHECK); } else { - mAction = ACT_WAIT; + setActio(ACT_WAIT); } shape_angle.z = 0; @@ -97,25 +83,25 @@ s32 daAlldie_c::create() { } /* 000001BC-000001C4 .text daAlldie_Draw__FP10daAlldie_c */ -static s32 daAlldie_Draw(daAlldie_c*) { - return 1; +static BOOL daAlldie_Draw(daAlldie_c*) { + return TRUE; } /* 000001C4-000001E8 .text daAlldie_Execute__FP10daAlldie_c */ -static s32 daAlldie_Execute(daAlldie_c* i_this) { +static BOOL daAlldie_Execute(daAlldie_c* i_this) { i_this->execute(); - return 1; + return TRUE; } /* 000001E8-000001F0 .text daAlldie_IsDelete__FP10daAlldie_c */ -static s32 daAlldie_IsDelete(daAlldie_c*) { - return 1; +static BOOL daAlldie_IsDelete(daAlldie_c*) { + return TRUE; } /* 000001F0-00000220 .text daAlldie_Delete__FP10daAlldie_c */ -static s32 daAlldie_Delete(daAlldie_c* i_this) { +static BOOL daAlldie_Delete(daAlldie_c* i_this) { i_this->~daAlldie_c(); - return 1; + return TRUE; } /* 00000220-000002CC .text daAlldie_Create__FP10fopAc_ac_c */ diff --git a/src/d/actor/d_a_arrow.cpp b/src/d/actor/d_a_arrow.cpp index 612bdff2d..0ad2e61a5 100644 --- a/src/d/actor/d_a_arrow.cpp +++ b/src/d/actor/d_a_arrow.cpp @@ -1239,7 +1239,7 @@ s32 daArrow_c::_create() { 0x1300, 0x820, }; - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)&createHeap_CB, heap_size[mArrowType])) { + if (!fopAcM_entrySolidHeap(this, createHeap_CB, heap_size[mArrowType])) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_branch.cpp b/src/d/actor/d_a_branch.cpp index 266f7ed70..809399747 100644 --- a/src/d/actor/d_a_branch.cpp +++ b/src/d/actor/d_a_branch.cpp @@ -58,7 +58,7 @@ void daBranch_c::demoPlay(mDoExt_McaMorf*) { } /* 00000228-00000248 .text solidHeapCB__10daBranch_cFP10fopAc_ac_c */ -s32 daBranch_c::solidHeapCB(fopAc_ac_c* i_this) { +BOOL daBranch_c::solidHeapCB(fopAc_ac_c* i_this) { daBranch_c* branch = static_cast(i_this); return branch->CreateHeap(); } @@ -182,7 +182,7 @@ s32 daBranch_Create(fopAc_ac_c* i_this) { s32 state = dComIfG_resLoad(&branch->mPhs, daBranch_c::m_arcname); if (state == cPhs_COMPLEATE_e) { - int solidHeapResult = fopAcM_entrySolidHeap(i_this, (heapCallbackFunc)daBranch_c::solidHeapCB, 0x4000); + int solidHeapResult = fopAcM_entrySolidHeap(i_this, daBranch_c::solidHeapCB, 0x4000); if (solidHeapResult & 0xFF == 0) { for (int i = 0; i < 2; i++) { diff --git a/src/d/actor/d_a_disappear.cpp b/src/d/actor/d_a_disappear.cpp index d5e0922ae..c75ce3d82 100644 --- a/src/d/actor/d_a_disappear.cpp +++ b/src/d/actor/d_a_disappear.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_disappear.cpp // +#include "d/actor/d_a_disappear.h" #include "JSystem/JKernel/JKRHeap.h" #include "f_op/f_op_actor.h" #include "f_op/f_op_actor_mng.h" @@ -12,21 +13,13 @@ #include "m_Do/m_Do_ext.h" #include "dolphin/types.h" -class disappear_class : public fopAc_ac_c { -public: - int m0000; - int m0004; - s32 mSwitchId; - s16 mTimer; -}; - /* 800E79C0-800E79C8 .text daDisappear_Draw__FP15disappear_class */ -s32 daDisappear_Draw(disappear_class*) { +BOOL daDisappear_Draw(disappear_class*) { return TRUE; } /* 800E79C8-800E7AC0 .text daDisappear_Execute__FP15disappear_class */ -s32 daDisappear_Execute(disappear_class* i_this) { +BOOL daDisappear_Execute(disappear_class* i_this) { if (i_this->mTimer != 0) { i_this->mTimer--; @@ -47,7 +40,7 @@ s32 daDisappear_Execute(disappear_class* i_this) { } } else { - fopAcM_createIball(&i_this->current.pos, i_this->mItemTableIdx, i_this->current.roomNo, &i_this->current.angle, i_this->mSwitchId); + fopAcM_createIball(&i_this->current.pos, i_this->mItemTableIdx, i_this->current.roomNo, &i_this->current.angle, i_this->mSwitchNo); } } } @@ -60,12 +53,12 @@ s32 daDisappear_Execute(disappear_class* i_this) { } /* 800E7AC0-800E7AC8 .text daDisappear_IsDelete__FP15disappear_class */ -s32 daDisappear_IsDelete(disappear_class*) { +BOOL daDisappear_IsDelete(disappear_class*) { return TRUE; } /* 800E7AC8-800E7AD0 .text daDisappear_Delete__FP15disappear_class */ -s32 daDisappear_Delete(disappear_class*) { +BOOL daDisappear_Delete(disappear_class*) { return TRUE; } @@ -113,9 +106,9 @@ s32 daDisappear_Create(fopAc_ac_c* i_this) { dis->mHealth = dis->mBase.mParameters & 0xFF; float scale = ((dis->mBase.mParameters >> 8) & 0xFF) * 0.1f; - dis->mSwitchId = (dis->mBase.mParameters >> 0x10) & 0xFF; - if (dis->mSwitchId == 0xFF) { - dis->mSwitchId = -1; + dis->mSwitchNo = (dis->mBase.mParameters >> 0x10) & 0xFF; + if (dis->mSwitchNo == 0xFF) { + dis->mSwitchNo = -1; } set_disappear(dis, scale); diff --git a/src/d/actor/d_a_ib.cpp b/src/d/actor/d_a_ib.cpp index 6e1ac1c66..a4bbb53ce 100644 --- a/src/d/actor/d_a_ib.cpp +++ b/src/d/actor/d_a_ib.cpp @@ -453,15 +453,15 @@ BOOL daIball_c::_daIball_delete() { } /* 800F4678-800F4698 .text CheckCreateHeap__FP10fopAc_ac_c */ -static void CheckCreateHeap(fopAc_ac_c* i_this) { - static_cast(i_this)->CreateHeap(); +static BOOL CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } /* 800F4698-800F4870 .text _daIball_create__9daIball_cFv */ s32 daIball_c::_daIball_create() { fopAcM_SetupActor(this, daIball_c); - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x3500)) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x3500)) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_obj_akabe.cpp b/src/d/actor/d_a_obj_akabe.cpp index a69ca17d6..ca89a7a87 100644 --- a/src/d/actor/d_a_obj_akabe.cpp +++ b/src/d/actor/d_a_obj_akabe.cpp @@ -3,7 +3,7 @@ // Translation Unit: d_a_obj_akabe.cpp // -#include "d/d_a_obj.h" +#include "d/actor/d_a_obj_akabe.h" #include "d/d_item.h" #include "d/d_item_data.h" #include "d/d_cc_d.h" @@ -13,47 +13,6 @@ #include "JSystem/JKernel/JKRHeap.h" namespace daObjAkabe { - struct Act_c : public fopAc_ac_c { - public: - enum Prm_e { - PRM_SWSAVE_W = 8, - PRM_SWSAVE_S = 0, - - PRM_SCL_W = 2, - PRM_SCL_S = 8, - - PRM_ALWAYS_W = 1, - PRM_ALWAYS_S = 12, - - PRM_ARG0_W = 4, - PRM_ARG0_S = 16, - }; - - s32 _create(); - bool create_heap(); - bool _delete(); - void init_scale(); - void init_mtx(); - bool chk_appear(); - bool _execute(); - bool _draw(); - - static BOOL solidHeapCB(fopAc_ac_c*); - static const char* const M_arcname[4]; - - s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } - s32 prm_get_scl() const { return daObj::PrmAbstract(this, PRM_SCL_W, PRM_SCL_S); } - s32 prm_get_always() const { return daObj::PrmAbstract(this, PRM_ALWAYS_W, PRM_ALWAYS_S); } - s32 prm_get_arg0() const { return daObj::PrmAbstract(this, PRM_ARG0_W, PRM_ARG0_S); } - - public: - /* 0x290 */ request_of_phase_process_class mPhs; - /* 0x298 */ dBgW * mpBgW; - /* 0x29C */ Mtx mMtx; - /* 0x2CC */ s32 mType; - /* 0x2D0 */ u8 mbAppear; - }; - const char* const Act_c::M_arcname[4] = { "Akabe", "AkabeD", diff --git a/src/d/actor/d_a_obj_cafelmp.cpp b/src/d/actor/d_a_obj_cafelmp.cpp index 672552a5c..e89e5d671 100644 --- a/src/d/actor/d_a_obj_cafelmp.cpp +++ b/src/d/actor/d_a_obj_cafelmp.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_obj_cafelmp.cpp // +#include "d/actor/d_a_obj_cafelmp.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -12,21 +13,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" -class daObjCafelmp_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; -}; - /* 00000078-00000098 .text CheckCreateHeap__FP10fopAc_ac_c */ BOOL CheckCreateHeap(fopAc_ac_c* i_this) { return ((daObjCafelmp_c*)i_this)->CreateHeap(); @@ -75,18 +61,18 @@ s32 daObjCafelmp_c::_create() { return ret; } -bool daObjCafelmp_c::_delete() { +BOOL daObjCafelmp_c::_delete() { dComIfG_resDelete(&mPhs, "Cafelmp"); return true; } -bool daObjCafelmp_c::_execute() { +BOOL daObjCafelmp_c::_execute() { current.angle.y += 0xda; set_mtx(); return true; } -bool daObjCafelmp_c::_draw() { +BOOL daObjCafelmp_c::_draw() { g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &mTevStr); g_env_light.setLightTevColorType(mpModel, &mTevStr); dComIfGd_setListBG(); diff --git a/src/d/actor/d_a_obj_homensmoke.cpp b/src/d/actor/d_a_obj_homensmoke.cpp index be80ba7d3..094564037 100644 --- a/src/d/actor/d_a_obj_homensmoke.cpp +++ b/src/d/actor/d_a_obj_homensmoke.cpp @@ -3,7 +3,7 @@ // Translation Unit: d_a_obj_homensmoke.cpp // -#include "d/d_a_obj.h" +#include "d/actor/d_a_obj_homensmoke.h" #include "d/d_procname.h" #include "d/d_particle.h" #include "JSystem/JKernel/JKRHeap.h" @@ -13,27 +13,6 @@ static u8 temp[0x4C]; namespace daObjHomensmoke { - class Act_c : public fopAc_ac_c { - public: - virtual ~Act_c() {} - void set_mtx(); - s32 _create(); - bool _delete(); - bool _execute(); - bool _draw(); - - int param_get_arg0() const { return daObj::PrmAbstract(this, 1, 0) & 0x1; } - int param_get_axis() const { return daObj::PrmAbstract(this, 1, 1) & 0x1; } - - /* 0x290 */ /* vtable */ - /* 0x294 */ u8 m294[0x29C - 0x294]; - /* 0x29C */ Mtx mMtx; - /* 0x2CC */ int mType; - /* 0x2D0 */ dPa_smokeEcallBack mSmokeCb; - /* 0x2F0 */ BOOL mbInitialized; - /* 0x2F4 */ cXyz mSmokePos; - }; - /* 000000EC-00000230 .text set_mtx__Q215daObjHomensmoke5Act_cFv */ void Act_c::set_mtx() { if (param_get_axis() != 0) { diff --git a/src/d/actor/d_a_obj_monument.cpp b/src/d/actor/d_a_obj_monument.cpp index b25bf55fd..f28f03796 100644 --- a/src/d/actor/d_a_obj_monument.cpp +++ b/src/d/actor/d_a_obj_monument.cpp @@ -65,7 +65,7 @@ s32 daObjMonument::Act_c::_create() { if (ret == cPhs_COMPLEATE_e) { mType = prm_get_type(); - if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0xd20)) { + if (fopAcM_entrySolidHeap(this, solidHeapCB, 0xd20)) { fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); dComIfG_Bgsp()->Regist(mpBgW, this); init_mtx(); diff --git a/src/d/actor/d_a_obj_pbka.cpp b/src/d/actor/d_a_obj_pbka.cpp index d67fc9788..6253a8b33 100644 --- a/src/d/actor/d_a_obj_pbka.cpp +++ b/src/d/actor/d_a_obj_pbka.cpp @@ -1,24 +1,15 @@ /* * d_a_obj_pbka.cpp */ + +#include "d/actor/d_a_obj_pbka.h" #include "JSystem/JKernel/JKRHeap.h" #include "f_op/f_op_actor_mng.h" #include "d/d_com_inf_game.h" #include "m_Do/m_Do_mtx.h" #include "d/d_procname.h" -class daObjPbka_c : public fopAc_ac_c { -public: - bool CreateHeap(); - void CreateInit(); - void set_mtx(); - inline bool draw(); -public: - /* 0x290 */ request_of_phase_process_class mPhase; - /* 0x298 */ J3DModel* mpModel; -}; //Size 0x29C - -bool daObjPbka_c::draw() +BOOL daObjPbka_c::_draw() { dKy_tevstr_c * pTevStr; g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, pTevStr = &mTevStr); @@ -29,20 +20,20 @@ bool daObjPbka_c::draw() return true; } -void CheckCreateHeap(fopAc_ac_c* i_this) { +static int CheckCreateHeap(fopAc_ac_c* i_this) { daObjPbka_c* a_this = (daObjPbka_c*)i_this; - a_this->CreateHeap(); + return a_this->CreateHeap(); } /* 00000098-0000015C .text CreateHeap__11daObjPbka_cFv */ -bool daObjPbka_c::CreateHeap() { +BOOL daObjPbka_c::CreateHeap() { J3DModelData *modelData = (J3DModelData *)dComIfG_getObjectRes("Pbka", 3); JUT_ASSERT(0x51, modelData != 0); mpModel = mDoExt_J3DModel__create(modelData,0,0x11020203); if(mpModel == NULL) { return false; } - return true; + return TRUE; } void daObjPbka_c::CreateInit() { @@ -63,14 +54,14 @@ void daObjPbka_c::set_mtx() { mDoMtx_copy(mDoMtx_stack_c::get(), mpModel->mBaseTransformMtx); } -cPhs__Step daObjPbka_Create(void* i_this) { +static cPhs__Step daObjPbka_Create(void* i_this) { int cPhsStep; daObjPbka_c* a_this = (daObjPbka_c*)i_this; fopAcM_SetupActor(a_this, daObjPbka_c); cPhsStep = dComIfG_resLoad(&a_this->mPhase, "Pbka"); if (cPhsStep == cPhs_COMPLEATE_e) { - if ((fopAcM_entrySolidHeap(a_this, (heapCallbackFunc)CheckCreateHeap,0x680) & 0xff) == 0) { + if ((fopAcM_entrySolidHeap(a_this, CheckCreateHeap, 0x680) & 0xff) == 0) { cPhsStep = cPhs_ERROR_e; } else { a_this->CreateInit(); @@ -82,12 +73,12 @@ cPhs__Step daObjPbka_Create(void* i_this) { static BOOL daObjPbka_Delete(void* i_this) { daObjPbka_c* a_this = (daObjPbka_c*)i_this; dComIfG_resDelete(&a_this->mPhase,"Pbka"); - return true; + return TRUE; } static BOOL daObjPbka_Draw(void* i_this) { daObjPbka_c* a_this = (daObjPbka_c*)i_this; - return a_this->draw(); + return a_this->_draw(); } static BOOL daObjPbka_Execute(void* i_this) { @@ -96,11 +87,11 @@ static BOOL daObjPbka_Execute(void* i_this) { a_this->shape_angle.y = a_this->current.angle.y; mDoAud_seStart(JA_SE_OBJ_BOMB_SHOP_FAN, &a_this->current.pos, 0 , dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); a_this->set_mtx(); - return true; + return TRUE; } static BOOL daObjPbka_IsDelete(void*) { - return true; + return TRUE; } static actor_method_class daObj_PbkaMethodTable = { diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp index 08b5fed5e..be383557b 100644 --- a/src/d/actor/d_a_tbox.cpp +++ b/src/d/actor/d_a_tbox.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_tbox.cpp // +#include "d/actor/d_a_tbox.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "d/d_bg_s_acch.h" @@ -43,270 +44,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 daTbox_HIO_c { -public: - daTbox_HIO_c(); - virtual ~daTbox_HIO_c() { } - - /* 0x0004 */ s8 mHioId; - /* 0x0006 */ s16 m0006; - /* 0x0008 */ s16 m0008; - /* 0x000A */ s16 m000A; - /* 0x000C */ s16 m000C; -}; - static daTbox_HIO_c l_HIO; -struct modelInfo { - s16 modelId; - s16 openBckId; - s16 btkId; - s16 brkId; - s16 closedColId; - s16 openColId; -}; - -static modelInfo l_modelInfo[] = { +static daTbox_c::modelInfo l_modelInfo[] = { { 0x000E, 0x0009, 0x0022, 0x001B, 0x002A, 0x002B }, { 0x000F, 0x0008, 0x0023, 0x001C, 0x002A, 0x002B }, { 0x0010, 0x0008, 0x0024, 0x001D, 0x002A, 0x002B }, { 0x0014, 0x0008, 0xFFFF, 0xFFFF, 0x002C, 0x002D } }; -class daTbox_c : public fopAc_ac_c { -public: - daTbox_c() { } - - s32 commonShapeSet(); - s32 effectShapeSet(); - s32 envShapeSet(); - s32 bgCheckSet(); - - void searchRoomNo(); - void lightReady(); - - BOOL checkEnv(); - BOOL checkOpen(); - - modelInfo& getModelInfo(); - - void clrDzb(); - void setDzb(); - - void surfaceProc(); - BOOL checkRoomDisp(int); - s32 getShapeType(); - s32 getFuncType(); - BOOL checkNormal(); - - s32 CreateHeap(); - void CreateInit(); - - s32 boxCheck(); - void lightUpProc(); - void lightDownProc(); - void darkProc(); - void volmProc(); - - void demoProcOpen(); - - void demoInitAppear_Tact(); - void demoInitAppear(); - - void demoProcAppear_Tact(); - void demoProcAppear(); - - s32 demoProc(); - - void OpenInit_com(); - void OpenInit(); - - void setCollision(); - - bool actionWait(); - bool actionDemo(); - bool actionDemo2(); - bool actionOpenWait(); - bool actionSwOnWait(); - bool actionSwOnWait2(); - bool actionGenocide(); - - s32 execute(); - - s32 draw() { - u8 openFlag; - - if (mRoomNo != -1 && !checkRoomDisp(mRoomNo)) { - return TRUE; - } - - if (flagCheck(0x01) || (checkEnv() && flagCheck(0x04))) { - openFlag = mOpenedSwitch; - } - else { - openFlag = 0xFF; - } - - if (!checkOpen()) { - dMap_drawPoint(5, current.pos.x, current.pos.y, current.pos.z, mRoomNo, -0x8000, openFlag, mGbaName, 0); - } - - mTevStr.mRoomNo = mRoomNo; - g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &mTevStr); - - if (getFuncType() == FUNC_TYPE_TACT) { - J3DModelData* platMdlData = mpTactPlatformMdl->getModelData(); - - g_env_light.setLightTevColorType(mpTactPlatformMdl, &mTevStr); - mTactPlatformBrk.entry(platMdlData); - mDoExt_modelUpdateDL(mpTactPlatformMdl); - } - - if (flagCheck(0x01)) { - return TRUE; - } - - g_env_light.setLightTevColorType(mpChestMdl, &mTevStr); - - J3DModelData* chestMdlData = mpChestMdl->getModelData(); - mOpenAnm.entry(chestMdlData); - - if (mpAppearTexAnm != NULL) { - mpAppearTexAnm->entry(chestMdlData); - } - if (mpAppearRegAnm != NULL) { - mpAppearRegAnm->entry(chestMdlData); - } - - if (checkEnv() && flagCheck(0x04)) { - float scrollOffset = mInvisibleScrollVal - -2.0f; - s8 offsetAsU8 = scrollOffset; - - float interpVal = (scrollOffset - offsetAsU8) * 0.5f + 0.5f; - - for (u8 i = 0; i < chestMdlData->getMaterialNum(); i++) { - J3DMaterial* mat = chestMdlData->getMaterialNodePointer(i); - - for (u8 j = 0; j < mat->getIndTexStageNum(); j++) { - J3DIndTexMtx* texMtx = mat->getIndTexMtx(j); - texMtx->setScaleExp(offsetAsU8); - - Mtx3P offsetMtx = texMtx->getOffsetMtx(); - offsetMtx[0][0] = interpVal; - offsetMtx[1][1] = interpVal; - } - } - - if (flagCheck(0x04)) { - dComIfGd_setListInvisisble(); - mDoExt_modelUpdateDL(mpChestMdl); - dComIfGd_setList(); - } - else { - mDoExt_modelUpdateDL(mpChestMdl); - } - } - else { - mDoExt_modelUpdateDL(mpChestMdl); - } - - if (mIsFlashPlaying != 0 && mOpenTimer >= 0x24) { - J3DModelData* flashMdlData = mpFlashMdl->getModelData(); - - mFlashAnm.entry(flashMdlData); - mFlashRegAnm.entry(flashMdlData); - mFlashTexAnm.entry(flashMdlData); - - dComIfGd_setListMaskOff(); - mDoExt_modelUpdateDL(mpFlashMdl); - dComIfGd_setList(); - } - - return TRUE; - } - - /* 0x0290 */ s32 mRoomNo; - /* 0x0294 */ request_of_phase_process_class mPhs; - - /* 0x029C */ J3DModel* mpChestMdl; - /* 0x02A0 */ mDoExt_bckAnm mOpenAnm; - /* 0x02B0 */ mDoExt_btkAnm* mpAppearTexAnm; - /* 0x02B4 */ mDoExt_brkAnm* mpAppearRegAnm; - - /* 0x02B8 */ dBgW* mpBgWClosed; - /* 0x02BC */ dBgW* mpBgWOpen; - /* 0x02C0 */ dBgW* mpBgWVines; - - /* 0x02C4 */ dBgW* mpBgWCurrent; - - /* 0x02C8 */ J3DModel* mpFlashMdl; - /* 0x02CC */ mDoExt_bckAnm mFlashAnm; - /* 0x02DC */ mDoExt_btkAnm mFlashTexAnm; - /* 0x02F0 */ mDoExt_brkAnm mFlashRegAnm; - - /* 0x0308 */ u32 m0308; - - /* 0x030C */ mDoExt_brkAnm mBrkAnm3; - - /* 0x0324 */ J3DModel* mpTactPlatformMdl; - /* 0x0328 */ mDoExt_brkAnm mTactPlatformBrk; - - typedef bool (daTbox_c::*actionFunc)(); - /* 0x0340 */ actionFunc mActionFunc; - - /* 0x034C */ float mInvisibleScrollVal; - - /* 0x0350 */ u32 mStaffId; - - /* 0x0354 */ Mtx mMtx; - - /* 0x0384 */ LIGHT_INFLUENCE mPLight; - /* 0x03A4 */ LIGHT_INFLUENCE mEfLight; - - /* 0x03C4 */ dPa_smokeEcallBack mSmokeCB; - /* 0x03E4 */ JPABaseEmitter* mSmokeEmitter; - - /* 0x03E8 */ float mAllColRatio; - /* 0x03EC */ float m03EC; - - /* 0x03F0 */ u16 mFlags; - /* 0x03F2 */ u16 mOpenTimer; - - /* 0x03F4 */ bool mHasOpenAnmFinished; - /* 0x03F5 */ bool mIsFlashPlaying; - /* 0x03F6 */ u16 mAppearTimer; - - /* 0x03F8 */ u8 mGenocideDelayTimer; - - /* 0x03FC */ dBgS_ObjAcch mObjAcch; - /* 0x05C0 */ dBgS_AcchCir mAcchCir; - /* 0x0600 */ dCcD_Stts mColStatus; - /* 0x063C */ dCcD_Cyl mColCyl; - - /* 0x076C */ u8 mOpenedSwitch; - - void flagOn(u16 flag) { mFlags |= flag; } - void flagOff(u16 flag) { mFlags &= ~flag; } - void flagClr() { mFlags = 0; } - BOOL flagCheck(u16 flag) { return mFlags & flag; } - - request_of_phase_process_class* getPhase() { return &mPhs; } - - u8 getTboxNo() { return fopAcM_GetParam(this) >> 0x07 & 0x1F; } - int getSwNo() { return fopAcM_GetParam(this) >> 0x0C & 0xFF; } - u8 getItemNo() { return orig.angle.z >> 8 & 0xFF; } - - bool action() { return (this->*mActionFunc)(); } - void setAction(actionFunc func) { mActionFunc = func; } -}; - /* 000000EC-00000124 .text __ct__12daTbox_HIO_cFv */ daTbox_HIO_c::daTbox_HIO_c() { mHioId = -1; - m0006 = 0x82; - m0008 = 0xB4; - m000A = 0x30; - m000C = 0x1E; + m06 = 0x82; + m08 = 0xB4; + m0A = 0x30; + m0C = 0x1E; } /* 00000124-00000550 .text commonShapeSet__8daTbox_cFv */ @@ -558,7 +311,7 @@ BOOL daTbox_c::checkOpen() { } /* 00000D48-00000D78 .text getModelInfo__8daTbox_cFv */ -modelInfo& daTbox_c::getModelInfo() { +daTbox_c::modelInfo& daTbox_c::getModelInfo() { return l_modelInfo[getShapeType()]; } @@ -735,7 +488,7 @@ void daTbox_c::CreateInit() { case FUNC_TYPE_TACT: setAction(&daTbox_c::actionSwOnWait); flagOn(0x03); - mAppearTimer = l_HIO.m0008; + mAppearTimer = l_HIO.m08; break; case FUNC_TYPE_SWITCH_TRANSPARENT: setAction(&daTbox_c::actionSwOnWait); @@ -916,7 +669,7 @@ void daTbox_c::demoInitAppear() { /* 00001B38-00001CF4 .text demoProcAppear_Tact__8daTbox_cFv */ void daTbox_c::demoProcAppear_Tact() { - if (mAppearTimer == l_HIO.m0008 - l_HIO.m0006) { + if (mAppearTimer == l_HIO.m08 - l_HIO.m06) { flagOff(1); mInvisibleScrollVal = 2.0f; @@ -930,13 +683,13 @@ void daTbox_c::demoProcAppear_Tact() { if (mAppearTimer != 0) { mAppearTimer--; - if (mAppearTimer > l_HIO.m0008 - l_HIO.m000A) { + if (mAppearTimer > l_HIO.m08 - l_HIO.m0A) { dKy_set_allcol_ratio( - (0.6f / l_HIO.m000A) - * (mAppearTimer - (l_HIO.m0008 - l_HIO.m000A)) + 0.4f); + (0.6f / l_HIO.m0A) + * (mAppearTimer - (l_HIO.m08 - l_HIO.m0A)) + 0.4f); } - else if (mAppearTimer < l_HIO.m000C) { - dKy_set_allcol_ratio((0.6f / l_HIO.m000C) * (l_HIO.m000C - mAppearTimer) + 0.4f); + else if (mAppearTimer < l_HIO.m0C) { + dKy_set_allcol_ratio((0.6f / l_HIO.m0C) * (l_HIO.m0C - mAppearTimer) + 0.4f); } else { dKy_set_allcol_ratio(0.4f); @@ -1136,12 +889,12 @@ void daTbox_c::setCollision() { } /* 000024AC-000024B4 .text actionWait__8daTbox_cFv */ -bool daTbox_c::actionWait() { +BOOL daTbox_c::actionWait() { return true; } /* 000024B4-000025A4 .text actionDemo__8daTbox_cFv */ -bool daTbox_c::actionDemo() { +BOOL daTbox_c::actionDemo() { /* Fakematch - the temp variable for play is definitely not right. */ s16 eventId = mEvtInfo.getEventId(); dComIfG_play_c* play = &g_dComIfG_gameInfo.play; @@ -1171,7 +924,7 @@ bool daTbox_c::actionDemo() { } /* 000025A4-00002634 .text actionDemo2__8daTbox_cFv */ -bool daTbox_c::actionDemo2() { +BOOL daTbox_c::actionDemo2() { if (dComIfGp_evmng_endCheck("DEFAULT_TREASURE_APPEAR")) { setAction(&daTbox_c::actionOpenWait); dComIfGp_event_onEventFlag(0x08); @@ -1184,7 +937,7 @@ bool daTbox_c::actionDemo2() { } /* 00002634-000027C8 .text actionOpenWait__8daTbox_cFv */ -bool daTbox_c::actionOpenWait() { +BOOL daTbox_c::actionOpenWait() { if (mEvtInfo.checkCommandDoor()) { dComIfGp_event_onEventFlag(0x04); @@ -1232,7 +985,7 @@ bool daTbox_c::actionOpenWait() { } /* 000027C8-000028A0 .text actionSwOnWait__8daTbox_cFv */ -bool daTbox_c::actionSwOnWait() { +BOOL daTbox_c::actionSwOnWait() { if (mEvtInfo.checkCommandDemoAccrpt()) { setAction(&daTbox_c::actionDemo2); @@ -1250,7 +1003,7 @@ bool daTbox_c::actionSwOnWait() { } /* 000028A0-00002914 .text actionSwOnWait2__8daTbox_cFv */ -bool daTbox_c::actionSwOnWait2() { +BOOL daTbox_c::actionSwOnWait2() { if (dComIfGs_isSwitch(getSwNo(), mRoomNo)) { setAction(&daTbox_c::actionOpenWait); setDzb(); @@ -1260,7 +1013,7 @@ bool daTbox_c::actionSwOnWait2() { } /* 00002914-00002A2C .text actionGenocide__8daTbox_cFv */ -bool daTbox_c::actionGenocide() { +BOOL daTbox_c::actionGenocide() { if (mEvtInfo.checkCommandDemoAccrpt()) { setAction(&daTbox_c::actionDemo2); @@ -1284,8 +1037,100 @@ bool daTbox_c::actionGenocide() { return true; } +BOOL daTbox_c::draw() { + u8 openFlag; + + if (mRoomNo != -1 && !checkRoomDisp(mRoomNo)) { + return TRUE; + } + + if (flagCheck(0x01) || (checkEnv() && flagCheck(0x04))) { + openFlag = mOpenedSwitch; + } + else { + openFlag = 0xFF; + } + + if (!checkOpen()) { + dMap_drawPoint(5, current.pos.x, current.pos.y, current.pos.z, mRoomNo, -0x8000, openFlag, mGbaName, 0); + } + + mTevStr.mRoomNo = mRoomNo; + g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &mTevStr); + + if (getFuncType() == FUNC_TYPE_TACT) { + J3DModelData* platMdlData = mpTactPlatformMdl->getModelData(); + + g_env_light.setLightTevColorType(mpTactPlatformMdl, &mTevStr); + mTactPlatformBrk.entry(platMdlData); + mDoExt_modelUpdateDL(mpTactPlatformMdl); + } + + if (flagCheck(0x01)) { + return TRUE; + } + + g_env_light.setLightTevColorType(mpChestMdl, &mTevStr); + + J3DModelData* chestMdlData = mpChestMdl->getModelData(); + mOpenAnm.entry(chestMdlData); + + if (mpAppearTexAnm != NULL) { + mpAppearTexAnm->entry(chestMdlData); + } + if (mpAppearRegAnm != NULL) { + mpAppearRegAnm->entry(chestMdlData); + } + + if (checkEnv() && flagCheck(0x04)) { + float scrollOffset = mInvisibleScrollVal - -2.0f; + s8 offsetAsU8 = scrollOffset; + + float interpVal = (scrollOffset - offsetAsU8) * 0.5f + 0.5f; + + for (u8 i = 0; i < chestMdlData->getMaterialNum(); i++) { + J3DMaterial* mat = chestMdlData->getMaterialNodePointer(i); + + for (u8 j = 0; j < mat->getIndTexStageNum(); j++) { + J3DIndTexMtx* texMtx = mat->getIndTexMtx(j); + texMtx->setScaleExp(offsetAsU8); + + Mtx3P offsetMtx = texMtx->getOffsetMtx(); + offsetMtx[0][0] = interpVal; + offsetMtx[1][1] = interpVal; + } + } + + if (flagCheck(0x04)) { + dComIfGd_setListInvisisble(); + mDoExt_modelUpdateDL(mpChestMdl); + dComIfGd_setList(); + } + else { + mDoExt_modelUpdateDL(mpChestMdl); + } + } + else { + mDoExt_modelUpdateDL(mpChestMdl); + } + + if (mIsFlashPlaying != 0 && mOpenTimer >= 0x24) { + J3DModelData* flashMdlData = mpFlashMdl->getModelData(); + + mFlashAnm.entry(flashMdlData); + mFlashRegAnm.entry(flashMdlData); + mFlashTexAnm.entry(flashMdlData); + + dComIfGd_setListMaskOff(); + mDoExt_modelUpdateDL(mpFlashMdl); + dComIfGd_setList(); + } + + return TRUE; +} + /* 00002A2C-00002BF0 .text execute__8daTbox_cFv */ -s32 daTbox_c::execute() { +BOOL daTbox_c::execute() { if (mRoomNo == -1 || checkRoomDisp(mRoomNo) != TRUE) { return TRUE; } diff --git a/src/d/d_s_title.cpp b/src/d/d_s_title.cpp index aa13e7d46..f6695defb 100644 --- a/src/d/d_s_title.cpp +++ b/src/d/d_s_title.cpp @@ -15,6 +15,7 @@ #include "d/d_com_inf_game.h" #include "d/d_meter.h" #include "m_Do/m_Do_controller_pad.h" +#include "d/actor/d_a_movie_player.h" namespace JAInter { class BankWave { @@ -23,12 +24,6 @@ namespace JAInter { }; }; -class daMP_c : public fopAc_ac_c { -public: - /* 0x290 */ u32 (*mpCallBack1)(); - /* 0x294 */ u32 (*mpCallBack2)(f32); -}; - #if VERSION == VERSION_PAL #define title_of_scene_class dScnTitle_c #endif diff --git a/src/d/d_throwstone.cpp b/src/d/d_throwstone.cpp index a28df76c1..eb12db2e1 100644 --- a/src/d/d_throwstone.cpp +++ b/src/d/d_throwstone.cpp @@ -29,7 +29,7 @@ public: const char daThrowstone_c::M_arcname[] = "Aisi"; /* 8023B544-8023B564 .text CheckCreateHeap__FP10fopAc_ac_c */ -static s32 CheckCreateHeap(fopAc_ac_c* i_actor) { +static BOOL CheckCreateHeap(fopAc_ac_c* i_actor) { daThrowstone_c* i_this = (daThrowstone_c*)i_actor; return i_this->CreateHeap(); } @@ -50,7 +50,7 @@ s32 daThrowstone_c::_create() { if (result == cPhs_COMPLEATE_e) { fopAcM_SetupActor(this, daThrowstone_c); - if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x4C0)) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x4C0)) { result = cPhs_ERROR_e; } else { mDoMtx_stack_c::transS(current.pos); diff --git a/src/m_Do/m_Do_dvd_thread.cpp b/src/m_Do/m_Do_dvd_thread.cpp index a4388ef98..01b497089 100644 --- a/src/m_Do/m_Do_dvd_thread.cpp +++ b/src/m_Do/m_Do_dvd_thread.cpp @@ -68,8 +68,8 @@ void mDoDvdThd_param_c::kick() { } /* 800180F0-80018118 .text waitForKick__17mDoDvdThd_param_cFv */ -s32 mDoDvdThd_param_c::waitForKick() { - OSReceiveMessage(&mMessageQueue, NULL, 1); +BOOL mDoDvdThd_param_c::waitForKick() { + return OSReceiveMessage(&mMessageQueue, NULL, 1); } /* 80018118-80018120 .text getFirstCommand__17mDoDvdThd_param_cFv */