d_a_npc_soldierB matching (#2828)

This commit is contained in:
hev7 2025-11-19 20:53:12 +00:00 committed by GitHub
parent 678c1a0e70
commit 4373bba251
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 954 additions and 933 deletions

View File

@ -1932,7 +1932,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shop_maro"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_sola"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_soldierA", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_soldierB"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_soldierB", extra_cflags=[DANPCF_C_HACK]),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_sq"),
ActorRel(NonMatching, "d_a_npc_the", extra_cflags=[DANPCF_C_HACK]),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_theB", extra_cflags=[DANPCF_C_HACK]),

View File

@ -10,7 +10,7 @@
*
* @details
*
*/
*/
struct daNpc_SoldierA_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
@ -41,7 +41,7 @@ class daNpc_SoldierA_c : public daNpcF_c {
public:
typedef int (daNpc_SoldierA_c::*actionFunc)(void*);
typedef int (daNpc_SoldierA_c::*cutFunc)(int);
/* 80AEF58C */ daNpc_SoldierA_c();
/* 80AEF7A0 */ ~daNpc_SoldierA_c();
/* 80AEF9A0 */ cPhs__Step create();
@ -77,6 +77,8 @@ public:
/* 80AF1B8C */ int ECut_listenLake(int);
/* 80AF1CA4 */ int test(void*);
u8 getType() { return mType; }
static char* mEvtCutNameList[3];
static cutFunc mEvtCutList[3];

View File

@ -3,6 +3,31 @@
#include "d/actor/d_a_npc.h"
struct daNpc_SoldierB_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
};
class daNpc_SoldierB_Param_c {
public:
/* 80AF267C */ virtual ~daNpc_SoldierB_Param_c() {}
static daNpc_SoldierB_HIOParam const m;
};
#if DEBUG
class daNpc_SoldierB_HIO_c : public mDoHIO_entry_c {
public:
daNpc_SoldierB_HIO_c();
void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
daNpc_SoldierB_HIOParam m;
};
#define NPC_SOLDIERB_HIO_CLASS daNpc_SoldierB_HIO_c
#else
#define NPC_SOLDIERB_HIO_CLASS daNpc_SoldierB_Param_c
#endif
/**
* @ingroup actors-npcs
* @class daNpc_SoldierB_c
@ -11,57 +36,69 @@
* @details
*
*/
class daNpc_SoldierB_c : public fopAc_ac_c {
class daNpc_SoldierB_c : public daNpcF_c {
public:
typedef int (daNpc_SoldierB_c::*actionFunc)(void*);
typedef int (daNpc_SoldierB_c::*cutFunc)(int);
/* 80AF2CAC */ daNpc_SoldierB_c();
/* 80AF2EC0 */ ~daNpc_SoldierB_c();
/* 80AF30C0 */ void create();
/* 80AF33A0 */ void CreateHeap();
/* 80AF356C */ void Delete();
/* 80AF35A0 */ void Execute();
/* 80AF35C0 */ void Draw();
/* 80AF3634 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80AF3830 */ void createHeapCallBack(fopAc_ac_c*);
/* 80AF3850 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80AF30C0 */ cPhs__Step create();
/* 80AF33A0 */ int CreateHeap();
/* 80AF356C */ int Delete();
/* 80AF35A0 */ int Execute();
/* 80AF35C0 */ int Draw();
/* 80AF3634 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 80AF3830 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80AF3850 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80AF389C */ void setParam();
/* 80AF39B8 */ void main();
/* 80AF3B30 */ bool ctrlBtk();
/* 80AF39B8 */ BOOL main();
/* 80AF3B30 */ BOOL ctrlBtk();
/* 80AF3B38 */ void setAttnPos();
/* 80AF4030 */ bool setMotionAnm(int, f32);
/* 80AF4030 */ void setMotionAnm(int, f32);
/* 80AF4130 */ void setMotion(int, f32, int);
/* 80AF4174 */ bool drawDbgInfo();
/* 80AF4174 */ int drawDbgInfo();
/* 80AF417C */ void drawOtherMdls();
/* 80AF4228 */ void getTypeFromParam();
/* 80AF4248 */ void isDelete();
/* 80AF4228 */ u8 getTypeFromParam();
/* 80AF4248 */ BOOL isDelete();
/* 80AF426C */ void reset();
/* 80AF43E4 */ void playMotion();
/* 80AF4508 */ void chkAction(int (daNpc_SoldierB_c::*)(void*));
/* 80AF4534 */ void setAction(int (daNpc_SoldierB_c::*)(void*));
/* 80AF45DC */ void selectAction();
/* 80AF4508 */ BOOL chkAction(int (daNpc_SoldierB_c::*)(void*));
/* 80AF4534 */ BOOL setAction(int (daNpc_SoldierB_c::*)(void*));
/* 80AF45DC */ BOOL selectAction();
/* 80AF465C */ void doNormalAction(int);
/* 80AF4770 */ void doEvent();
/* 80AF4770 */ BOOL doEvent();
/* 80AF49E4 */ void setLookMode(int);
/* 80AF4A08 */ void lookat();
/* 80AF4CFC */ void wait(void*);
/* 80AF4DBC */ void talk(void*);
/* 80AF4F54 */ void ECut_listenLake(int);
/* 80AF50AC */ void test(void*);
/* 80AF4CFC */ int wait(void*);
/* 80AF4DBC */ int talk(void*);
/* 80AF4F54 */ int ECut_listenLake(int);
/* 80AF50AC */ int test(void*);
static char* mEvtCutNameList[2];
static u8 mEvtCutList[24];
static cutFunc mEvtCutList[2];
private:
/* 0x568 */ u8 field_0x568[0xe20 - 0x568];
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ J3DModel* mSpearModel;
/* 0xBDC */ daNpcF_Lookat_c mLookat;
/* 0xC78 */ daNpcF_ActorMngr_c mActorMngrs[3];
/* 0xC90 */ NPC_SOLDIERB_HIO_CLASS* mHIO;
/* 0xC94 */ dCcD_Cyl mCyl;
/* 0xDD0 */ actionFunc mNextAction;
/* 0xDDC */ actionFunc mAction;
/* 0xDE8 */ request_of_phase_process_class mPhases[3];
/* 0xE00 */ int field_0xe00;
/* 0xE04 */ int field_0xe04;
/* 0xE08 */ int field_0xe08;
/* 0xE0C */ int field_0xe0c;
/* 0xE10 */ int mMsgNo;
/* 0xE14 */ s16 mLookMode;
/* 0xE16 */ u16 mMode;
/* 0xE18 */ u8 mType;
/* 0xE1C */ int mAnm;
};
STATIC_ASSERT(sizeof(daNpc_SoldierB_c) == 0xe20);
class daNpc_SoldierB_Param_c {
public:
/* 80AF5A68 */ ~daNpc_SoldierB_Param_c();
static u8 const m[108];
};
#endif /* D_A_NPC_SOLDIERB_H */

File diff suppressed because it is too large Load Diff