tp/include/d/actor/d_a_npc_drainSol.h

73 lines
2.0 KiB
C++

#ifndef D_A_NPC_DRAINSOL_H
#define D_A_NPC_DRAINSOL_H
#include "d/actor/d_a_npc.h"
/**
* @ingroup actors-npcs
* @class daNpcDrSol_c
* @brief Drain Soldier (Hyrule Castle Sewer Soldier?)
*
* @details
*
*/
class daNpcDrSol_c : public daNpcF_c {
public:
/* 809ADE6C */ daNpcDrSol_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 */ inline int setAction(bool (daNpcDrSol_c::*)(void*));
/* 809AE8EC */ bool chkFindPlayer();
/* 809AE994 */ bool wait(void*);
/* 809AEB94 */ bool talk(void*);
/* 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 */ virtual ~daNpcDrSol_Param_c() {}
static const daNpcDrSol_HIOParam m;
};
#endif /* D_A_NPC_DRAINSOL_H */