diff options
| author | Niklas Bauer <nikbau2000@gmail.com> | 2025-05-05 21:44:46 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-05 15:44:46 +0300 |
| commit | 8d167fc32fe36fb9557a90b5fa7e8cd8aebf21cd (patch) | |
| tree | 6569571b13da155b8668e9a56220668d89898451 /include | |
| parent | 30799716df96869dc63663d5378082898e5e0ea3 (diff) | |
d_a_e_sg Matching (#2421)
* d_a_e_sg first pass
* d_a_e_sg equivalent
* d_a_e_sg matching
* d_a_e_sg cleanup
* d_a_e_sg comments
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_e_sg.h | 80 | ||||
| -rw-r--r-- | include/d/actor/d_a_mg_rod.h | 12 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_kbox.h | 9 |
3 files changed, 87 insertions, 14 deletions
diff --git a/include/d/actor/d_a_e_sg.h b/include/d/actor/d_a_e_sg.h index 15781e0d49..cd408f0459 100644 --- a/include/d/actor/d_a_e_sg.h +++ b/include/d/actor/d_a_e_sg.h @@ -1,26 +1,90 @@ #ifndef D_A_E_SG_H #define D_A_E_SG_H -#include "f_op/f_op_actor_mng.h" + +#include "f_op/f_op_actor.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" +#include "d/d_jnt_col.h" /** * @ingroup actors-enemies * @class e_sg_class * @brief Skullfish - * + * * @details - * - */ + * Skullfish are found in the Lakebed Temple and some caves. They attack by + * chasing and biting Link, often appearing in groups. + * Skullfish can also be caught with the Fishing Rod, leaving behind a Heart + * when released. It will then flop on land. + * */ class e_sg_class : public fopEn_enemy_c { -private: - /* 0x5ac */ u8 field_0x5ac[0xab0 - 0x5ac]; +public: + /* 0x5AC */ request_of_phase_process_class mPhaseReq; + /* 0x5B4 */ u8 mArg0; + /* 0x5B8 */ J3DModel* mpModel; + /* 0x5BC */ Z2CreatureEnemy mSound; + /* 0x660 */ s16 mTimers[3]; + /* 0x666 */ s16 mInvincibilityTimer; + /* 0x668 */ u8 mInitTimer; + /* 0x66A */ s16 mRandomSeed; + /* 0x66C */ s16 mAction; + /* 0x66E */ s16 mMode; + /* 0x670 */ f32 mIdleMoveBound; + /* 0x674 */ f32 mSearchBound; + /* 0x678 */ cXyz mTargetPos; + /* 0x684 */ u8 field_0x684[4]; + /* 0x688 */ s16 mPlayerAngle; + /* 0x68C */ f32 mPlayerDist; + /* 0x690 */ f32 mTargetDist; + /* 0x694 */ f32 mTargetSpeed; + /* 0x698 */ f32 mStepSpeed; + /* 0x69C */ s16 mSwimAngle; + /* 0x69E */ s16 mSwimAngleSpeed; + /* 0x6A0 */ s16 mJoints[4]; + /* 0x6A8 */ f32 mJointYRot; + /* 0x6AC */ f32 mJointSpeed; + /* 0x6B0 */ s16 mJointAngle; + /* 0x6B4 */ f32 field_0x6b4; + /* 0x6B8 */ f32 mGroundY; + /* 0x6BC */ f32 mKamuSpeed; + /* 0x6C0 */ s16 mRotation; + /* 0x6C2 */ s16 mRotationTarget; + /* 0x6C4 */ s8 mStickIdx; + /* 0x6C5 */ u8 mKamuTimer; + /* 0x6C6 */ s16 field_0x6C6; + /* 0x6C8 */ int mShadowKey; + /* 0x6CC */ fpc_ProcID mTargetActorID; + /* 0x6D0 */ dJntCol_c mJoint; + /* 0x6E0 */ dBgS_AcchCir mAcchCir; + /* 0x720 */ dBgS_ObjAcch mAcch; + /* 0x8F8 */ dCcD_Stts mStts; + /* 0x934 */ dCcD_Sph mSph; + /* 0xA6C */ dCcU_AtInfo mAtInfo; + /* 0xA90 */ s8 mAttackCollistion; + /* 0xA91 */ s8 mCollisionResponse; + /* 0xA92 */ u8 mInactive; + /* 0xA93 */ s8 mWaterSplash; + /* 0xA94 */ int mParticleKey[4]; + /* 0xAA4 */ u32 mHamon; + /* 0xAA8 */ u8 field_0xaa8[4]; + /* 0xAAC */ bool mHioInit; }; -STATIC_ASSERT(sizeof(e_sg_class) == 0xab0); +STATIC_ASSERT(sizeof(e_sg_class) == 0xAB0); class daE_SG_HIO_c { +public: /* 8078A22C */ daE_SG_HIO_c(); - /* 8078DC84 */ ~daE_SG_HIO_c(); + /* 8078DC84 */ virtual ~daE_SG_HIO_c() {}; + + s8 mUnk0; + f32 mScaleFactor; + f32 mMovementSpeed; + f32 mSearchSpeed; + f32 mPlayerHeightThreshold; }; +STATIC_ASSERT(sizeof(daE_SG_HIO_c) == 0x18); #endif /* D_A_E_SG_H */ diff --git a/include/d/actor/d_a_mg_rod.h b/include/d/actor/d_a_mg_rod.h index 20963aebf0..ce70fe8474 100644 --- a/include/d/actor/d_a_mg_rod.h +++ b/include/d/actor/d_a_mg_rod.h @@ -1,12 +1,12 @@ #ifndef D_A_MG_ROD_H #define D_A_MG_ROD_H -#include "f_op/f_op_actor_mng.h" #include "Z2AudioLib/Z2Creature.h" +#include "d/actor/d_a_mg_fish.h" #include "d/d_bg_s_acch.h" #include "d/d_cc_d.h" #include "d/d_msg_flow.h" -#include "d/actor/d_a_mg_fish.h" +#include "f_op/f_op_actor_mng.h" struct mg_rod_s { /* 0x0 */ cXyz field_0x0[16]; @@ -43,7 +43,9 @@ public: bool checkRodEquipPermission() { return field_0x1514 == 0; } bool checkReelSpin() { return field_0x14f0 != 0; } - /* 0x0568 */ u8 field_0x568[0x5A4 - 0x568]; + /* 0x0568 */ u8 field_0x568[0x590 - 0x568]; + /* 0x0590 */ f32 field_0x590; + /* 0x0594 */ u8 field_0x594[0x5A4 - 0x594]; /* 0x05A4 */ mg_rod_s field_0x5a4; /* 0x0664 */ u8 field_0x664[0x6AC - 0x664]; /* 0x06AC */ cXyz field_0x6ac; @@ -66,7 +68,9 @@ public: /* 0x0F7E */ s16 field_0xf7e; /* 0x0F80 */ u8 field_0xf80[0xFAC - 0xF80]; /* 0x0FAC */ mg_hook_s field_0xfac[2]; - /* 0x0FEC */ u8 field_0xfec[0x1060 - 0xFEC]; + /* 0x0FEC */ u8 field_0xfec[0x100D - 0xFEC]; + /* 0x100D */ s8 field_0x100d; + /* 0x100E */ u8 field_0x100e[0x1060 - 0x100E]; /* 0x1060 */ cXyz mHookPosition; /* 0x106C */ cXyz field_0x106c; /* 0x1078 */ cXyz field_0x1078; diff --git a/include/d/actor/d_a_obj_kbox.h b/include/d/actor/d_a_obj_kbox.h index 1bba0b5423..8d788bdae3 100644 --- a/include/d/actor/d_a_obj_kbox.h +++ b/include/d/actor/d_a_obj_kbox.h @@ -12,8 +12,13 @@ * */ class obj_kbox_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x9f0 - 0x568]; +public: + /* 0x568 */ u8 field_0x568[0x598 - 0x568]; + /* 0x598 */ f32 field_0x598; + /* 0x59C */ u8 field_0x59c[0x5a8 - 0x59c]; + /* 0x5A8 */ cXyz field_0x5a8; + /* 0x5B4 */ cXyz field_0x5b4; + /* 0x5C0 */ u8 field_0x5c0[0x9f0 - 0x5c0]; }; STATIC_ASSERT(sizeof(obj_kbox_class) == 0x9f0); |
