diff options
| author | Julian Maynes <80068880+julianmaynes16@users.noreply.github.com> | 2025-11-29 00:55:42 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-29 00:55:42 -0800 |
| commit | 72c37de758cd3e2fa754fc3a961dda64a8500e44 (patch) | |
| tree | 117574139100856681c62d1c578fc3737590bca5 /include | |
| parent | da03a43cef8fd2b77b53dacc717f105ae5af3535 (diff) | |
D_a_e_mm_mt 99% matching (#2881)
* do draw, smbindeffect, isdelete, delete, most of heapinit
* Fix lowercase hex
* fix style
* Add spaces after if
* Do most of drop and carry
* Almost done
* Finish normal
* Get functions to mostly regalloc + a few compiler quirks.
* fix up comments
* Fix all issues and get everything to 100
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_e_mm_mt.h | 44 | ||||
| -rw-r--r-- | include/d/d_cc_d.h | 3 |
2 files changed, 44 insertions, 3 deletions
diff --git a/include/d/actor/d_a_e_mm_mt.h b/include/d/actor/d_a_e_mm_mt.h index 27b607bc59..922eda47b3 100644 --- a/include/d/actor/d_a_e_mm_mt.h +++ b/include/d/actor/d_a_e_mm_mt.h @@ -1,6 +1,9 @@ #ifndef D_A_E_MM_MT_H #define D_A_E_MM_MT_H #include "f_op/f_op_actor_mng.h" +#include "d/d_cc_uty.h" +#include "d/actor/d_a_e_mm.h" + /** * @ingroup actors-enemies @@ -10,9 +13,44 @@ * @details * */ -class e_mm_mt_class : public fopEn_enemy_c { -private: - /* 0x5ac */ u8 field_0x5ac[0xba4 - 0x5ac]; +class e_mm_mt_class { +public: + /* 0x000 */ fopEn_enemy_c enemy; + /* 0x5AC */ request_of_phase_process_class m_phase; + /* 0x5B4 */ Z2CreatureEnemy m_sound; + /* 0x658 */ u8 parameters; + /* 0x65A */ u8 field_0x65A[3]; + /* 0x65C */ J3DModel* mp_model; + /* 0x660 */ u32 m_shadowKey; + /* 0x664 */ s16 m_lifetime; + /* 0x666 */ s16 m_action; + /* 0x668 */ s16 m_mode; + /* 0x66A */ u8 field_0x66A[0x672 - 0x66A]; + /* 0x672 */ s8 field_0x672; + /* 0x673 */ u8 field_0x673; + /* 0x674 */ cXyz field_0x674; + /* 0x680 */ u8 field_0x680[0x684 - 0x680]; + /* 0x684 */ s16 m_timer[2]; + /* 0x688 */ s16 m_invulnerabilityTimer; + /* 0x68A */ bool field_0x68A[2]; + /* 0x68C */ csXyz m_rotation; + /* 0x692 */ s16 m_carryAngleSpeed; + /* 0x694 */ s16 m_carryAngle; + /* 0x696 */ u8 field_0x696[0x698 - 0x696]; + /* 0x698 */ int field_0x698; + /* 0x69C */ f32 field_0x69C; + /* 0x6A0 */ s16 field_0x6A0; + /* 0x6A2 */ s16 field_0x6A2; + /* 0x6A4 */ s16 m_spin; + /* 0x6A6 */ u8 field_0x6A6[0x6A8 - 0x6A6]; + /* 0x6A8 */ f32 field_0x6A8; + /* 0x6AC */ dBgS_AcchCir m_acchCir; + /* 0x6EC */ dBgS_ObjAcch m_acch; + /* 0x8C4 */ dCcD_Stts m_stts; + /* 0x900 */ dCcD_Sph m_sphere; + /* 0xA38 */ dCcD_Sph m_sph; + /* 0xB70 */ dCcU_AtInfo m_atInfo; + /* 0xB94 */ u8 field_0xB94[0xBA4 - 0xB94]; }; STATIC_ASSERT(sizeof(e_mm_mt_class) == 0xba4); diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 590f299728..748ec3124d 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -210,6 +210,7 @@ public: cXyz* GetRVecP() { return &mRVec; } void SetHitPos(cXyz& pos) { mHitPos = pos; } cXyz* GetHitPosP() { return &mHitPos; } + u8 GetSe() { return mSe; } private: /* 0x1C */ u8 mSe; @@ -408,11 +409,13 @@ public: void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); } void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } + u8 GetTgSe() { return mGObjTg.GetSe(); } u32 GetTgHitObjHitSeID(int i_soundID) { return getHitSeID(GetTgHitObjSe(),i_soundID); } cXyz* GetAtHitPosP() { return mGObjAt.GetHitPosP(); } cXyz* GetTgHitPosP() { return mGObjTg.GetHitPosP(); } cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); } bool ChkTgHookshotThrough() { return mGObjTg.ChkSPrm(0x80); } + void OffTgHookShotNoHitMark() {mGObjTg.OffSPrm(0x400);} bool ChkTgShieldHit() { return mGObjTg.ChkRPrm(2); } void OffTgNoAtHitInfSet() { mObjTg.OffSPrmBit(0x20); } bool ChkTgSpinnerReflect() { return mGObjTg.ChkSPrm(0x200); } |
