diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-04-17 10:47:22 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-17 17:47:22 +0300 |
| commit | d253deb2b95e96323d9b8fddd3e4aa629203ebd4 (patch) | |
| tree | d43c2777a249a14c0b1212d83f8f3f916dfe359f /include | |
| parent | ddb1f42c699bbe9792066e8936b5f534d240a6ef (diff) | |
d_a_do done but nonmatching, d_a_obj_food OK (#2135)
Diffstat (limited to 'include')
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 17 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_do/d_a_do.h | 145 | ||||
| -rw-r--r-- | include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h | 46 |
3 files changed, 129 insertions, 79 deletions
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index e50091daf8..bd35484441 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -690,4 +690,21 @@ inline void fopAcM_OnCarryType(fopAc_ac_c* pActor, fopAcM_CARRY param_2) { pActor->carryType |= param_2; } +enum fopAcM_FOOD { + fopAcM_FOOD_0, + fopAcM_FOOD_1, + fopAcM_FOOD_2, + fopAcM_FOOD_3, + fopAcM_FOOD_4, + fopAcM_FOOD_5, +}; + +inline void fopAcM_SetFoodStatus(fopAc_ac_c* actor, fopAcM_FOOD status) { + actor->field_0x567 = status; +} + +inline bool fopAcM_CheckFoodStatus(const fopAc_ac_c* actor, fopAcM_FOOD status) { + return actor->field_0x567 == status; +} + #endif diff --git a/include/rel/d/a/d_a_do/d_a_do.h b/include/rel/d/a/d_a_do/d_a_do.h index 761f8807a2..0a0e447d05 100644 --- a/include/rel/d/a/d_a_do/d_a_do.h +++ b/include/rel/d/a/d_a_do/d_a_do.h @@ -1,11 +1,11 @@ #ifndef D_A_DO_H #define D_A_DO_H -#include "d/a/d_a_item_static.h" -#include "d/a/d_a_player.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/cc/d_cc_d.h" #include "d/msg/d_msg_flow.h" -#include "m_Do/m_Do_ext.h" -#include "m_Do/m_Do_mtx.h" +#include "f_op/f_op_actor.h" enum daDo_Anm { ANM_BULBUL = 6, @@ -46,18 +46,18 @@ enum daDo_Action { ACT_MESSAGE = 39 }; +// Remove this once the TU matches struct daDo_HIO_tmp { /* 0x00 */ u8 field_0x00[4]; /* 0x04 */ s8 field_0x04; - /* 0x05 */ u8 field_0x05[3]; /* 0x08 */ f32 mBaseSize; /* 0x0C */ f32 mWalkSpeed; /* 0x10 */ f32 mRunSpeed; /* 0x14 */ f32 mSwimSpeed; - /* 0x18 */ f32 mPlayerRecogniztionDist; - /* 0x1C */ u8 field_0x1c; + /* 0x18 */ f32 mPlayerRecognitionDist; + /* 0x1C */ u8 mWaitType; /* 0x1D */ u8 mSwimming; - /* 0x1E */ u16 mWaterHuntAnimType; + /* 0x1E */ s16 mWaterHuntAnimType; }; class daDo_HIO_c { @@ -65,95 +65,87 @@ public: /* 80667D4C */ daDo_HIO_c(); /* 8066ED40 */ virtual ~daDo_HIO_c(); // should be inlined -public: /* 0x04 */ s8 field_0x04; - /* 0x05 */ u8 field_0x05[3]; /* 0x08 */ f32 mBaseSize; /* 0x0C */ f32 mWalkSpeed; /* 0x10 */ f32 mRunSpeed; /* 0x14 */ f32 mSwimSpeed; - /* 0x18 */ f32 mPlayerRecogniztionDist; - /* 0x1C */ u8 field_0x1c; + /* 0x18 */ f32 mPlayerRecognitionDist; + /* 0x1C */ u8 mWaitType; /* 0x1D */ u8 mSwimming; - /* 0x1E */ u16 mWaterHuntAnimType; + /* 0x1E */ s16 mWaterHuntAnimType; }; class do_class : public fopEn_enemy_c { public: /* 0x5AC */ request_of_phase_process_class mPhase; - /* 0x5B4 */ u8 field_0x5b4; - /* 0x5B5 */ u8 field_0x5b5; - /* 0x5B6 */ u8 field_0x5b6; - /* 0x5B7 */ u8 field_0x5b7; - /* 0x5B8 */ cXyz field_0x5b8; + /* 0x5B4 */ u8 mParam0; + /* 0x5B5 */ u8 mParam1; + /* 0x5B6 */ u8 mParam2; + /* 0x5B8 */ cXyz mTargetPos; /* 0x5C4 */ u8 field_0x5c4[4]; /* 0x5C8 */ f32 mDistFromPlayer; - /* 0x5CC */ s16 mAngleYFromPlayer; - /* 0x5CE */ u8 field_0x5ce[2]; + /* 0x5CC */ s16 mTargetAngleY; /* 0x5D8 */ mDoExt_McaMorf* mpMorf; /* 0x5D4 */ mDoExt_btkAnm* mpBtk; /* 0x5D8 */ mDoExt_btpAnm* mpBtp; - /* 0x5DC */ s8 field_0x5dc; - /* 0x5DD */ u8 field_0x5dd; - /* 0x5DE */ s16 field_0x5de; - /* 0x5E0 */ s16 field_0x5e0; - /* 0x5E2 */ u8 field_0x5e2; - /* 0x5E3 */ u8 field_0x5e3; - /* 0x5E4 */ u32 mAnmID; - /* 0x5E8 */ f32 field_0x5e8; - /* 0x5EC */ f32 field_0x5ec; - /* 0x5F0 */ s16 field_0x5f0; + /* 0x5DC */ s8 mBtkFrame; + /* 0x5DE */ s16 mBtpFrame; + /* 0x5E0 */ s16 mBtpTimer; + /* 0x5E2 */ s8 mBtpReset; + /* 0x5E4 */ int mAnmID; + /* 0x5E8 */ f32 mAnmSpeed; + /* 0x5EC */ f32 mTargetAnmSpeed; + /* 0x5F0 */ s16 mCounter; /* 0x5F2 */ s16 mAction; /* 0x5F4 */ s16 field_0x5f4; - /* 0x5F6 */ s16 mStayStatus; // probably a better name for this + /* 0x5F6 */ s16 mMode; /* 0x5F8 */ u32 mShadowKey; - /* 0x5FC */ s16 field_0x5fc[4]; - /* 0x604 */ u16 field_0x604; - /* 0x606 */ s16 field_0x606; + /* 0x5FC */ s16 mTimer[4]; + /* 0x604 */ s16 mCcDisableTimer; + /* 0x606 */ s16 mSwimEffectTimer; /* 0x608 */ f32 field_0x608; /* 0x60C */ s16 field_0x60c; - /* 0x60E */ csXyz field_0x60e; - /* 0x614 */ s16 field_0x614; - /* 0x616 */ u8 field_0x616; - /* 0x617 */ u8 field_0x617; - /* 0x618 */ cXyz mUnkPos; // something to do with the dog's eye position - /* 0x624 */ s16 field_0x624; - /* 0x626 */ csXyz field_0x626; - /* 0x62C */ u8 field_0x62c[18]; - /* 0x63E */ csXyz field_0x63e; - /* 0x644 */ f32 field_0x644; - /* 0x648 */ f32 field_0x648; - /* 0x64C */ f32 field_0x64c; - /* 0x650 */ f32 field_0x650; - /* 0x654 */ s16 field_0x654; - /* 0x656 */ s16 field_0x656; - /* 0x658 */ f32 mEyePosYDistFromPlayer; - /* 0x65C */ f32 field_0x65c; - /* 0x660 */ s16 field_0x660; - /* 0x662 */ u8 field_0x662[2]; - /* 0x664 */ cXyz field_0x664; - /* 0x670 */ f32 field_0x670; - /* 0x674 */ cXyz field_0x674; + /* 0x60E */ csXyz mHeadAngle; + /* 0x614 */ s16 mHeadTilt; + /* 0x616 */ s8 field_0x616; + /* 0x618 */ cXyz mLookPos; + /* 0x624 */ s16 mLookTimer; + /* 0x626 */ csXyz mHeadBob; + /* 0x62C */ csXyz mHeadBobTarget; + /* 0x632 */ s16 mHeadBobTimer; + /* 0x634 */ f32 mShakeSpeed; + /* 0x638 */ f32 mShakeTargetSpeed; + /* 0x63C */ s16 mASwimTimer; + /* 0x63E */ csXyz mTailAngle; + /* 0x644 */ f32 mTailWag; + /* 0x648 */ f32 mTailWagTarget; + /* 0x64C */ f32 mTailPhaseY; + /* 0x650 */ f32 mTailPhaseX; + /* 0x654 */ s16 mRandomAngleY; + /* 0x656 */ s16 mRandomTargetAngleY; + /* 0x658 */ f32 field_0x658; + /* 0x65C */ f32 mWaterY; + /* 0x660 */ s16 mHangAngleY; + /* 0x664 */ cXyz mHangPos; + /* 0x670 */ f32 mHangSpeed; + /* 0x674 */ cXyz mScale; /* 0x680 */ u32 mItemActorID; /* 0x684 */ u32 mFoodActorID; - /* 0x688 */ u8 field_0x688; - /* 0x689 */ u8 field_0x689; - /* 0x68A */ u8 field_0x68a; - /* 0x68B */ u8 field_0x68b; + /* 0x688 */ s8 mFoodInMouth; + /* 0x689 */ s8 mNoDraw; /* 0x68C */ cXyz field_0x68c; /* 0x698 */ cXyz field_0x698; /* 0x6A4 */ u8 field_0x6a4[10]; - /* 0x6AE */ s8 field_0x6ae; + /* 0x6AE */ s8 mRunningSoundTimer; /* 0x6B0 */ s16 field_0x6b0; - /* 0x6B2 */ u8 field_0x6b2[2]; /* 0x6B4 */ f32 field_0x6b4; - /* 0x6B8 */ u8 field_0x6b8; - /* 0x6B9 */ u8 field_0x6b9[3]; + /* 0x6B8 */ u8 mItemControlTimer; /* 0x6BC */ dBgS_AcchCir mBgS_AcchCir; /* 0x6FC */ dBgS_ObjAcch mBgS_Acch; /* 0x8D4 */ dCcD_Stts mStts; - /* 0x910 */ dCcD_Sph mCcSph1; - /* 0xA48 */ dCcD_Sph mCcSph2; + /* 0x910 */ dCcD_Sph mCcSph; + /* 0xA48 */ dCcD_Sph field_0xa48; /* 0xB80 */ cXyz field_0xb80; /* 0xB8C */ cXyz field_0xb8c; /* 0xB98 */ cXyz field_0xb98; @@ -161,28 +153,23 @@ public: /* 0xBB0 */ cXyz field_0xbb0; /* 0xBBC */ cXyz field_0xbbc; /* 0xBC8 */ u8 field_0xb4c[4]; - /* 0xBCC */ u32 field_0xbcc; + /* 0xBCC */ u32 mRippleKey; /* 0xBD0 */ u8 field_0xbd0[4]; - /* 0xBD4 */ u32 field_0xbd4[4]; + /* 0xBD4 */ u32 mParticleKey[4]; /* 0xBE4 */ Z2SoundObjSimple mSound; - /* 0xC04 */ u8 field_0xc04; - /* 0xC05 */ s8 field_0xc05; - /* 0xC06 */ s16 field_0xc06; - /* 0xC08 */ s16 field_0xc08; - /* 0xC0A */ u8 field_0xc0a[2]; + /* 0xC04 */ u8 mFoodEndTimer; + /* 0xC05 */ s8 mMessageState; + /* 0xC06 */ s16 mIsTalking; + /* 0xC08 */ s16 mFlowID; /* 0xC0C */ dMsgFlow_c mMsg; /* 0xC58 */ u8 field_0xc58[40]; - /* 0xC80 */ u8 field_0xc80; - /* 0xC81 */ u8 field_0xc81[3]; + /* 0xC80 */ bool field_0xc80; /* 0xC84 */ cXyz field_0xc84; /* 0xC90 */ cXyz field_0xc90; /* 0xC9C */ cXyz field_0xc9c; /* 0xCA8 */ cXyz field_0xca8; /* 0xCB4 */ cXyz field_0xcb4; - /* 0xCC0 */ u8 field_0xcc0; - -public: - /* 8066EAE4 */ do_class(); + /* 0xCC0 */ bool mHIOInit; }; #endif /* D_A_DO_H */ diff --git a/include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h b/include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h index 963fa5e56c..5b05e50999 100644 --- a/include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h +++ b/include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h @@ -1,5 +1,51 @@ #ifndef D_A_OBJ_FOOD_H #define D_A_OBJ_FOOD_H +#include "SSystem/SComponent/c_phase.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/cc/d_cc_d.h" +#include "f_op/f_op_actor.h" + +class obj_food_class : public fopAc_ac_c { +public: + enum Type { + /* 0 */ TYPE_BONE, + /* 1 */ TYPE_BALL, + }; + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ u8 mType; + /* 0x571 */ u8 mParam1; + /* 0x572 */ u8 mParam2; + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ u32 mShadowKey; + /* 0x57C */ s16 mCounter; + /* 0x57E */ s16 mBounces; + /* 0x580 */ s16 mTimer[4]; + /* 0x588 */ csXyz mRotSpeed; + /* 0x58E */ s16 mGroundAngleX; + /* 0x590 */ s16 mGroundAngleZ; + /* 0x594 */ f32 mOldSpeedY; + /* 0x598 */ Z2SoundObjSimple mSound; + /* 0x5B8 */ u32 mParticleKey[4]; + /* 0x5C8 */ dBgS_AcchCir mAcchCir; + /* 0x608 */ dBgS_ObjAcch mAcch; + /* 0x7E0 */ dCcD_Stts mCcStts; + /* 0x81C */ dCcD_Sph mCcSph; + /* 0x954 */ dCcD_Sph mAtSph; + /* 0xA8C */ bool mHIOInit; +}; + +STATIC_ASSERT(sizeof(obj_food_class) == 0xA90); + +struct daObj_Food_HIO_c { + /* 80BF070C */ daObj_Food_HIO_c(); + /* 80BF1CE8 */ virtual ~daObj_Food_HIO_c() {} + + /* 0x4 */ s8 field_0x4; + /* 0x8 */ f32 mBoneScale; +}; + +STATIC_ASSERT(sizeof(daObj_Food_HIO_c) == 0xC); #endif /* D_A_OBJ_FOOD_H */ |
