mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-01 19:30:21 -04:00
146 lines
4.0 KiB
C++
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 */
|