d_a_npc_du matching (#2769)

* init work

* matching

* pr cleanup

* pr cleanup 2
This commit is contained in:
Carco_21 2025-11-05 16:39:23 -05:00 committed by GitHub
parent 936b7aa2e8
commit 2543ad18b6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 741 additions and 607 deletions

View File

@ -1857,7 +1857,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_npc_doc"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_doorboy", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_drainSol"),
ActorRel(NonMatching, "d_a_npc_du"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_du"),
ActorRel(NonMatching, "d_a_npc_fairy"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fguard"),
ActorRel(NonMatching, "d_a_npc_gnd"),

View File

@ -10,22 +10,45 @@
*
* @details
*
*/
*/
class npc_du_class {
public:
fopAc_ac_c actor;
/* 0x568 */ u8 field_0x568[0x5b8 - 0x568];
/* 0x5B8 */ f32 field_0x5b8;
/* 0x5BC */ u8 field_0x5bc[0xa00 - 0x5bc];
/* 0x000 */ fopEn_enemy_c actor;
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 arg0;
/* 0x5B5 */ u8 arg1;
/* 0x5B8 */ f32 mPlayerDist;
/* 0x5BC */ s16 mPlayerAngleY;
/* 0x5C0 */ mDoExt_McaMorf* mpMorf;
/* 0x5C4 */ mDoExt_btpAnm* mpBtpAnm;
/* 0x5C8 */ int mAnm;
/* 0x5CC */ s16 mFrameCounter;
/* 0x5CE */ s16 mAction;
/* 0x5D0 */ s16 mActionMode;
/* 0x5D4 */ u32 mShadowKey;
/* 0x5D8 */ s16 mTimers[4];
/* 0x5E0 */ s16 mUnkTimer;
/* 0x5E2 */ s16 mNeck2XRot;
/* 0x5E4 */ s16 mNeck2XRotTarget;
/* 0x5E8 */ dBgS_AcchCir mAcchCir;
/* 0x628 */ dBgS_ObjAcch mBgc;
/* 0x800 */ s8 mSwimFlag;
/* 0x804 */ dCcD_Stts mStts;
/* 0x840 */ dCcD_Sph mSph;
/* 0x978 */ s8 mActionTimer;
/* 0x97A */ s16 mCurrentAngleYTarget;
/* 0x97C */ f32 mGroundCross;
/* 0x980 */ s8 field_0x980;
/* 0x982 */ s16 field_0x982;
/* 0x984 */ s16 mMsgFNo;
/* 0x988 */ dMsgFlow_c mFlow;
/* 0x9D4 */ u32 mHamonPrtcl;
/* 0x9D8 */ u8 field_0x9d8[0x9dc - 0x9d8];
/* 0x9DC */ Z2SoundObjSimple mSound;
/* 0x9FC */ u8 mIsFirstSpawn;
};
STATIC_ASSERT(sizeof(npc_du_class) == 0xa00);
class daNpc_Du_HIO_c {
public:
/* 809AFD4C */ daNpc_Du_HIO_c();
/* 809B17A0 */ ~daNpc_Du_HIO_c();
};
#endif /* D_A_NPC_DU_H */

File diff suppressed because it is too large Load Diff

View File

@ -239,7 +239,7 @@ static void* s_piro_sub(void* param_0, void* param_1) {
/* 80543718-8054378C 0008F8 0074+00 1/1 0/0 0/0 .text s_du_sub__FPvPv */
static void* s_du_sub(void* param_0, void* param_1) {
if (fopAcM_IsActor(param_0) && fopAcM_GetName(param_0) == PROC_NPC_DU &&
((npc_du_class*)param_0)->field_0x5b8 < 300.0f)
((npc_du_class*)param_0)->mPlayerDist < 300.0f)
{
((npc_henna_class*)param_1)->field_0x7d5 = 70;
return param_0;