npc_drailsol done (#2798)

This commit is contained in:
TakaRikka 2025-11-13 06:49:36 -08:00 committed by GitHub
parent a3c76c8a7e
commit 3ccdb41ea9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 496 additions and 782 deletions

View File

@ -1856,7 +1856,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_df"),
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(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_drainSol", extra_cflags=[DANPCF_C_HACK]),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_du"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fairy"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fguard"),

View File

@ -11,41 +11,61 @@
* @details
*
*/
class daNpcDrSol_c : public fopAc_ac_c {
class daNpcDrSol_c : public daNpcF_c {
public:
/* 809ADE6C */ daNpcDrSol_c();
/* 809ADFE4 */ ~daNpcDrSol_c();
/* 809AE10C */ void Create();
/* 809AE354 */ void CreateHeap();
/* 809AE51C */ void Delete();
/* 809AE550 */ void Execute();
/* 809AE5CC */ void Draw();
/* 809AE60C */ void drawOtherMdls();
/* 809AE69C */ void createHeapCallBack(fopAc_ac_c*);
/* 809ADFE4 */ virtual ~daNpcDrSol_c();
/* 809AE10C */ int Create();
/* 809AE354 */ int CreateHeap();
/* 809AE51C */ int Delete();
/* 809AE550 */ int Execute();
/* 809AE5CC */ int Draw();
/* 809AE69C */ static int createHeapCallBack(fopAc_ac_c*);
/* 809AE6BC */ void reset();
/* 809AE844 */ void setAction(bool (daNpcDrSol_c::*)(void*));
/* 809AE8EC */ void chkFindPlayer();
/* 809AE994 */ void wait(void*);
/* 809AEB18 */ void setMotion(int, f32, int);
/* 809AEB94 */ void talk(void*);
/* 809AEDA8 */ void setParam();
/* 809AEE24 */ void main();
/* 809AEFDC */ void setAttnPos();
/* 809AF12C */ bool setMotionAnm(int, f32);
/* 809AF1FC */ bool drawDbgInfo();
/* 809AF934 */ void adjustShapeAngle();
/* 809AE844 */ inline int setAction(bool (daNpcDrSol_c::*)(void*));
/* 809AE8EC */ bool chkFindPlayer();
/* 809AE994 */ bool wait(void*);
/* 809AEB94 */ bool talk(void*);
private:
/* 0x568 */ u8 field_0x568[0xd3c - 0x568];
/* 809AEDA8 */ virtual void setParam();
/* 809AEE24 */ virtual BOOL main();
/* 809AF934 */ virtual void adjustShapeAngle() {}
/* 809AEFDC */ virtual void setAttnPos();
/* 809AF12C */ virtual void setMotionAnm(int, f32);
/* 809AEB18 */ virtual void setMotion(int, f32, int);
/* 809AF1FC */ virtual BOOL drawDbgInfo();
/* 809AE60C */ virtual void drawOtherMdls();
inline void playMotion();
u8 getType() { return argument & 0x7F; }
int getSwitchNo() { return fopAcM_GetParam(this) & 0xFF; }
s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ J3DModel* field_0xbd8;
/* 0xBDC */ u8 field_0xBDC[0xBE0 - 0xBDC];
/* 0xBE0 */ dCcD_Cyl mCyl;
/* 0xD1C */ bool (daNpcDrSol_c::*mAction)(void*);
/* 0xD28 */ request_of_phase_process_class mPhase;
/* 0xD30 */ int mMessageNo;
/* 0xD34 */ s16 field_0xd34;
/* 0xD36 */ u16 mMode;
/* 0xD38 */ u8 field_0xd38;
/* 0xD39 */ u8 mType;
};
STATIC_ASSERT(sizeof(daNpcDrSol_c) == 0xd3c);
struct daNpcDrSol_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
};
class daNpcDrSol_Param_c {
public:
/* 809AF938 */ ~daNpcDrSol_Param_c();
/* 809AF938 */ virtual ~daNpcDrSol_Param_c() {}
static u8 const m[108];
static const daNpcDrSol_HIOParam m;
};

File diff suppressed because it is too large Load Diff