summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStbn-antier <99532548+Stbn-antier@users.noreply.github.com>2025-07-31 02:27:05 +0900
committerGitHub <noreply@github.com>2025-07-30 20:27:05 +0300
commitc32789eb607b0ca2cb63bd5b9e5f712985bd579e (patch)
tree0c98e355ec5d13af14721e8693307f3edabb6a63 /include
parentec9e4cf26860e9effab9d2ef49e8f8074dcefb65 (diff)
d_a_bd Matching (#2560)
* Matching daPoFire * Adressed comments * Matching text * Some cleanup * Adressed review comments, added CUT_TYPE_NONE in cut type enum
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_bd.h91
-rw-r--r--include/d/actor/d_a_npc_kkri.h14
-rw-r--r--include/d/actor/d_a_player.h3
3 files changed, 100 insertions, 8 deletions
diff --git a/include/d/actor/d_a_bd.h b/include/d/actor/d_a_bd.h
index 0cacdf28f5..a5e41c7a83 100644
--- a/include/d/actor/d_a_bd.h
+++ b/include/d/actor/d_a_bd.h
@@ -1,6 +1,8 @@
#ifndef D_A_BD_H
#define D_A_BD_H
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,18 +13,95 @@
* @details Used by birds that sit on Coro's head.
*
*/
-class bd_class : public fopEn_enemy_c {
-private:
- /* 0x5ac */ u8 field_0x5ac[0x9ec - 0x5ac];
+
+enum da_BD_ANM {
+ ANM_FLY = 5,
+ ANM_KAKKU,
+ ANM_KAKKU1,
+ ANM_PITA_DOWN,
+ ANM_PITA_LEFTUP,
+ ANM_PITA_RIGHT,
+ ANM_PYON,
+};
+
+enum Action_bd {
+ ACT_GROUND = 0,
+ ACT_FLY = 1,
+ ACT_DROP = 2,
+ ACT_LANDING = 3,
+ ACT_LANDING2 = 4,
+ ACT_LANDING3 = 5,
+ ACT_ROPE = 6,
+ ACT_KKRI = 7,
+};
+
+class bd_class {
+public:
+ /* 0x000 */ fopEn_enemy_c enemy;
+ /* 0x5AC */ request_of_phase_process_class mPhase;
+ /* 0x5B4 */ u8 field_0x5B4;
+ /* 0x5B5 */ u8 field_0x5B5;
+ /* 0x5B6 */ u8 field_0x5B6;
+ /* 0x5B7 */ u8 field_0x5B7;
+ /* 0x5B8 */ u8 field_0x5B8;
+ /* 0x5B9 */ u8 field_0x5B9;
+ /* 0x5B8 */ char pad5B8[0x8]; // Padding
+ /* 0x5C2 */ s8 field_0x5C2;
+ /* 0x5C4 */ cXyz field_0x5C4;
+ /* 0x5D0 */ s16 mTargetAngleY;
+ /* 0x5D4 */ actor_place* field_0x5D4;
+ /* 0x5D8 */ s16 field_0x5D8;
+ /* 0x5DC */ f32 field_0x5DC;
+ /* 0x5E0 */ f32 field_0x5E0;
+ /* 0x5E4 */ mDoExt_McaMorf* mpMorf;
+ /* 0x5E8 */ mDoExt_btkAnm* mpBtk;
+ /* 0x5EC */ s8 field_0x5EC;
+ /* 0x5F0 */ s32 mAnmID;
+ /* 0x5F4 */ s16 mChirpDist;
+ /* 0x5F8 */ Z2SoundObjSimple mSound;
+ /* 0x618 */ s16 field_0x618;
+ /* 0x61A */ s16 mActionID;
+ /* 0x61C */ s16 field_0x61C;
+ /* 0x61E */ s16 field_0x61E;
+ /* 0x620 */ f32 field_0x620;
+ /* 0x624 */ f32 field_0x624;
+ /* 0x628 */ s16 field_0x628;
+ /* 0x62C */ cXyz* field_0x62C;
+ /* 0x630 */ int field_0x630;
+ /* 0x634 */ cXyz field_0x634;
+ /* 0x640 */ s16 field_0x640;
+ /* 0x642 */ s16 field_0x642;
+ /* 0x644 */ char pad644[1]; // Padding
+ /* 0x645 */ s8 field_0x645;
+ /* 0x646 */ char pad646[0x64C - 0x646]; // Padding
+ /* 0x64C */ s16 field_0x64C[4];
+ /* 0x654 */ s16 field_0x654;
+ /* 0x656 */ s8 field_0x656;
+ /* 0x658 */ s16 field_0x658;
+ /* 0x65C */ dBgS_AcchCir mAcchCir;
+ /* 0x69C */ dBgS_ObjAcch mBgc;
+ /* 0x874 */ dCcD_Stts mStts;
+ /* 0x8B0 */ dCcD_Sph mSphere;
+ /* 0x9E8 */ u8 field_0x9E8;
};
STATIC_ASSERT(sizeof(bd_class) == 0x9ec);
-class daBd_HIO_c {
+class daBd_HIO_c : public JORReflexible {
public:
/* 804D6C4C */ daBd_HIO_c();
- /* 804D9CB8 */ ~daBd_HIO_c();
-};
+ /* 804D9CB8 */ virtual ~daBd_HIO_c() {}
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 id;
+ /* 0x08 */ f32 mBasicSize;
+ /* 0x0C */ f32 mFlightSpeed;
+ /* 0x10 */ f32 mGroundSpeed;
+ /* 0x14 */ s16 mFlightTime;
+ /* 0x18 */ f32 mLinkDetectRange;
+ /* 0x1C */ s16 mChirpDist;
+ /* 0x1E */ s8 field_0x1E;
+};
#endif /* D_A_BD_H */
diff --git a/include/d/actor/d_a_npc_kkri.h b/include/d/actor/d_a_npc_kkri.h
index 87978fe34f..6dbf9cbfe1 100644
--- a/include/d/actor/d_a_npc_kkri.h
+++ b/include/d/actor/d_a_npc_kkri.h
@@ -57,11 +57,23 @@ public:
/* 80553404 */ void checkChangeJoint(int);
/* 80553414 */ void checkRemoveJoint(int);
+ MtxP getBd3Mtx() {
+ return mpMorf->getModel()->getAnmMtx(0x11);
+ }
+ MtxP getBd2Mtx() {
+ return mpMorf->getModel()->getAnmMtx(6);
+ }
+ MtxP getBd1Mtx() {
+ return mpMorf->getModel()->getAnmMtx(5);
+ }
+
static void* mCutNameList[3];
static u8 mCutList[36];
private:
- /* 0x568 */ u8 field_0x568[0xfdc - 0x568];
+ /* 0x568 */ u8 field_0x568[0x578 - 0x568];
+ /* 0x578 */ mDoExt_McaMorfSO* mpMorf;
+ /* 0x57C */ u8 field_0x57C[0xfdc - 0x57C];
};
STATIC_ASSERT(sizeof(daNpc_Kkri_c) == 0xfdc);
diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h
index b3c6e716f1..03fa2109cf 100644
--- a/include/d/actor/d_a_player.h
+++ b/include/d/actor/d_a_player.h
@@ -599,7 +599,8 @@ public:
};
enum CutType {
- /* 0x01 */ CUT_TYPE_NM_VERTICAL = 1,
+ /* 0x00 */ CUT_TYPE_NONE,
+ /* 0x01 */ CUT_TYPE_NM_VERTICAL,
/* 0x02 */ CUT_TYPE_NM_STAB,
/* 0x03 */ CUT_TYPE_NM_RIGHT,
/* 0x04 */ CUT_TYPE_NM_LEFT,