summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/f_op/f_op_actor_mng.h17
-rw-r--r--include/rel/d/a/d_a_do/d_a_do.h145
-rw-r--r--include/rel/d/a/obj/d_a_obj_food/d_a_obj_food.h46
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 */