Files
tww/include/d/actor/d_a_npc_roten.h
T
2025-03-18 15:10:32 -04:00

146 lines
4.0 KiB
C++

#ifndef D_A_NPC_ROTEN_H
#define D_A_NPC_ROTEN_H
#include "f_op/f_op_actor.h"
#include "d/d_npc.h"
struct sRotenAnmDat {
/* 0x00 */ u8 field_0x00;
/* 0x01 */ u8 field_0x01;
/* 0x02 */ u8 field_0x02;
}; // Size: 0x03
class daNpcRoten_c : public fopNpc_npc_c {
public:
enum Prm_e {
PRM_RAIL_ID_W = 0x08,
PRM_RAIL_ID_S = 0x10,
PRM_NPC_NO_W = 0x08,
PRM_NPC_NO_S = 0x18,
};
request_of_phase_process_class* getPhaseP() { return &mPhs; }
cXyz getWindVec() { return field_0x720; }
void setNpcNo(u8 npcNo) { mNpcNo = npcNo; }
void setResFlag(u8 flag) { field_0x9BC = flag; }
daNpcRoten_c();
cPhs_State _create();
BOOL createHeap();
cPhs_State createInit();
bool _delete();
bool _draw();
bool _execute();
bool executeCommon();
void executeSetMode(u8);
s32 executeWaitInit();
void executeWait();
s32 executeTalkInit();
void executeTalk();
s32 executeWalkInit();
void executeWalk();
s32 executeTurnInit();
void executeTurn();
s32 executeWindInit();
void executeWind();
void checkOrder();
void eventOrder();
void eventMove();
void privateCut();
void eventInit();
void eventMesSetInit(int);
bool eventMesSet();
void eventSetItemInit();
bool eventSetItem();
void eventClrItemInit();
void eventGetItemInit(int);
void eventSetAngleInit();
void eventOnPlrInit();
void eventOffPlrInit();
u16 next_msgStatus(u32*);
u32 getMsg();
void setMessage(u32);
void setAnmFromMsgTag();
u8 getPrmNpcNo();
u8 getPrmRailID();
void setMtx();
void chkAttention();
void lookBack();
BOOL initTexPatternAnm(bool);
void playTexPatternAnm();
void playAnm();
void setAnm(u8, int, f32);
bool setAnmTbl(sRotenAnmDat*);
BOOL isHaitatuItem(u8);
BOOL isKoukanItem(u8);
BOOL isGetMap(u8);
s16 XyEventCB(int);
void setCollisionB();
void setCollisionH();
public:
typedef s32(daNpcRoten_c::*InitFunc_t)();
typedef void(daNpcRoten_c::*MoveFunc_t)();
/* 0x6C4 */ request_of_phase_process_class mPhs;
/* 0x6CC */ request_of_phase_process_class mPhs2;
/* 0x6D4 */ J3DModel* field_0x6D4;
/* 0x6D8 */ mDoExt_McaMorf* field_0x6D8;
/* 0x6DC */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x6E0 */ mDoExt_btpAnm mBtpAnm;
/* 0x6F4 */ u32 mShadowId;
/* 0x6F8 */ u32 field_0x6F8;
/* 0x6FC */ fpc_ProcID field_0x6FC;
/* 0x700 */ dNpc_PathRun_c mPathRun;
/* 0x708 */ cXyz field_0x708;
/* 0x714 */ cXyz field_0x714;
/* 0x720 */ cXyz field_0x720;
/* 0x72C */ dCcD_Cyl mCyl2;
/* 0x85C */ dCcD_Sph mSph;
/* 0x988 */ sRotenAnmDat* field_0x988;
/* 0x98C */ u32* field_0x98C;
/* 0x990 */ f32 field_0x990;
/* 0x994 */ f32 field_0x994;
/* 0x998 */ s32 field_0x998;
/* 0x99C */ bool field_0x99C;
/* 0x99E */ s16 field_0x99E;
/* 0x9A0 */ s16 field_0x9A0;
/* 0x9A2 */ s16 field_0x9A2;
/* 0x9A4 */ s16 field_0x9A4;
/* 0x9A6 */ s16 field_0x9A6;
/* 0x9A8 */ s16 field_0x9A8;
/* 0x9AA */ s16 field_0x9AA;
/* 0x9AC */ s16 field_0x9AC;
/* 0x9AE */ s16 field_0x9AE;
/* 0x9B0 */ s16 field_0x9B0;
/* 0x9B2 */ u16 field_0x9B2;
/* 0x9B4 */ bool field_0x9B4;
/* 0x9B5 */ u8 field_0x9B5;
/* 0x9B6 */ u8 field_0x9B6;
/* 0x9B7 */ u8 field_0x9B7;
/* 0x9B8 */ u8 field_0x9B8;
/* 0x9B9 */ s8 m_hand_L_jnt_num;
/* 0x9BA */ s8 m_bag_jnt_num;
/* 0x9BB */ u8 field_0x9BB;
/* 0x9BC */ u8 field_0x9BC;
/* 0x9BD */ u8 mNpcNo;
/* 0x9BE */ u8 field_0x9BE;
/* 0x9BF */ u8 field_0x9BF;
/* 0x9C0 */ u8 field_0x9C0;
/* 0x9C1 */ u8 field_0x9C1;
/* 0x9C2 */ s8 field_0x9C2;
/* 0x9C3 */ s8 field_0x9C3;
/* 0x9C4 */ s8 field_0x9C4;
/* 0x9C5 */ u8 mShownItemBtn;
/* 0x9C6 */ u8 field_0x9C6;
/* 0x9C7 */ u8 field_0x9C7;
/* 0x9C8 */ u8 field_0x9C8;
/* 0x9C9 */ u8 field_0x9C9;
/* 0x9CA */ u8 field_0x9CA;
static const char m_arcname[];
}; // Size: 0x9CC
#endif /* D_A_NPC_ROTEN_H */