diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-12-17 01:16:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-16 15:16:19 -0800 |
| commit | c5ab943cfc057be3c9310e93e27fc62a2be9cbeb (patch) | |
| tree | c17725e2c7f4262e7a1fa4e15f2dde8a1129960e /include/d | |
| parent | ee992eb80c798a3c3cec73fb785edf6852fbd259 (diff) | |
d_a_obj_cb almost matching (#2265)
* d_a_obj_cb almost matching
* d_a_obj_bubblePillar OK
* Work on d_a_obj_fchain
* d_a_obj_gb OK
* daTimeFire_c OK
* d_a_obj_toaru_maki OK
* d_a_obj_ten OK
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/actor/d_a_obj_bubblePilar.h | 50 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_cb.h | 29 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_fchain.h | 29 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_gb.h | 24 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_ten.h | 63 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_timeFire.h | 35 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_toaru_maki.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 3 | ||||
| -rw-r--r-- | include/d/d_insect.h | 2 |
9 files changed, 191 insertions, 46 deletions
diff --git a/include/d/actor/d_a_obj_bubblePilar.h b/include/d/actor/d_a_obj_bubblePilar.h index acf2056196..5db9043d57 100644 --- a/include/d/actor/d_a_obj_bubblePilar.h +++ b/include/d/actor/d_a_obj_bubblePilar.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_BUBBLEPILAR_H #define D_A_OBJ_BUBBLEPILAR_H +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,32 +13,58 @@ * @details * */ -class daBubbPilar_c : public fopAc_ac_c { +class daBubbPilar_c : public dBgS_MoveBgActor { public: + typedef void (daBubbPilar_c::*modeProc)(); + + enum Mode { + MODE_WAIT, + MODE_EFF_ON, + }; + /* 80BC3460 */ void setBaseMtx(); - /* 80BC3518 */ void CreateHeap(); - /* 80BC35D0 */ void create(); - /* 80BC3934 */ void Execute(f32 (**)[3][4]); + /* 80BC3518 */ int CreateHeap(); + /* 80BC35D0 */ int create(); + /* 80BC3934 */ int Execute(Mtx**); /* 80BC3AB8 */ void initModeWait(); /* 80BC3AC4 */ void modeWait(); /* 80BC3C74 */ void initModeEffOn(); /* 80BC3C98 */ void modeEffOn(); - /* 80BC3DB0 */ void Draw(); - /* 80BC3E8C */ void Delete(); + /* 80BC3DB0 */ int Draw(); + /* 80BC3E8C */ int Delete(); - static u8 const mCcDObjInfo[48]; - static u8 mCcDCyl[68]; + u8 getArg0() { return fopAcM_GetParamBit(this, 8, 4); } + u8 getSw() { return fopAcM_GetParamBit(this, 0, 8); } + + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; private: - /* 0x568 */ u8 field_0x568[0x750 - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mModels[2]; + /* 0x5B0 */ dCcD_Stts mStts; + /* 0x5EC */ dCcD_Cyl mCyl; + /* 0x728 */ u8 field_0x728; + /* 0x729 */ u8 mMode; + /* 0x72A */ u8 mSw; + /* 0x72B */ u8 mArg0; + /* 0x72C */ u8 mIsSw; + /* 0x72D */ u8 mModelMode; + /* 0x72E */ s16 field_0x72e; + /* 0x730 */ int mEmitterIds[3]; + /* 0x73C */ int mEmitterId; + /* 0x740 */ JPABaseEmitter* mEmitters[4]; }; STATIC_ASSERT(sizeof(daBubbPilar_c) == 0x750); -class daBubbPilar_HIO_c { +class daBubbPilar_HIO_c : public mDoHIO_entry_c { public: /* 80BC33EC */ daBubbPilar_HIO_c(); - /* 80BC3F90 */ ~daBubbPilar_HIO_c(); + /* 80BC3F90 */ virtual ~daBubbPilar_HIO_c() {}; + + u8 field_0x4; + u8 field_0x5; }; diff --git a/include/d/actor/d_a_obj_cb.h b/include/d/actor/d_a_obj_cb.h index 2732c674d8..ab5e494601 100644 --- a/include/d/actor/d_a_obj_cb.h +++ b/include/d/actor/d_a_obj_cb.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_CB_H #define D_A_OBJ_CB_H +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" /** @@ -12,8 +14,27 @@ * */ class obj_cb_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x97c - 0x568]; +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mModel; + /* 0x574 */ Z2SoundObjSimple mSoundObj; + /* 0x594 */ s16 field_0x594; + /* 0x596 */ s16 field_0x596; + /* 0x598 */ s16 field_0x598[2]; + /* 0x59C */ s16 field_0x59c; + /* 0x59E */ s16 field_0x59e; + /* 0x5A0 */ csXyz field_0x5a0; + /* 0x5A8 */ f32 field_0x5a8; + /* 0x5AC */ dBgS_AcchCir mAcchCir; + /* 0x5EC */ dBgS_ObjAcch mAcch; + /* 0x7C4 */ int field_0x7c4; + /* 0x7C8 */ Mtx mBgMtx; + /* 0x7F8 */ dBgW* mBgW; + /* 0x7FC */ dCcD_Stts mStts; + /* 0x838 */ dCcD_Sph mSph; + /* 0x970 */ u32 field_0x970; + /* 0x974 */ u32 field_0x974; + /* 0x978 */ u8 field_0x978; }; STATIC_ASSERT(sizeof(obj_cb_class) == 0x97c); @@ -21,7 +42,9 @@ STATIC_ASSERT(sizeof(obj_cb_class) == 0x97c); class daObj_Cb_HIO_c { public: /* 80BC4B2C */ daObj_Cb_HIO_c(); - /* 80BC573C */ ~daObj_Cb_HIO_c(); + /* 80BC573C */ virtual ~daObj_Cb_HIO_c() {} + + s8 field_0x4; }; diff --git a/include/d/actor/d_a_obj_fchain.h b/include/d/actor/d_a_obj_fchain.h index 016c6c0938..05567d1a59 100644 --- a/include/d/actor/d_a_obj_fchain.h +++ b/include/d/actor/d_a_obj_fchain.h @@ -3,10 +3,10 @@ #include "f_op/f_op_actor_mng.h" -class daObjFchain_shape_c { +class daObjFchain_shape_c : public J3DPacket { public: - /* 80BE7194 */ void draw(); - /* 80BE73D4 */ ~daObjFchain_shape_c(); + /* 80BE7194 */ virtual void draw(); + /* 80BE73D4 */ virtual ~daObjFchain_shape_c() {} }; /** @@ -19,16 +19,29 @@ public: */ class daObjFchain_c : public fopAc_ac_c { public: - /* 80BE5FF8 */ void createHeap(); - /* 80BE6074 */ void create(); + /* 80BE5FF8 */ int createHeap(); + /* 80BE6074 */ int create(); /* 80BE63C8 */ ~daObjFchain_c(); /* 80BE64E0 */ void checkPlayerFoot(cXyz const*, cXyz const*, cXyz*); /* 80BE66B4 */ void setGroundVec(cXyz*, f32); - /* 80BE6868 */ void execute(); - /* 80BE7324 */ void draw(); + /* 80BE6868 */ int execute(); + /* 80BE7324 */ int draw(); + + cXyz* getPos() { return field_0x694; } + csXyz* getAngle() { return field_0x8a4; } + J3DModelData* getModelData() { return mModelData; } private: - /* 0x568 */ u8 field_0x568[0x928 - 0x568]; + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModelData* mModelData; + /* 0x574 */ daObjFchain_shape_c mShape; + /* 0x584 */ s16 field_0x584; + /* 0x586 */ u16 field_0x586; + /* 0x588 */ s16 field_0x588; + /* 0x58C */ cXyz field_0x58c[22]; + /* 0x694 */ cXyz field_0x694[22]; + /* 0x79C */ cXyz field_0x79c[22]; + /* 0x8A4 */ csXyz field_0x8a4[22]; }; STATIC_ASSERT(sizeof(daObjFchain_c) == 0x928); diff --git a/include/d/actor/d_a_obj_gb.h b/include/d/actor/d_a_obj_gb.h index d1e1f9968a..3f5a354f5e 100644 --- a/include/d/actor/d_a_obj_gb.h +++ b/include/d/actor/d_a_obj_gb.h @@ -1,7 +1,10 @@ #ifndef D_A_OBJ_GB_H #define D_A_OBJ_GB_H -#include "f_op/f_op_actor_mng.h" +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor.h" + +class dBgW; /** * @ingroup actors-objects @@ -12,8 +15,23 @@ * */ class obj_gb_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x6bc - 0x568]; +public: + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mModel; + /* 0x574 */ mDoExt_btkAnm* mBtk; + /* 0x578 */ mDoExt_brkAnm* mBrk; + /* 0x57C */ u8 field_0x57c; + /* 0x57D */ u8 mColorAlpha; + /* 0x580 */ int mSw1; + /* 0x584 */ int mSw2; + /* 0x588 */ s16 mIsFinalBattle; + /* 0x58A */ s16 field_0x58a[2]; + /* 0x58E */ s16 field_0x58e; + /* 0x58E */ f32 mBrkFrame; + /* 0x594 */ cXyz field_0x594[20]; + /* 0x684 */ f32 field_0x684; + /* 0x688 */ Mtx mBgMtx; + /* 0x6B8 */ dBgW* mpBgW; }; STATIC_ASSERT(sizeof(obj_gb_class) == 0x6bc); diff --git a/include/d/actor/d_a_obj_ten.h b/include/d/actor/d_a_obj_ten.h index 5b8d704f5f..616a0a9fc5 100644 --- a/include/d/actor/d_a_obj_ten.h +++ b/include/d/actor/d_a_obj_ten.h @@ -1,6 +1,10 @@ #ifndef D_A_OBJ_TEN_H #define D_A_OBJ_TEN_H +#include "d/actor/d_a_player.h" +#include "d/d_bg_s_acch.h" +#include "d/d_bg_s_gnd_chk.h" +#include "d/d_cc_d.h" #include "d/d_insect.h" /** @@ -11,12 +15,18 @@ * @details * */ -class daObjTEN_c : public fopAc_ac_c { +class daObjTEN_c : public dInsect_c { public: + enum Action { + ACTION_WAIT, + ACTION_MOVE, + ACTION_WALK, + }; + /* 80D087F4 */ void InitCcSph(); /* 80D08860 */ void SetCcSph(); /* 80D08C10 */ void WaitAction(); - /* 80D08D94 */ void WallCheck(); + /* 80D08D94 */ BOOL WallCheck(); /* 80D09008 */ void SpeedSet(); /* 80D09114 */ void WallWalk(); /* 80D09548 */ void WalkAction(); @@ -24,19 +34,48 @@ public: /* 80D09F58 */ void Action(); /* 80D0A01C */ void ShopAction(); /* 80D0A0D8 */ void checkGroundPos(); - /* 80D0A13C */ void Insect_Release(); + /* 80D0A13C */ virtual void Insect_Release(); /* 80D0A154 */ void ParticleSet(); /* 80D0A278 */ void BoomChk(); - /* 80D0A644 */ void Execute(); + /* 80D0A644 */ int Execute(); /* 80D0A8C8 */ void ObjHit(); /* 80D0AA50 */ void Z_BufferChk(); - /* 80D0ABCC */ void Delete(); + /* 80D0ABCC */ int Delete(); /* 80D0AC34 */ void setBaseMtx(); - /* 80D0AD9C */ void CreateChk(); - /* 80D0AF48 */ void create(); + /* 80D0AD9C */ bool CreateChk(); + /* 80D0AF48 */ int create(); -private: - /* 0x568 */ u8 field_0x568[0xa68 - 0x568]; + /* 0x590 */ dBgS_GndChk mGndChk; + /* 0x5E4 */ f32 field_0x5e4; + /* 0x5E8 */ u8 mAction; + /* 0x5E9 */ u8 field_0x5e9; + /* 0x5EA */ s16 field_0x5ea[3]; + /* 0x5F0 */ f32 field_0x5f0; + /* 0x5F4 */ f32 field_0x5f4; + /* 0x5F8 */ s16 field_0x5f8; + /* 0x5EC */ u8 field_0x5fa[0x602 - 0x5fa]; + /* 0x602 */ csXyz field_0x602; + /* 0x608 */ s16 field_0x608; + /* 0x60A */ s16 field_0x60a; + /* 0x60C */ u8 field_0x60c; + /* 0x60D */ u8 field_0x60d; + /* 0x610 */ mDoExt_brkAnm* mBrk; + /* 0x614 */ mDoExt_btkAnm* mBtk; + /* 0x618 */ f32 field_0x618; + /* 0x61C */ u32 field_0x61c; + /* 0x620 */ f32 mParticleScale; + /* 0x624 */ u8 field_0x624; + /* 0x628 */ dCcD_Stts mStts; + /* 0x664 */ dCcD_Sph mSph; + /* 0x79C */ daPy_boomerangMove_c mBoomerang; + /* 0x7A8 */ u8 field_0x7a8; + /* 0x7AC */ dBgS_ObjAcch mAcch; + /* 0x984 */ dBgS_AcchCir mAcchCir; + /* 0x9C4 */ Z2Creature mCreature; + /* 0xA54 */ int field_0xa54; + /* 0xA58 */ mDoExt_McaMorfSO* mMorf; + /* 0xA5C */ request_of_phase_process_class mPhase; + /* 0xA64 */ u8 field_0xa64; }; STATIC_ASSERT(sizeof(daObjTEN_c) == 0xa68); @@ -44,7 +83,11 @@ STATIC_ASSERT(sizeof(daObjTEN_c) == 0xa68); class daObj_TenHIO_c { public: /* 80D087CC */ daObj_TenHIO_c(); - /* 80D0B848 */ ~daObj_TenHIO_c(); + /* 80D0B848 */ virtual ~daObj_TenHIO_c() {} + + s8 field_0x4; + f32 field_0x8; + f32 field_0xc; }; diff --git a/include/d/actor/d_a_obj_timeFire.h b/include/d/actor/d_a_obj_timeFire.h index a39026b0d0..25c3f4d491 100644 --- a/include/d/actor/d_a_obj_timeFire.h +++ b/include/d/actor/d_a_obj_timeFire.h @@ -14,25 +14,44 @@ class daTimeFire_c : public fopAc_ac_c { public: /* 80D0E958 */ void setBaseMtx(); - /* 80D0E9B0 */ void create(); + /* 80D0E9B0 */ int create(); /* 80D0EACC */ void lightInit(); /* 80D0EB40 */ void setLight(); /* 80D0EB64 */ void cutLight(); - /* 80D0EB88 */ void Execute(); - /* 80D0ED68 */ void fireCheck(u8); - /* 80D0EF88 */ bool Draw(); - /* 80D0EF90 */ void Delete(); + /* 80D0EB88 */ int Execute(); + /* 80D0ED68 */ bool fireCheck(u8); + /* 80D0EF88 */ int Draw(); + /* 80D0EF90 */ int Delete(); + + int getSw() { return fopAcM_GetParamBit(this, 0, 8); } + u8 getStartTime() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getEndTime() { return fopAcM_GetParamBit(this, 16, 8); } + u8 getScale() { return fopAcM_GetParamBit(this, 24, 8); } private: - /* 0x568 */ u8 field_0x568[0x5c0 - 0x568]; + /* 0x568 */ u8 field_0x568; + /* 0x569 */ u8 field_0x569; + /* 0x56A */ u8 mStartTime; + /* 0x56B */ u8 mEndTime; + /* 0x56C */ bool field_0x56c; + /* 0x56D */ bool field_0x56d; + /* 0x570 */ cXyz field_0x570; + /* 0x57C */ cXyz mParticleScale; + /* 0x588 */ int mParticleId1; + /* 0x58c */ int mParticleId2; + /* 0x590 */ int mParticleId3; + /* 0x594 */ cXyz field_0x594; + /* 0x5A0 */ LIGHT_INFLUENCE mLightInfluence; }; STATIC_ASSERT(sizeof(daTimeFire_c) == 0x5c0); -class daTimeFire_HIO_c { +class daTimeFire_HIO_c : public mDoHIO_entry_c { public: /* 80D0E8EC */ daTimeFire_HIO_c(); - /* 80D0F038 */ ~daTimeFire_HIO_c(); + /* 80D0F038 */ virtual ~daTimeFire_HIO_c() {} + + u8 field_0x4; }; diff --git a/include/d/actor/d_a_obj_toaru_maki.h b/include/d/actor/d_a_obj_toaru_maki.h index 1625eabc30..32b1183065 100644 --- a/include/d/actor/d_a_obj_toaru_maki.h +++ b/include/d/actor/d_a_obj_toaru_maki.h @@ -27,7 +27,7 @@ public: private: /* 0x574 */ J3DModel* mpModel; - /* 0x578 */ s32 field_0x578; + /* 0x578 */ dBgW* mpBgW; /* 0x57C */ Mtx mMtx; }; diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index cc948dc7a8..cf3e5484e5 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -463,7 +463,7 @@ public: ERFLG0_UNK_80000000 = 0x80000000, ERFLG0_UNK_40000000 = 0x40000000, ERFLG0_UNK_20000000 = 0x20000000, - ERFLG0_UNK_10000000 = 0x10000000, + ERFLG0_WOLF_FCHAIN_PULL = 0x10000000, ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_4000000 = 0x4000000, ERFLG0_BOSS_ROOM_WAIT = 0x2000000, @@ -920,6 +920,7 @@ public: void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); } + void onWolfFchainPull() { onEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL); } void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); } void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); } void onPortalWarpMidnaAtnKeep() { onEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP); } diff --git a/include/d/d_insect.h b/include/d/d_insect.h index 57256b6e96..8d2b109cdb 100644 --- a/include/d/d_insect.h +++ b/include/d/d_insect.h @@ -26,7 +26,7 @@ public: void setItemNo(u8 i_itemNo) { m_itemNo = i_itemNo; } void setSaveBitNo(s16 i_saveBitNo) { m_saveBitNo = i_saveBitNo; } -protected: +public: /* 0x56C */ u8 field_0x56C; /* 0x56D */ bool mDraw; /* 0x570 */ u32 mParticleKey1; |
