|
2 | 2 | #define D_A_NPC_DOORBOY_H |
3 | 3 |
|
4 | 4 | #include "d/actor/d_a_npc.h" |
| 5 | +#include "d/d_msg_object.h" |
5 | 6 |
|
6 | 7 | /** |
7 | 8 | * @ingroup actors-npcs |
|
10 | 11 | * |
11 | 12 | * @details |
12 | 13 | * |
13 | | - */ |
14 | | -class daNpcDoorBoy_c : public fopAc_ac_c { |
| 14 | +*/ |
| 15 | + |
| 16 | +struct daNpcDoorBoy_HIOParam { |
| 17 | + /* 0x0 */ daNpcF_HIOParam common; |
| 18 | +}; |
| 19 | + |
| 20 | +class daNpcDoorBoy_c : public daNpcF_c { |
15 | 21 | public: |
| 22 | + typedef bool (daNpcDoorBoy_c::*actionFunc)(void*); |
| 23 | + typedef BOOL (daNpcDoorBoy_c::*EventFn)(int); |
| 24 | + |
16 | 25 | /* 809AAC8C */ daNpcDoorBoy_c(); |
17 | 26 | /* 809AAEA0 */ ~daNpcDoorBoy_c(); |
18 | | - /* 809AB088 */ void Create(); |
19 | | - /* 809AB320 */ void CreateHeap(); |
20 | | - /* 809AB4A4 */ void Delete(); |
21 | | - /* 809AB4D8 */ void Execute(); |
22 | | - /* 809AB4FC */ void Draw(); |
23 | | - /* 809AB578 */ void ctrlJoint(J3DJoint*, J3DModel*); |
24 | | - /* 809AB704 */ void createHeapCallBack(fopAc_ac_c*); |
25 | | - /* 809AB724 */ void ctrlJointCallBack(J3DJoint*, int); |
| 27 | + /* 809AB088 */ cPhs__Step Create(); |
| 28 | + /* 809AB320 */ int CreateHeap(); |
| 29 | + /* 809AB4A4 */ int Delete(); |
| 30 | + /* 809AB4D8 */ int Execute(); |
| 31 | + /* 809AB4FC */ int Draw(); |
| 32 | + /* 809AB578 */ int ctrlJoint(J3DJoint*, J3DModel*); |
| 33 | + /* 809AB704 */ static int createHeapCallBack(fopAc_ac_c*); |
| 34 | + /* 809AB724 */ static int ctrlJointCallBack(J3DJoint*, int); |
26 | 35 | /* 809AB770 */ void setMotion(int, f32, int); |
27 | 36 | /* 809AB7B8 */ void reset(); |
28 | | - /* 809AB984 */ void setAction(bool (daNpcDoorBoy_c::*)(void*)); |
29 | | - /* 809ABA2C */ void wait(void*); |
30 | | - /* 809AC064 */ void fear(void*); |
31 | | - /* 809AC114 */ void talk(void*); |
32 | | - /* 809AC528 */ void demo(void*); |
33 | | - /* 809AC6F4 */ void dummyTalk(void*); |
| 37 | + /* 809AB984 */ inline BOOL setAction(bool (daNpcDoorBoy_c::*)(void*)); |
| 38 | + /* 809ABA2C */ bool wait(void*); |
| 39 | + /* 809AC064 */ bool fear(void*); |
| 40 | + /* 809AC114 */ bool talk(void*); |
| 41 | + /* 809AC528 */ bool demo(void*); |
| 42 | + /* 809AC6F4 */ bool dummyTalk(void*); |
34 | 43 | /* 809AC994 */ void setParam(); |
35 | | - /* 809ACA58 */ void main(); |
| 44 | + /* 809ACA58 */ BOOL main(); |
36 | 45 | /* 809ACC5C */ void setAttnPos(); |
37 | | - /* 809ACE18 */ void lookat(); |
38 | | - /* 809ACFF8 */ bool setMotionAnm(int, f32); |
39 | | - /* 809AD0C8 */ bool drawDbgInfo(); |
| 46 | + /* 809ACE18 */ inline void lookat(); |
| 47 | + /* 809ACFF8 */ void setMotionAnm(int, f32); |
| 48 | + /* 809AD0C8 */ BOOL drawDbgInfo(); |
40 | 49 | /* 809AD938 */ void adjustShapeAngle(); |
41 | 50 |
|
42 | | - static u8 mEvtSeqList[12]; |
| 51 | + inline u16 getMessageNo() { return fopAcM_GetParam(this) >> 8; } |
| 52 | + inline void playMotion(); |
| 53 | + inline bool chkFindPlayer(); |
| 54 | + inline void setLookMode(int); |
| 55 | + inline BOOL step(s16, int); |
| 56 | + inline s16 dMsgObject_getNowTalkFlowNo() { return dMsgObject_getMsgObjectClass()->getNowTalkFlowNo(); } |
| 57 | + inline int getTimeHour(); |
| 58 | + inline bool isDummyTalk(); |
| 59 | + |
| 60 | + static EventFn mEvtSeqList[1]; |
43 | 61 |
|
44 | 62 | private: |
45 | | - /* 0x568 */ u8 field_0x568[0xe08 - 0x568]; |
| 63 | + /* 0xB48 */ Z2CreatureCitizen mSound; |
| 64 | + /* 0xBEC */ u8 field_0xbec[0xbf0 - 0xbec]; |
| 65 | + /* 0xBF0 */ daNpcF_Lookat_c mLookat; |
| 66 | + /* 0xC8C */ daNpcF_ActorMngr_c mActorMngr[1]; |
| 67 | + /* 0xC95 */ u8 field_0xc94[0xc98 - 0xc94]; |
| 68 | + /* 0xC98 */ dCcD_Cyl field_0xc98; |
| 69 | + /* 0xDD4 */ actionFunc mAction; |
| 70 | + /* 0xDE0 */ request_of_phase_process_class mPhases[2]; |
| 71 | + /* 0xDF0 */ fpc_ProcID field_0xdf0; |
| 72 | + /* 0xDF4 */ int field_0xdf4; |
| 73 | + /* 0xDF8 */ int field_0xdf8; |
| 74 | + /* 0xDFC */ int mMessageNo; |
| 75 | + /* 0xE00 */ s16 mLookMode; |
| 76 | + /* 0xE02 */ s16 field_0xe02; |
| 77 | + /* 0xE04 */ u16 mMode; |
| 78 | + /* 0xE06 */ u8 field_0xe06; |
46 | 79 | }; |
47 | 80 |
|
48 | 81 | STATIC_ASSERT(sizeof(daNpcDoorBoy_c) == 0xe08); |
49 | 82 |
|
50 | 83 | class daNpcDoorBoy_Param_c { |
51 | 84 | public: |
52 | | - /* 809AD93C */ ~daNpcDoorBoy_Param_c(); |
| 85 | + /* 809AD93C */ virtual ~daNpcDoorBoy_Param_c() {} |
53 | 86 |
|
54 | | - static u8 const m[108]; |
| 87 | + static daNpcDoorBoy_HIOParam const m; |
55 | 88 | }; |
56 | 89 |
|
57 | 90 |
|
|
0 commit comments