summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2023-11-25 18:05:07 -0500
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2023-11-25 18:05:07 -0500
commit897b22f9369b4b06eb8eb261ea6563f2dd91a223 (patch)
tree7fa49889730cfa094294fa4a1cf2c16858236ab9
parent4a496727a9f7bcfb69e22de284af65d62d377723 (diff)
Move more actor classes to headers
-rw-r--r--include/d/actor/d_a_alldie.h10
-rw-r--r--include/d/actor/d_a_branch.h2
-rw-r--r--include/d/actor/d_a_disappear.h4
-rw-r--r--include/d/actor/d_a_movie_player.h4
-rw-r--r--include/d/actor/d_a_obj_akabe.h40
-rw-r--r--include/d/actor/d_a_obj_cafelmp.h5
-rw-r--r--include/d/actor/d_a_obj_homensmoke.h21
-rw-r--r--include/d/actor/d_a_obj_pbka.h5
-rw-r--r--include/d/actor/d_a_tbox.h152
-rw-r--r--include/m_Do/m_Do_dvd_thread.h2
-rw-r--r--src/d/actor/d_a_alldie.cpp58
-rw-r--r--src/d/actor/d_a_arrow.cpp2
-rw-r--r--src/d/actor/d_a_branch.cpp4
-rw-r--r--src/d/actor/d_a_disappear.cpp25
-rw-r--r--src/d/actor/d_a_ib.cpp6
-rw-r--r--src/d/actor/d_a_obj_akabe.cpp43
-rw-r--r--src/d/actor/d_a_obj_cafelmp.cpp22
-rw-r--r--src/d/actor/d_a_obj_homensmoke.cpp23
-rw-r--r--src/d/actor/d_a_obj_monument.cpp2
-rw-r--r--src/d/actor/d_a_obj_pbka.cpp35
-rw-r--r--src/d/actor/d_a_tbox.cpp383
-rw-r--r--src/d/d_s_title.cpp7
-rw-r--r--src/d/d_throwstone.cpp4
-rw-r--r--src/m_Do/m_Do_dvd_thread.cpp4
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 572ed9d7..283cba49 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 7820cbc8..5ad82325 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 2326b6de..9d10d9bf 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 8337bcc4..448896d4 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 190eef44..b6fe5f65 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 4269a8dd..a92b8f5f 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 f056ed87..58b21d06 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 1a8912b4..d187852e 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 69834062..796eb31b 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 6480683e..02410d32 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 67ceaf20..3678768e 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 612bdff2..0ad2e61a 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 266f7ed7..80939974 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<daBranch_c*>(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 d5e0922a..c75ce3d8 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 6e1ac1c6..a4bbb53c 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<daIball_c*>(i_this)->CreateHeap();
+static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
+ return static_cast<daIball_c*>(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 a69ca17d..ca89a7a8 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 672552a5..e89e5d67 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, &current.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 be80ba7d..09456403 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 b25bf55f..f28f0379 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 d67fc978..6253a8b3 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, &current.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 08b5fed5..be383557 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, &current.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, &current.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 aa13e7d4..f6695def 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 a28df76c..eb12db2e 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 a4388ef9..01b49708 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 */