summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJulian Maynes <80068880+julianmaynes16@users.noreply.github.com>2025-11-29 00:55:42 -0800
committerGitHub <noreply@github.com>2025-11-29 00:55:42 -0800
commit72c37de758cd3e2fa754fc3a961dda64a8500e44 (patch)
tree117574139100856681c62d1c578fc3737590bca5 /include
parentda03a43cef8fd2b77b53dacc717f105ae5af3535 (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.h44
-rw-r--r--include/d/d_cc_d.h3
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); }