npc_kn almost matching + dbg work (#2802)

* npc_kn almost matching + dbg work

* more npc_kn dbg work

* fix npc_kn select action functions

* Z2AudioMgr dbg change for taka
This commit is contained in:
YunataSavior
2025-11-15 18:40:47 -08:00
committed by GitHub
parent e7a610c5e2
commit d21e22f9ed
9 changed files with 584 additions and 375 deletions
+3
View File
@@ -34,6 +34,9 @@ public:
static Z2AudioMgr* getInterface() { return mAudioMgrPtr; }
static Z2AudioMgr* mAudioMgrPtr;
#if DEBUG
u8 padding[0xC];
#endif
/* 0x0514 */ virtual bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
/* 0x0518 */ bool mResettingFlag;
/* 0x0519 */ bool field_0x519;
+3
View File
@@ -109,6 +109,9 @@ private:
/* 0x3CA */ u8 field_0x3ca;
/* 0x3CB */ u8 field_0x3cb;
/* 0x3CC */ u8 mCrowdSize;
#if DEBUG
u8 semgr_pad[0x14];
#endif
}; // Size = 0x3D0
inline Z2SeMgr* Z2GetSeMgr() {
+43 -30
View File
@@ -3,6 +3,46 @@
#include "d/actor/d_a_npc.h"
struct daNpc_Kn_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ s16 alpha;
/* 0x8E */ s16 attack_wait_time;
/* 0x90 */ s16 followup_wait_time; // ?
/* 0x94 */ f32 small_slide_distance;
/* 0x98 */ f32 big_slide_distance;
/* 0x9C */ f32 warp_distance;
/* 0xA0 */ f32 attack_disappear_speed_h; // ?
/* 0xA4 */ f32 attack_disappear_speed_v; // ?
/* 0xA8 */ s16 rotation_num;
/* 0xAA */ s16 rotation_speed;
/* 0xAC */ s16 attack_start_min_time;
/* 0xAE */ s16 attack_start_time_range;
/* 0xB0 */ f32 move_speed;
};
class daNpc_Kn_Param_c {
public:
/* 80A3C124 */ virtual ~daNpc_Kn_Param_c() {}
static const daNpc_Kn_HIOParam m;
};
#if DEBUG
class daNpc_Kn_HIO_c : public mDoHIO_entry_c {
public:
daNpc_Kn_HIO_c();
void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
daNpc_Kn_HIOParam m;
};
#define NPC_KN_HIO_CLASS daNpc_Kn_HIO_c
#else
#define NPC_KN_HIO_CLASS daNpc_Kn_Param_c
#endif
/**
* @ingroup actors-npcs
* @class daNpc_Kn_c
@@ -36,9 +76,6 @@ public:
class daNpc_Kn_prtclMngr_c {
public:
/* 80A2AF98 */ ~daNpc_Kn_prtclMngr_c() {};
/* 80A3C1C4 */ daNpc_Kn_prtclMngr_c() {};
/* 0x00 */ bool mpModel;
/* 0x04 */ cXyz mPos;
/* 0x10 */ csXyz mAngle;
@@ -373,10 +410,10 @@ public:
/* 80A2D060 */ virtual bool afterSetMotionAnm(int, int, f32, int);
static const dCcD_SrcGObjInf mCcDObjData;
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
static char* mCutNameList[21];
static cutFunc mCutList[21];
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
static s16 mSrchName;
static fopAc_ac_c* mFindActorPtrs[50];
static u8 mFindCount[4];
@@ -385,7 +422,7 @@ private:
/* 0x0E44 */ J3DModel* mpPodModel;
/* 0x0E48 */ mDoExt_invisibleModel mInvisModel;
/* 0x0E50 */ dKy_tevstr_c mTevStr;
/* 0x11D8 */ u8 field_0x11D8[0x11DC - 0x11D8];
/* 0x11D8 */ NPC_KN_HIO_CLASS* mpHIO;
/* 0x11DC */ dCcD_Cyl mCylCc;
/* 0x1318 */ dCcD_Sph mSphCc[2];
/* 0x1588 */ mDoExt_bckAnm mPodBck;
@@ -423,28 +460,4 @@ private:
STATIC_ASSERT(sizeof(daNpc_Kn_c) == 0x1758);
struct daNpc_Kn_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ s16 alpha;
/* 0x8E */ s16 attack_wait_time;
/* 0x90 */ s16 followup_wait_time; // ?
/* 0x94 */ f32 small_slide_distance;
/* 0x98 */ f32 big_slide_distance;
/* 0x9C */ f32 warp_distance;
/* 0xA0 */ f32 attack_disappear_speed_h; // ?
/* 0xA4 */ f32 attack_disappear_speed_v; // ?
/* 0xA8 */ s16 rotation_num;
/* 0xAA */ s16 rotation_speed;
/* 0xAC */ s16 attack_start_min_time;
/* 0xAE */ s16 attack_start_time_range;
/* 0xB0 */ f32 move_speed;
};
class daNpc_Kn_Param_c {
public:
/* 80A3C124 */ virtual ~daNpc_Kn_Param_c() {}
static const daNpc_Kn_HIOParam m;
};
#endif /* D_A_NPC_KN_H */
+1 -1
View File
@@ -927,7 +927,7 @@ public:
bool checkWolfAttackReverse() const { return checkResetFlg1(RFLG1_WOLF_ATTACK_REVERSE); }
bool checkFreezeDamage() const { return checkNoResetFlg1(FLG1_ICE_FREEZE); }
bool checkWolfTagLockJumpReady() const { return checkResetFlg0(RFLG0_UNK_20000); }
bool checkDamageImpact() const { return checkResetFlg1(RFLG1_DAMAGE_IMPACT); }
BOOL checkDamageImpact() const { return checkResetFlg1(RFLG1_DAMAGE_IMPACT); }
bool getGrabUpEnd() const { return checkResetFlg0(RFLG0_GRAB_UP_END); }
bool getGrabPutStart() const { return checkResetFlg0(RFLG0_GRAB_PUT_START); }
bool checkSwimUp() const { return checkNoResetFlg0(FLG0_SWIM_UP); }