d_a_npc_fa1 - 99% matching (#780)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
This commit is contained in:
123456789758
2025-06-01 17:49:10 -04:00
committed by GitHub
parent bd1cace545
commit 7eb543eb50
5 changed files with 838 additions and 121 deletions
+121 -21
View File
@@ -1,18 +1,44 @@
#ifndef D_A_NPC_FA1_H
#define D_A_NPC_FA1_H
#include "d/d_npc.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_particle.h"
#include "m_Do/m_Do_hostIO.h"
class daNpc_Fa1_McaMorfCallBack1_c : public mDoExt_McaMorfCallBack1_c {
public:
daNpc_Fa1_McaMorfCallBack1_c();
bool execute(unsigned short, J3DTransformInfo*);
public:
/* 0x04 */ s16 m04;
/* 0x06 */ u16 m06;
};
class daNpc_Fa1_c : public fopAc_ac_c {
class daNpc_Fa1_c : public fopNpc_npc_c {
public:
enum ActionType_e {
ActionType_NORMAL_MOVE_e = 0,
ActionType_PLAYER_MOVE_e = 1,
ActionType_ESCAPE_MOVE_e = 2,
ActionType_BOTTLE_APPEAR_MOVE_e = 3,
ActionType_BOTTLE_BABA_WAIT_e = 4,
ActionType_BOTTLE_BABA_MOVE_e = 5,
ActionType_BOTTLE_BABA_MOVE2_e = 6,
ActionType_BIGELF_CHANGE_e = 7,
ActionType_HOVER_MOVE_e = 8,
};
enum MoveType_e {
MoveType_STRAIGHT_e = 0,
MoveType_TURN_e = 1,
MoveType_UP_e = 2,
MoveType_AREAOUTMOVE_e = 3,
};
void checkStatus(unsigned char) {}
void countTime2() {}
void countTimer() {}
@@ -43,10 +69,10 @@ public:
void setTypeNormal() {}
void setPointLightParam();
void createInit();
bool _draw();
bool _execute();
void checkBinCatch();
int createInit();
BOOL _draw();
BOOL _execute();
BOOL checkBinCatch();
void position_move(float, float);
void BGCheck();
void init_normal_move();
@@ -86,50 +112,124 @@ public:
void init_bigelf_change();
void bigelf_change();
void findPlayer();
bool _delete();
BOOL _delete();
cPhs_State _create();
void CreateHeap();
int CreateHeap();
void setMtx();
public:
/* 0x6C4 */ u8 m6C4[0x6D0 - 0x6C4];
typedef void(daNpc_Fa1_c::*MoveFunc_t)();
typedef void(daNpc_Fa1_c::*MoveSubFunc_t)();
typedef void(daNpc_Fa1_c::*BottleMoveSubFunc_t)();
typedef void(daNpc_Fa1_c::*BottleBabaSubFunc_t)();
/* 0x6C4 */ u8 m6C4[0x6CC - 0x6C4];
/* 0x6CC */ mDoExt_McaMorf* mpDoExt_McaMorf;
/* 0x6D0 */ daNpc_Fa1_McaMorfCallBack1_c mMcaMorfCallback1;
/* 0x6D8 */ dPa_followEcallBack mSparklePtclCallback;
/* 0x6EC */ JPABaseEmitter* mpEmitter;
/* 0x6F0 */ dBgS_GndChk mGndChk;
/* 0x744 */ u8 m744[0x784 - 0x744];
/* 0x6F0 */ dBgS_ObjGndChk_All mGndChk;
/* 0x744 */ LIGHT_INFLUENCE mPointLight;
/* 0x764 */ fopAc_ac_c* m764;
/* 0x768 */ cXyz m768;
/* 0x774 */ cXyz m774;
/* 0x780 */ f32 m780;
/* 0x784 */ f32 mGroundYPos;
/* 0x788 */ s16 m788;
/* 0x78A */ u8 m78A[0x794 - 0x78A];
/* 0x794 */ u8 m794;
/* 0x795 */ u8 m795[0x7A4 - 0x795];
/* 0x788 */ u16 mTimer;
/* 0x78A */ s16 m78A;
/* 0x78C */ s16 m78C;
/* 0x78E */ s16 m78E;
/* 0x790 */ u8 mActionType;
/* 0x791 */ u8 mMoveTimer;
/* 0x792 */ u8 mMoveType;
/* 0x793 */ s8 m793;
/* 0x794 */ s8 m794;
/* 0x795 */ u8 m795[0x798 - 0x795];
/* 0x798 */ s16 m798;
/* 0x79A */ s16 m79A;
/* 0x79C */ f32 m79C;
/* 0x7A0 */ f32 m7A0;
};
class daNpc_Fa1_HIO3_c {
public:
struct hio_prm_c {
// Note: Offsets are relative to daNpc_Fa1_HIO3_c instead of hio_prm_c for convenience.
/* 0x08 */ f32 m08;
/* 0x0C */ f32 m0C;
/* 0x10 */ f32 m10;
/* 0x14 */ f32 m14;
/* 0x18 */ s16 m18;
};
daNpc_Fa1_HIO3_c();
~daNpc_Fa1_HIO3_c();
virtual ~daNpc_Fa1_HIO3_c() {};
public:
/* Place member variables here */
/* 0x04 */ s8 mNo;
/* 0x08 */ hio_prm_c prm;
};
class daNpc_Fa1_HIO2_c {
public:
struct hio_prm_c {
// Note: Offsets are relative to daNpc_Fa1_HIO2_c instead of hio_prm_c for convenience.
/* 0x08 */ f32 m08;
/* 0x0C */ f32 m0C;
/* 0x10 */ f32 m10;
/* 0x14 */ f32 m14;
/* 0x18 */ f32 m18;
/* 0x1C */ f32 m1C;
/* 0x20 */ s16 m20;
/* 0x22 */ s16 m22;
/* 0x24 */ s16 m24;
};
daNpc_Fa1_HIO2_c();
~daNpc_Fa1_HIO2_c();
virtual ~daNpc_Fa1_HIO2_c() {};
public:
/* Place member variables here */
/* 0x04 */ s8 mNo;
/* 0x08 */ hio_prm_c prm;
};
class daNpc_Fa1_HIO_c {
class daNpc_Fa1_HIO_c : public JORReflexible {
public:
struct hio_prm_c {
// Note: Offsets are relative to daNpc_Fa1_HIO_c instead of hio_prm_c for convenience.
/* 0x08 */ f32 m08;
/* 0x0C */ f32 m0C;
/* 0x10 */ f32 m10;
/* 0x14 */ f32 m14;
/* 0x18 */ f32 m18;
/* 0x1C */ f32 m1C;
/* 0x20 */ f32 m20;
/* 0x24 */ f32 m24;
/* 0x28 */ f32 m28;
/* 0x2C */ f32 m2C;
/* 0x30 */ f32 m30;
/* 0x34 */ f32 m34;
/* 0x38 */ f32 m38;
/* 0x3C */ s16 m3C;
/* 0x3E */ s16 m3E;
/* 0x40 */ s16 m40;
/* 0x42 */ s16 m42;
/* 0x44 */ s16 m44;
/* 0x46 */ s16 m46;
/* 0x48 */ s16 m48;
/* 0x4A */ s16 m4A;
/* 0x4C */ s16 m4C;
/* 0x4E */ s16 m4E;
};
daNpc_Fa1_HIO_c();
~daNpc_Fa1_HIO_c();
virtual ~daNpc_Fa1_HIO_c() {};
public:
/* Place member variables here */
/* 0x04 */ s8 mNo;
/* 0x08 */ hio_prm_c prm;
/* 0x50 */ daNpc_Fa1_HIO2_c m50;
/* 0x78 */ daNpc_Fa1_HIO3_c m78;
};
#endif /* D_A_NPC_FA1_H */
+3 -1
View File
@@ -257,7 +257,9 @@ public:
// TODO:
void LockEdge() {}
void chkEnemySound() {}
void LookRequest(fopAc_ac_c*, f32, f32, f32, s16, int) {}
void LookRequest(fopAc_ac_c* reqActor, f32 horizontalDist, f32 upDist, f32 downDist, s16 angle, int param_5) {
mLook[0].request(reqActor, horizontalDist, upDist, downDist, angle, param_5);
}
void Look2RequestF(fopAc_ac_c*, s16, int) {}
public:
+1
View File
@@ -408,6 +408,7 @@ void dKy_vrbox_addcol_kasumi_set(s16, s16, s16, f32);
void dKy_vrbox_addcol_set(s16, s16, s16, f32);
void dKy_addcol_fog_set(s16, s16, s16, f32);
void dKy_plight_set(LIGHT_INFLUENCE*);
f32 dKy_yuragi_ratio_set(f32 param_0);
void dKy_plight_priority_set(LIGHT_INFLUENCE*);
void dKy_efplight_set(LIGHT_INFLUENCE* param_0);
void dKy_plight_cut(LIGHT_INFLUENCE* param_0);
+1 -1
View File
@@ -137,7 +137,7 @@ enum {
/* 0x81 */ DSNAP_TYPE_UNK81,
/* 0x82 */ DSNAP_TYPE_UNK82,
/* 0x83 */ DSNAP_TYPE_UNK83,
/* 0x84 */ DSNAP_TYPE_UNK84,
/* 0x84 */ DSNAP_TYPE_FA,
/* 0x85 */ DSNAP_TYPE_UNK85,
/* 0x86 */ DSNAP_TYPE_UNK86,
/* 0x87 */ DSNAP_TYPE_UNK87,
File diff suppressed because it is too large Load Diff