Finished porting all actor classes to headers

This commit is contained in:
LagoLunatic
2023-11-25 23:53:05 -05:00
parent 30357c1712
commit 5039fe661c
59 changed files with 499 additions and 637 deletions
+1 -1
View File
@@ -87,7 +87,7 @@ namespace daBomb2 {
void set_no_hit();
bool chk_explode();
static int solidHeapCB(fopAc_ac_c*);
static BOOL solidHeapCB(fopAc_ac_c*);
bool create_heap_nut();
bool create_heap();
void crr_init();
+4
View File
@@ -8,6 +8,10 @@
#include "JSystem/JParticle/JPAEmitter.h"
#include "SSystem/SComponent/c_phase.h"
struct ep_ga_s {
};
class ep_class : public fopAc_ac_c {
public:
/* 0x290 */ request_of_phase_process_class mPhsLoad_Ep;
+14
View File
@@ -9,6 +9,20 @@
#include "m_Do/m_Do_ext.h"
#include "SSystem/SComponent/c_phase.h"
struct mo_ga_s {
/* 0x00 */ J3DModel* mpModel;
/* 0x04 */ cXyz mPos;
/* 0x10 */ cXyz m10;
/* 0x1C */ s16 mRotX;
/* 0x1E */ s16 mRotY;
/* 0x20 */ u8 m20[0x24 - 0x20];
/* 0x24 */ f32 mScale;
/* 0x28 */ f32 mScaleY;
/* 0x2C */ s16 m2C;
/* 0x2E */ u8 m2E;
/* 0x2F */ u8 m2F;
};
class kantera_class : public fopAc_ac_c {
public:
/* 0x290 */ request_of_phase_process_class mPhs;
+50 -7
View File
@@ -2,28 +2,71 @@
#define D_A_MOZO_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "m_Do/m_Do_ext.h"
#include "d/d_cc_d.h"
class daMozo_c : public fopAc_ac_c {
public:
typedef void(daMozo_c::*proc_t)(void);
void setProcess(void (daMozo_c::*)()) {}
void set_mtx();
s32 _create();
bool _delete();
bool _draw();
bool _execute();
void anime_proc();
void wait_proc_init();
void wait_proc();
void checkRange(int);
BOOL CreateHeap();
s32 CreateInit();
void event_move();
void getBeamActor(u32);
void search_beam_proc_init();
void search_beam_proc();
void search_fire_proc_init();
void search_fire_proc();
void towait_proc_init();
void towait_proc();
void checkRange(int);
void wait_proc_init();
void wait_proc();
void set_mtx();
void setAnm(int, float);
void getBeamActor(u32);
void event_move();
public:
/* Place member variables here */
// TODO: add offset comments
proc_t mCurrentProc;
request_of_phase_process_class mPhs;
mDoExt_McaMorf* mAnimMorf;
mDoExt_brkAnm mBrkAnm;
J3DAnmTevRegKey* m_brk;
mDoExt_btkAnm mBtkAnm;
J3DAnmTextureSRTKey* m_btk;
// TODO: insert missing members
Quaternion mQuatRotation;
dCcD_Stts mColStatus;
dCcD_Cps mCapsuleCol;
};
class daMozo_HIO_c {
public:
daMozo_HIO_c();
~daMozo_HIO_c() {}
};
class daMozo_childHIO_c {
public:
~daMozo_childHIO_c() {}
};
class daMozo_FireChildHIO_c {
public:
~daMozo_FireChildHIO_c() {}
};
class daMozo_BeamChildHIO_c {
public:
~daMozo_BeamChildHIO_c() {}
};
#endif /* D_A_MOZO_H */
+1 -1
View File
@@ -106,7 +106,7 @@ class daNh_HIO_c : public JORReflexible {
public:
daNh_HIO_c();
virtual ~daNh_HIO_c();
virtual ~daNh_HIO_c() {}
public:
/* 0x04 */ s8 mChildID;
+11 -3
View File
@@ -7,11 +7,19 @@
#include "SSystem/SComponent/c_phase.h"
class daObjAjavW_c : public fopAc_ac_c {
public:
s32 _create();
bool _execute();
bool _draw();
bool _delete();
bool create_heap();
static BOOL solidHeapCB(fopAc_ac_c *i_this);
public:
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel* mModel;
/* 0x29C */ mDoExt_btkAnm mBtk;
/* 0x2B0 */ dBgW* mBgW;
/* 0x298 */ J3DModel * mpModel;
/* 0x29C */ mDoExt_btkAnm mBtkAnm;
/* 0x2B0 */ dBgW * mpBgW;
};
#endif /* D_A_OBJ_AJAVW_H */
+8 -1
View File
@@ -9,13 +9,20 @@
class daObjVteng_c : public fopAc_ac_c {
public:
void init_mtx();
s32 _create();
bool _execute();
bool _draw();
bool _delete();
bool create_heap();
bool jokai_demo();
static BOOL solidHeapCB(fopAc_ac_c *i_this);
public:
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel* mpModel;
/* 0x29C */ mDoExt_McaMorf* mpMorf;
/* 0x2A0 */ dBgW* mpBgW;
/* 0x2A4 */ Mtx mMtx;
/* 0x2A4 */ Mtx mtx;
};
#endif /* D_A_OBJ_VTENG_H */
+14 -1
View File
@@ -2,6 +2,9 @@
#define D_A_OBJ_DRAGONHEAD_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_cc_d.h"
#include "d/d_bg_w.h"
class daObjDragonhead_c : public fopAc_ac_c {
public:
@@ -10,11 +13,21 @@ public:
inline BOOL _draw();
inline BOOL _execute();
BOOL CreateHeap();
void CreateInit();
void set_mtx();
public:
/* Place member variables here */
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel * mpModel;
/* 0x29C */ dCcD_Stts mStts;
/* 0x2D8 */ dCcD_Sph mSph;
/* 0x404 */ u8 mAlpha;
/* 0x405 */ bool mSwitchOn;
/* 0x408 */ dBgW * mpBgW;
/* 0x40C */ u8 field_0x40c;
/* 0x410 */ cXyz mSphCenter;
/* 0x41C */ Mtx mtx;
};
#endif /* D_A_OBJ_DRAGONHEAD_H */
+16 -2
View File
@@ -2,15 +2,29 @@
#define D_A_OBJ_EAYOGN_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
// #include "d/d_com_inf_game.h"
class daObjEayogn_c : public fopAc_ac_c {
public:
void check_ev_bit() const {}
// TODO: this function is marked as weak in the REL symbol map, but it does not get inlined for some reason?
// BOOL check_ev_bit() const { return dComIfGs_isSymbol(1); }
BOOL check_ev_bit() const;
s32 _create();
bool _execute();
bool _draw();
bool _delete();
BOOL create_heap();
static BOOL solidHeapCB(fopAc_ac_c *i_this);
void init_mtx();
static const char M_arcname[7];
public:
/* Place member variables here */
/* 0x290 */ J3DModel * mpModel;
/* 0x294 */ request_of_phase_process_class mPhs;
/* 0x2A0 */ dBgW * mpBgW;
};
#endif /* D_A_OBJ_EAYOGN_H */
+16 -1
View File
@@ -2,13 +2,28 @@
#define D_A_OBJ_HFUCK1_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_cc_d.h"
class daObjHfuck1_c : public fopAc_ac_c {
public:
void init_mtx();
s32 _create();
bool _execute();
bool _draw();
bool _delete();
bool create_heap();
bool checkCollision();
static BOOL solidHeapCB(fopAc_ac_c *i_this);
public:
/* Place member variables here */
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel * mpModel;
/* 0x29C */ dBgW * mpBgW;
/* 0x2A0 */ dCcD_Stts mStts;
/* 0x408 */ dCcD_Sph mSph;
/* 0x40C */ fopAc_ac_c * mpHookshotActor;
};
#endif /* D_A_OBJ_HFUCK1_H */
+43 -12
View File
@@ -3,10 +3,24 @@
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_lin_chk.h"
#include "d/d_bg_s_acch.h"
class daObj_Hole_c : public fopAc_ac_c {
public:
void modeProcInit(int) {}
enum Proc_e {
PROC_INIT = 0,
PROC_EXEC = 1
};
enum Mode {
MODE_WAIT = 0,
MODE_EVENT = 1,
MODE_NULL,
};
static const char m_arc_name[];
void modeProcInit(int newMode) { modeProc(PROC_INIT, newMode); }
void setMtx();
void getPosAndAngle();
@@ -14,22 +28,39 @@ public:
void modeWait();
void modeEventInit();
void modeEvent();
void modeProc(daObj_Hole_c::Proc_e mode, int i_nextState);
void modeProc(Proc_e proc, int newMode);
void debugDraw();
void createInit();
void getArg();
bool _execute();
bool _draw();
BOOL _createHeap();
s32 _create();
bool _delete();
public:
/* 0x290 */ int mState;
/* 0x294 */ u8 mbHasModel;
/* 0x295 */ u8 mSclsNum;
/* 0x296 */ s16 mScale;
/* 0x298 */ u8 m298[0x2A0 - 0x298];
/* 0x2A0 */ J3DModel* mpModel;
/* 0x2A4 */ dBgS_LinChk mLinChk;
/* 0x310 */ u8 m310[0x338 - 0x310];
/* 0x338 */ int m338;
/* 0x33C */ u8 m33C[0x800 - 0x33C];
/* 0x0290 */ s32 mMode;
/* 0x0294 */ u8 mHasModel;
/* 0x0295 */ u8 mExitIdx;
/* 0x0296 */ u16 mScaleLocal;
/* 0x0298 */ request_of_phase_process_class mPhs;
/* 0x02A0 */ J3DModel* mpMdl;
/* 0x02A4 */ dBgS_ObjLinChk mLinChk;
/* 0x0310 */ dBgS_ObjAcch mAcch;
/* 0x04D4 */ dBgS_AcchCir mAcchCir;
};
class daObj_Hole_HIO_c {
public:
daObj_Hole_HIO_c();
virtual ~daObj_Hole_HIO_c() {}
/* 0x04 */ s8 m04;
/* 0x05 */ u8 m05;
/* 0x08 */ f32 m08;
/* 0x0C */ s16 m0C;
/* 0x10 */ f32 m10;
};
#endif /* D_A_OBJ_HOLE_H */
+49 -8
View File
@@ -5,24 +5,65 @@
#include "d/d_cc_d.h"
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_msg.h"
#include "d/d_a_obj.h"
namespace daObjPaper {
enum Type_e {
Opaper_e,
Ppos_e,
Piwa_e,
};
class Act_c : public fopAc_ac_c {
public:
void prm_get_msgNo() const {}
void prm_get_type() const {}
enum Prm_e {
PRM_MSG_NO_W = 0x10,
PRM_MSG_NO_S = 0x00,
PRM_TYPE_W = 0x04,
PRM_TYPE_S = 0x10,
};
enum Act_Mode_e {
ActMode_WAIT_e,
ActMode_TALKBEGIN_e,
ActMode_GETMSG_e,
ActMode_TALKWAIT_e,
};
u32 prm_get_msgNo() const { return daObj::PrmAbstract<Prm_e>(this, PRM_MSG_NO_W, PRM_MSG_NO_S); }
Type_e prm_get_type() const { return (Type_e)daObj::PrmAbstract<Prm_e>(this, PRM_TYPE_W, PRM_TYPE_S); }
static const dCcD_SrcCyl M_cyl_src;
static int solidHeapCB(fopAc_ac_c*);
bool create_heap();
s32 _create();
bool _delete();
void mode_wait_init();
void mode_wait();
void mode_talk0_init();
void mode_talk0();
void mode_talk1_init();
void mode_talk1();
void mode_talk2_init();
void mode_talk2();
void set_mtx();
void init_mtx();
void damage_cc_proc();
bool _execute();
bool _draw();
public:
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel* mpModel;
/* 0x29C */ dCcD_Cyl mCyl;
/* 0x3CC */ dCcD_Stts mStts;
/* 0x408 */ u8 mbHasCc;
/* 0x409 */ u8 m409[0x40C - 0x409];
/* 0x29C */ dCcD_Cyl mCylinderCol;
/* 0x3CC */ dCcD_Stts mColStatus;
/* 0x408 */ bool mbHasCc;
/* 0x40C */ int mMode;
/* 0x410 */ int mMsgId;
/* 0x410 */ u32 mMsgId;
/* 0x414 */ msg_class* mpMsg;
/* 0x418 */ int mType;
/* 0x418 */ Type_e mType;
};
};
+13 -1
View File
@@ -5,7 +5,19 @@
class d_a_scene_change_c : public fopAc_ac_c {
public:
/* Place member variables here */
/* 0x290 */ Mtx mTransformMtx;
};
class daSceneChgHIO_c {
public:
daSceneChgHIO_c();
virtual ~daSceneChgHIO_c() {
m0004 = -1;
}
s8 m0004;
s8 m0005;
f32 m0008;
};
#endif /* D_A_SCENE_CHANGE_H */
+9 -1
View File
@@ -8,10 +8,18 @@
#include "m_Do/m_Do_ext.h"
#include "c/c_damagereaction.h"
struct st_p {
};
struct st_ke_s {
};
class st_class : public fopAc_ac_c {
public:
/* 0x02AC */ u8 m02AC[0x02B4 - 0x02AC];
/* 0x02B4 */ daSt__BehaviorTypes mBehaviorType;
/* 0x02B4 */ u8 mBehaviorType;
/* 0x02B5 */ u8 mAmbushSightRange;
/* 0x02B6 */ u8 mUnusedParam;
/* 0x02B7 */ u8 mAmbushSwitch;
+1 -1
View File
@@ -21,7 +21,7 @@ public:
s32 getTimer();
s32 getSwNo2();
s32 CreateHeap();
BOOL CreateHeap();
void decisionRtType();
s32 CreateInit();
+16 -1
View File
@@ -3,15 +3,30 @@
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
class daSwItem_c : public fopAc_ac_c {
public:
bool _delete();
BOOL CreateInit();
s32 _create();
bool _execute();
BOOL isRupeeInAllCreateTable(int);
bool _draw();
public:
/* 0x290 */ u8 m290[0x29C - 0x290];
/* 0x29C */ dCcD_Stts mStts;
/* 0x2D8 */ dCcD_Cyl mCyl;
/* 0x408 */ u8 mAtTypeTrigger;
/* 0x409 */ bool m409;
/* 0x409 */ bool mSpawnedItem;
/* 0x40A */ u8 m40A[0x40C - 0x40A];
};
namespace daSwItem_prm {
inline u32 getAtType(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x00) & 0xFF; }
inline u32 getItemTbl(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x08) & 0x3F; }
inline u32 getItemBitNo(daSwItem_c* item) { return (fopAcM_GetParam(item) >> 0x0E) & 0x7F; }
}
#endif /* D_A_SWITEM_H */
+23 -6
View File
@@ -3,23 +3,40 @@
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor_mng.h"
class daSwTact_c : public fopAc_ac_c {
public:
void getR() {}
f32 getR() { return mRadius * mScale.x; }
bool _delete();
BOOL CreateHeap();
void CreateInit();
void set_mtx();
s32 getAnswer();
s32 _create();
bool _execute();
bool _draw();
static const char * m_arcname;
static const f32 mDefaultR;
static const f32 mDefaultRwM;
static const u32 m_heapsize;
public:
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel* mpModel;
/* 0x298 */ J3DModel * model;
/* 0x29C */ f32 mRadius;
/* 0x2A0 */ u32 m2A0;
/* 0x2A0 */ u32 mSwitchNo;
/* 0x2A4 */ u8 mAnswer;
/* 0x2A5 */ u8 m2A5;
/* 0x2A6 */ u8 m2A6;
/* 0x2A7 */ u8 m2A7[0x2A8 - 0x2A7];
/* 0x2A5 */ bool mTrigger;
/* 0x2A6 */ u8 mPlayerStatus;
};
namespace daSwTact_prm {
inline u32 getSwitchNo(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 0) & 0xFF; }
inline u32 getAnswer(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
inline u32 getModel(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 16) & 0x0F; }
}
#endif /* D_A_SWTACT_H */
+18 -2
View File
@@ -5,13 +5,29 @@
class daTag_Msg_c : public fopAc_ac_c {
public:
typedef BOOL (ActionFunc)(daTag_Msg_c*);
inline s32 create();
inline BOOL draw();
inline BOOL execute();
void setActio(unsigned char) {}
void setActio(u8 action) { mAction = action; }
u32 getEventNo();
u32 getSwbit();
u32 getSwbit2();
u32 getType2();
const char* myDemoName();
u16 getMessage();
u16 getEventFlag();
BOOL arrivalTerms();
int rangeCheck();
int otherCheck();
public:
/* 0x290 */ u8 m290[0x294 - 0x290];
/* 0x290 */ u8 mAction;
/* 0x291 */ u8 field_0x291;
/* 0x292 */ u8 field_0x292;
/* 0x293 */ u8 field_0x293;
};
#endif /* D_A_TAG_MSG_H */
+3 -2
View File
@@ -10,6 +10,7 @@
#include "d/d_particle.h"
#include "d/d_bg_s_acch.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_hostIO.h"
class daTbox_c : public fopAc_ac_c {
public:
@@ -54,7 +55,7 @@ public:
s32 getShapeType();
s32 getFuncType();
BOOL checkNormal();
s32 CreateHeap();
BOOL CreateHeap();
void CreateInit();
s32 boxCheck();
void lightUpProc();
@@ -120,7 +121,7 @@ public:
/* 0x76C */ u8 mOpenedSwitch;
};
class daTbox_HIO_c {
class daTbox_HIO_c : public JORReflexible {
public:
daTbox_HIO_c();
virtual ~daTbox_HIO_c() { }
-1
View File
@@ -344,7 +344,6 @@ public:
bool ChkCoHitNoActor() const { return mGObjCo.ChkRPrm(1); }
bool ChkAtHitNoActor() const { return mGObjAt.ChkRPrm(2); }
bool ChkTgHitNoActor() const { return mGObjTg.ChkRPrm(1); }
bool ChkTgWolfSpNoDamage() { return mGObjTg.ChkSPrm(0x800); }
bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(2); }
bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(4); }
bool ChkTgHookShotNoHitMark() { return mGObjTg.ChkSPrm(0x400); }
+23
View File
@@ -0,0 +1,23 @@
#ifndef D_THROWSTONE_H
#define D_THROWSTONE_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
class daThrowstone_c : public fopAc_ac_c {
public:
BOOL CreateHeap();
inline s32 _create();
inline BOOL _delete();
inline BOOL _execute();
inline bool _draw();
static const char M_arcname[5];
public:
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel * mpModel;
/* 0x29C */ Mtx mMtx;
};
#endif /* D_THROWSTONE_H */
-3
View File
@@ -382,8 +382,6 @@ s32 fopAcM_createChildFromOffset(s16 procName, unsigned int parentProcID, u32 ac
void fopAcM_DeleteHeap(fopAc_ac_c* p_actor);
s32 fopAcM_callCallback(fopAc_ac_c* p_actor, heapCallbackFunc p_callbackFunc, JKRHeap* p_heap);
bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size);
inline void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ) {
@@ -428,7 +426,6 @@ f32 fopAcM_searchActorDistanceXZ2(fopAc_ac_c* p_actorA, fopAc_ac_c* p_actorB);
s32 fopAcM_rollPlayerCrash(fopAc_ac_c* i_this, f32 distAdjust, u32 flag);
s32 fopAcM_checkCullingBox(Mtx, f32, f32, f32, f32, f32, f32);
s32 fopAcM_cullingCheck(fopAc_ac_c*);
void* event_second_actor(u16);
s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*);
s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor);
s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*);