Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_ashB.h
Go to the documentation of this file.
1#ifndef D_A_NPC_ASHB_H
2#define D_A_NPC_ASHB_H
3
4#include "d/actor/d_a_npc4.h"
5
8 /* 0x6C */ f32 field_0x6c;
9};
10
12public:
13 virtual ~daNpcAshB_Param_c() {}
14
15 static const daNpcAshB_HIOParam m;
16};
17
18#if DEBUG
20public:
22
24
26};
27
28#define NPC_ASHB_HIO_CLASS daNpcAshB_HIO_c
29#else
30#define NPC_ASHB_HIO_CLASS daNpcAshB_Param_c
31#endif
32
41class daNpcAshB_c : public daNpcF_c {
42public:
43 typedef bool (daNpcAshB_c::*ActionFn)(void*);
44 typedef BOOL (daNpcAshB_c::*EventFn)(int);
45
46 enum Animation {
47 /* 0x00 */ ANM_NONE,
48 /* 0x01 */ ANM_F_TALK_A,
49 /* 0x02 */ ANM_F_TALK_B,
50 /* 0x03 */ ANM_F_SILENT,
51 /* 0x04 */ ANM_F_COOL,
52 /* 0x05 */ ANM_F_ASK,
53 /* 0x06 */ ANM_F_EXPLAIN_A,
54 /* 0x07 */ ANM_F_EXPLAIN_B,
55 /* 0x08 */ ANM_WAIT_A,
56 /* 0x09 */ ANM_WAIT_B,
57 /* 0x0A */ ANM_WAIT_C,
58 /* 0x0B */ ANM_STEP,
59 /* 0x0C */ ANM_COOL,
60 /* 0x0D */ ANM_ASK,
61 /* 0x0E */ ANM_EXPLAIN_A,
62 /* 0x0F */ ANM_EXPLAIN_B,
63 /* 0x10 */ ANM_BOWWAIT,
64 /* 0x11 */ ANM_BOWRUN,
65 };
66
68 /* 0x0 */ EXPR_TALK_A,
69 /* 0x1 */ EXPR_TALK_B,
70 /* 0x2 */ EXPR_SILENT,
71 /* 0x3 */ EXPR_COOL,
72 /* 0x4 */ EXPR_ASK,
73 /* 0x5 */ EXPR_EXPLAIN_A,
74 /* 0x6 */ EXPR_EXPLAIN_B,
75 /* 0x7 */ EXPR_NONE,
76 };
77
78 enum Motion {
79 /* 0x0 */ MOT_WAIT_A,
80 /* 0x1 */ MOT_WAIT_B,
81 /* 0x2 */ MOT_WAIT_C,
82 /* 0x3 */ MOT_COOL,
83 /* 0x4 */ MOT_ASK,
84 /* 0x5 */ MOT_EXPLAIN_A,
85 /* 0x6 */ MOT_EXPLAIN_B,
86 /* 0x7 */ MOT_BOWWAIT,
87 /* 0x8 */ MOT_BOWRUN,
88 /* 0x9 */ MOT_STEP,
89 };
90
91 enum LookMode {
92 /* 0 */ LOOK_NONE,
93 /* 1 */ LOOK_RESET,
94 /* 2 */ LOOK_PLAYER,
96 /* 4 */ LOOK_ACTOR,
97 /* 5 */ LOOK_ATTN,
98 };
99
100public:
101 daNpcAshB_c();
102 ~daNpcAshB_c();
105 int Delete();
106 int Execute();
107 int Draw();
108 bool ctrlJoint(J3DJoint*, J3DModel*);
110 static BOOL ctrlJointCallBack(J3DJoint*, int);
111 inline bool setExpressionAnm(int, bool);
112 inline bool setExpressionBtp(int);
113 void setMotionAnm(int, f32);
114 void reset();
115 inline bool setAction(ActionFn i_actionFn);
116 bool wait(void*);
117 void setMotion(int, f32, int);
118 void setExpression(int, f32);
119 bool talk(void*);
120 bool demo(void*);
121 BOOL EvCut_Appear(int);
122 inline void setParam();
123 inline BOOL main();
124 inline void playMotion();
125 inline BOOL ctrlBtk();
126 inline void setAttnPos();
127 inline void lookat();
128 inline void drawOtherMdls();
129 inline BOOL drawDbgInfo();
130
131 s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
132 inline void setExpressionTalkAfter() { setExpression(6, -1.0f); }
133 inline void setLookMode(int i_lookMode);
134 inline BOOL chkFindPlayer();
135 inline bool step(s16, int, f32);
136 inline void playExpression();
137
138 static EventFn mEvtSeqList[2];
139
140private:
143 /* 0xBDC */ J3DModel* mpModel;
146 /* 0xC84 */ NPC_ASHB_HIO_CLASS* mpHIO;
147 /* 0xC88 */ dCcD_Cyl mCyl;
148 /* 0xDC4 */ ActionFn mpActionFn;
150 /* 0xDD8 */ u32 mItemPartnerId;
151 /* 0xDDC */ u32 field_0xddc;
152 /* 0xDE0 */ u32 field_0xde0;
153 /* 0xDE4 */ s16 mFlowID;
154 /* 0xDE6 */ s16 mLookMode;
155 /* 0xDE8 */ u16 mMode;
156 /* 0xDEA */ s16 field_0xdea;
157 /* 0xDEC */ u8 field_0xdec;
158 /* 0xDED */ u8 field_0xded;
159 /* 0xDEE */ u8 field_0xdee;
160};
161
162STATIC_ASSERT(sizeof(daNpcAshB_c) == 0xdf0);
163
164#endif /* D_A_NPC_ASHB_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition Z2Creature.h:7
Definition d_cc_d.h:461
Definition d_a_npc_ashB.h:19
void genMessage(JORMContext *)
Definition d_a_npc_ashB.cpp:88
daNpcAshB_HIO_c()
Definition d_a_npc_ashB.cpp:84
daNpcAshB_HIOParam m
Definition d_a_npc_ashB.h:25
Definition d_a_npc_ashB.h:11
static const daNpcAshB_HIOParam m
Definition d_a_npc_ashB.h:12
virtual ~daNpcAshB_Param_c()
Definition d_a_npc_ashB.h:13
Ashei (Yeti Garb)
Definition d_a_npc_ashB.h:41
u8 field_0xdee
Definition d_a_npc_ashB.h:159
BOOL main()
Definition d_a_npc_ashB.cpp:1110
u32 field_0xddc
Definition d_a_npc_ashB.h:151
NPC_ASHB_HIO_CLASS * mpHIO
Definition d_a_npc_ashB.h:146
void setAttnPos()
Definition d_a_npc_ashB.cpp:1144
u16 mMode
Definition d_a_npc_ashB.h:155
void playMotion()
Definition d_a_npc_ashB.cpp:380
dCcD_Cyl mCyl
Definition d_a_npc_ashB.h:147
bool setAction(ActionFn i_actionFn)
Definition d_a_npc_ashB.cpp:642
static EventFn mEvtSeqList[2]
Definition d_a_npc_ashB.h:95
void playExpression()
Definition d_a_npc_ashB.cpp:356
void reset()
Definition d_a_npc_ashB.cpp:608
BOOL chkFindPlayer()
Definition d_a_npc_ashB.cpp:334
u8 field_0xdec
Definition d_a_npc_ashB.h:157
static BOOL createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_ashB.cpp:275
bool ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_ashB.cpp:240
daNpcF_Lookat_c mLookat
Definition d_a_npc_ashB.h:144
bool wait(void *)
Definition d_a_npc_ashB.cpp:690
int Execute()
Definition d_a_npc_ashB.cpp:228
BOOL CreateHeap()
Definition d_a_npc_ashB.cpp:180
int Delete()
Definition d_a_npc_ashB.cpp:222
Z2Creature mCreatureSound
Definition d_a_npc_ashB.h:141
u32 mItemPartnerId
Definition d_a_npc_ashB.h:150
static BOOL ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_ashB.cpp:280
BOOL EvCut_Appear(int)
Definition d_a_npc_ashB.cpp:984
s16 field_0xdea
Definition d_a_npc_ashB.h:156
Expression
Definition d_a_npc_ashB.h:67
@ EXPR_COOL
Definition d_a_npc_ashB.h:71
@ EXPR_ASK
Definition d_a_npc_ashB.h:72
@ EXPR_EXPLAIN_A
Definition d_a_npc_ashB.h:73
@ EXPR_NONE
Definition d_a_npc_ashB.h:75
@ EXPR_TALK_B
Definition d_a_npc_ashB.h:69
@ EXPR_TALK_A
Definition d_a_npc_ashB.h:68
@ EXPR_SILENT
Definition d_a_npc_ashB.h:70
@ EXPR_EXPLAIN_B
Definition d_a_npc_ashB.h:74
J3DModel * mpModel
Definition d_a_npc_ashB.h:143
daNpcAshB_c()
Definition d_a_npc_ashB.cpp:100
void setExpressionTalkAfter()
Definition d_a_npc_ashB.h:132
void setParam()
Definition d_a_npc_ashB.cpp:1100
void drawOtherMdls()
Definition d_a_npc_ashB.cpp:1185
bool(daNpcAshB_c::*) ActionFn(void *)
Definition d_a_npc_ashB.h:43
ActionFn mpActionFn
Definition d_a_npc_ashB.h:148
bool talk(void *)
Definition d_a_npc_ashB.cpp:856
~daNpcAshB_c()
Definition d_a_npc_ashB.cpp:102
bool setExpressionAnm(int, bool)
Definition d_a_npc_ashB.cpp:489
Motion
Definition d_a_npc_ashB.h:78
@ MOT_BOWWAIT
Definition d_a_npc_ashB.h:86
@ MOT_EXPLAIN_B
Definition d_a_npc_ashB.h:85
@ MOT_STEP
Definition d_a_npc_ashB.h:88
@ MOT_ASK
Definition d_a_npc_ashB.h:83
@ MOT_EXPLAIN_A
Definition d_a_npc_ashB.h:84
@ MOT_WAIT_B
Definition d_a_npc_ashB.h:80
@ MOT_WAIT_A
Definition d_a_npc_ashB.h:79
@ MOT_COOL
Definition d_a_npc_ashB.h:82
@ MOT_BOWRUN
Definition d_a_npc_ashB.h:87
@ MOT_WAIT_C
Definition d_a_npc_ashB.h:81
BOOL(daNpcAshB_c::*) EventFn(int)
Definition d_a_npc_ashB.h:44
s16 getMessageNo()
Definition d_a_npc_ashB.h:131
cPhs__Step Create()
Definition d_a_npc_ashB.cpp:118
Animation
Definition d_a_npc_ashB.h:46
@ ANM_F_ASK
Definition d_a_npc_ashB.h:52
@ ANM_EXPLAIN_B
Definition d_a_npc_ashB.h:62
@ ANM_COOL
Definition d_a_npc_ashB.h:59
@ ANM_WAIT_B
Definition d_a_npc_ashB.h:56
@ ANM_F_EXPLAIN_B
Definition d_a_npc_ashB.h:54
@ ANM_EXPLAIN_A
Definition d_a_npc_ashB.h:61
@ ANM_BOWRUN
Definition d_a_npc_ashB.h:64
@ ANM_WAIT_C
Definition d_a_npc_ashB.h:57
@ ANM_F_COOL
Definition d_a_npc_ashB.h:51
@ ANM_F_EXPLAIN_A
Definition d_a_npc_ashB.h:53
@ ANM_F_SILENT
Definition d_a_npc_ashB.h:50
@ ANM_STEP
Definition d_a_npc_ashB.h:58
@ ANM_WAIT_A
Definition d_a_npc_ashB.h:55
@ ANM_NONE
Definition d_a_npc_ashB.h:47
@ ANM_F_TALK_A
Definition d_a_npc_ashB.h:48
@ ANM_BOWWAIT
Definition d_a_npc_ashB.h:63
@ ANM_ASK
Definition d_a_npc_ashB.h:60
@ ANM_F_TALK_B
Definition d_a_npc_ashB.h:49
u32 field_0xde0
Definition d_a_npc_ashB.h:152
void setLookMode(int i_lookMode)
Definition d_a_npc_ashB.cpp:291
bool step(s16, int, f32)
Definition d_a_npc_ashB.cpp:655
daNpcF_ActorMngr_c mActorMngr[1]
Definition d_a_npc_ashB.h:145
void lookat()
Definition d_a_npc_ashB.cpp:432
void setMotionAnm(int, f32)
Definition d_a_npc_ashB.cpp:567
u8 field_0xded
Definition d_a_npc_ashB.h:158
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_ashB.h:142
s16 mFlowID
Definition d_a_npc_ashB.h:153
int Draw()
Definition d_a_npc_ashB.cpp:233
LookMode
Definition d_a_npc_ashB.h:91
@ LOOK_RESET
Definition d_a_npc_ashB.h:93
@ LOOK_NONE
Definition d_a_npc_ashB.h:92
@ LOOK_ATTN
Definition d_a_npc_ashB.h:97
@ LOOK_ACTOR
Definition d_a_npc_ashB.h:96
@ LOOK_PLAYER
Definition d_a_npc_ashB.h:94
@ LOOK_PLAYER_TALK
Definition d_a_npc_ashB.h:95
bool demo(void *)
Definition d_a_npc_ashB.cpp:929
BOOL ctrlBtk()
Definition d_a_npc_ashB.cpp:1127
s16 mLookMode
Definition d_a_npc_ashB.h:154
void setExpression(int, f32)
Definition d_a_npc_ashB.cpp:836
void setMotion(int, f32, int)
Definition d_a_npc_ashB.cpp:804
request_of_phase_process_class mPhase[1]
Definition d_a_npc_ashB.h:149
bool setExpressionBtp(int)
Definition d_a_npc_ashB.cpp:547
BOOL drawDbgInfo()
Definition d_a_npc_ashB.cpp:1196
Definition d_a_npc4.h:14
Definition d_a_npc4.h:379
Definition d_a_npc4.h:292
Definition d_a_npc4.h:54
Definition f_op_actor.h:230
Definition m_Do_hostIO.h:27
STATIC_ASSERT(sizeof(daNpcAshB_c)==0xdf0)
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
Definition d_a_npc_ashB.h:6
daNpcF_HIOParam common
Definition d_a_npc_ashB.h:7
f32 field_0x6c
Definition d_a_npc_ashB.h:8
Definition d_a_npc4.h:423
Definition c_phase.h:17