Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_theB.h
Go to the documentation of this file.
1#ifndef D_A_NPC_THEB_H
2#define D_A_NPC_THEB_H
3
4#include "d/actor/d_a_npc4.h"
5
18
20 virtual ~daNpcTheB_Param_c() {}
21
22 static daNpcTheB_HIOParam const m;
23};
24
25#if DEBUG
27public:
31
33};
34#define NPC_THEB_HIO_CLASS daNpcTheB_HIO_c
35#else
36#define NPC_THEB_HIO_CLASS daNpcTheB_Param_c
37#endif
38
39class daNpcTheB_c : public daNpcF_c {
40public:
41 typedef int (daNpcTheB_c::*actionFunc)(void*);
42 typedef int (daNpcTheB_c::*cutFunc)(int);
43
44 enum Animation {
45 /* 0x0 */ ANM_NONE,
46 /* 0x1 */ ANM_F_TALK_A,
47 /* 0x2 */ ANM_F_TALK_B,
48 /* 0x3 */ ANM_F_TALK_C,
49 /* 0x4 */ ANM_F_BEND_TURN,
50 /* 0x5 */ ANM_FH_TALK_B,
51 /* 0x6 */ ANM_FH_TALK_C,
53 /* 0x8 */ ANM_SIT,
54 /* 0x9 */ ANM_SIT_B,
55 /* 0xA */ ANM_WHIP,
56 /* 0xB */ ANM_WHIP_B,
57 /* 0xC */ ANM_BEND_WAIT,
58 /* 0xD */ ANM_BEND_TURN,
59 };
60
62 /* 0x0 */ EXPR_TALK_A,
63 /* 0x1 */ EXPR_TALK_B,
64 /* 0x2 */ EXPR_TALK_C,
65 /* 0x3 */ EXPR_NONE,
66 };
67
68 enum Motion {
69 /* 0x0 */ MOT_SIT,
70 /* 0x1 */ MOT_SIT_B,
71 /* 0x2 */ MOT_BEND_WAIT,
72 /* 0x3 */ MOT_WHIP,
73 /* 0x4 */ MOT_WHIP_B,
74 /* 0x5 */ MOT_BEND_TURN,
75 };
76
78 /* 0x0 */ EXPR_BTP_THEB,
79 };
80
84 int CreateHeap();
85 int Delete();
86 int Execute();
87 int Draw();
89 static int createHeapCallBack(fopAc_ac_c*);
90 static int ctrlJointCallBack(J3DJoint*, int);
91 cXyz getHandPos1(int);
92 cXyz getHandPos2(int);
93 void setHintEvent(s32, u16, int);
94 BOOL main();
95 void setParam();
96 BOOL ctrlBtk();
97 void setAttnPos();
98 bool setExpressionAnm(int, bool);
99 bool setExpressionBtp(int);
100 void setMotionAnm(int, f32);
102 void reset();
103 void playExpression();
104 void playMotion();
105 void doNormalAction();
106 BOOL doEvent();
107 void lookat();
108 int wait(void*);
109 void setMotion(int, f32, int);
110 void setExpression(int, f32);
111 int talk(void*);
116 int EvCut_TheBHint(int);
118
119 s16 getMessageNo() { return fopAcM_GetParam(this) & 0xFFFF; }
121 void setGameOver() { mGameOver = 1; }
124 mMode = 3;
125
126 if (mAction) {
127 (this->*mAction)(NULL);
128 }
129
130 mMode = 0;
131 mAction = action;
132
133 if (mAction) {
134 (this->*mAction)(NULL);
135 }
136 }
138 void setLookMode(int i_lookMode) {
139 if (i_lookMode >= 0 && i_lookMode < 3 && i_lookMode != mLookMode) {
140 mLookMode = i_lookMode;
141 }
142 }
143 void setWaitAnimation();
145 switch (mExpression) {
146 default:
147 setExpression(EXPR_NONE, -1.0f);
148 break;
149 }
150 }
151
152 static cutFunc mEvtSeqList[6];
153
154private:
155 /* 0xB48 */ Z2Creature mSound;
159 /* 0xC80 */ NPC_THEB_HIO_CLASS* mpHIO;
160 /* 0xC84 */ dCcD_Cyl mCyl;
162 /* 0xDCC */ actionFunc mAction;
164 /* 0xDE0 */ int field_0xde0;
165 /* 0xDE4 */ int field_0xde4;
166 /* 0xDE8 */ int field_0xde8;
167 /* 0xDEC */ int field_0xdec;
168 /* 0xDF0 */ int mRoomNo;
169 /* 0xDF4 */ int mMsgNo;
170 /* 0xDF8 */ int mHintMsgNo;
171 /* 0xDFC */ int mTimer;
172 /* 0xE00 */ s16 mLookMode;
173 /* 0xE02 */ u16 mMode;
174 /* 0xE04 */ u16 field_0xe04;
175 /* 0xE06 */ s16 mBackboneRotX;
176 /* 0xE08 */ s16 mBackboneRotY;
177 /* 0xE0A */ s16 mBackboneRotZ;
178 /* 0xE0C */ u8 mHintEvtFlag;
179 /* 0xE0D */ u8 mGameOver;
183 /* 0xE11 */ u8 mUnkFlag;
184};
185
186STATIC_ASSERT(sizeof(daNpcTheB_c) == 0xe14);
187
188#endif /* D_A_NPC_THEB_H */
static Mtx mtx[10]
Definition c_lib.cpp:486
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
void setBaseTRMtx(Mtx m)
Definition J3DModel.h:90
Definition JORMContext.h:120
Definition Z2Creature.h:7
Definition d_cc_d.h:461
Definition d_a_npc4.h:14
Definition d_a_npc4.h:379
Definition d_a_npc4.h:292
Definition d_a_npc4.h:54
s16 mExpression
Definition d_a_npc4.h:122
mDoExt_McaMorfSO * mAnm_p
Definition d_a_npc4.h:56
Definition d_a_npc_theB.h:26
daNpcTheB_HIOParam m
Definition d_a_npc_theB.h:32
daNpcTheB_HIO_c()
Definition d_a_npc_theB.cpp:142
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_theB.cpp:146
void genMessage(JORMContext *)
Definition d_a_npc_theB.cpp:170
Telma B.
Definition d_a_npc_theB.h:39
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_theB.cpp:391
int field_0xde0
Definition d_a_npc_theB.h:164
u8 mPersonalCombatAfterFlag
Definition d_a_npc_theB.h:180
BOOL ctrlBtk()
Definition d_a_npc_theB.cpp:533
BOOL chkAction(actionFunc action)
Definition d_a_npc_theB.h:137
void setMotionAnm(int, f32)
Definition d_a_npc_theB.cpp:713
s16 mBackboneRotX
Definition d_a_npc_theB.h:175
Motion
Definition d_a_npc_theB.h:68
@ MOT_SIT_B
Definition d_a_npc_theB.h:70
@ MOT_WHIP_B
Definition d_a_npc_theB.h:73
@ MOT_SIT
Definition d_a_npc_theB.h:69
@ MOT_BEND_WAIT
Definition d_a_npc_theB.h:71
@ MOT_WHIP
Definition d_a_npc_theB.h:72
@ MOT_BEND_TURN
Definition d_a_npc_theB.h:74
u8 mPersonalCombatAfterTimer
Definition d_a_npc_theB.h:182
u16 field_0xe04
Definition d_a_npc_theB.h:174
s16 getMessageNo()
Definition d_a_npc_theB.h:119
int talk(void *)
Definition d_a_npc_theB.cpp:1126
int EvCut_CoachGuardGameOver(int)
Definition d_a_npc_theB.cpp:1502
void setHintEvent(s32, u16, int)
Definition d_a_npc_theB.cpp:435
daNpcF_ActorMngr_c mActorMngrs[1]
Definition d_a_npc_theB.h:158
int(daNpcTheB_c::*) actionFunc(void *)
Definition d_a_npc_theB.h:41
void setLookMode(int i_lookMode)
Definition d_a_npc_theB.h:138
daNpcTheB_c()
Definition d_a_npc_theB.cpp:185
actionFunc mNextAction
Definition d_a_npc_theB.h:161
void playMotion()
Definition d_a_npc_theB.cpp:834
void setExpressionTalkAfter()
Definition d_a_npc_theB.h:144
bool setExpressionAnm(int, bool)
Definition d_a_npc_theB.cpp:604
int EvCut_PersonalCombatRevenge(int)
Definition d_a_npc_theB.cpp:1227
void doNormalAction()
Definition d_a_npc_theB.cpp:865
int Execute()
Definition d_a_npc_theB.cpp:334
daNpcF_Lookat_c mLookat
Definition d_a_npc_theB.h:157
s16 mBackboneRotZ
Definition d_a_npc_theB.h:177
void setAction(actionFunc action)
Definition d_a_npc_theB.h:123
cXyz getHandPos2(int)
Definition d_a_npc_theB.cpp:419
int field_0xde4
Definition d_a_npc_theB.h:165
void setWaitAnimation()
Definition d_a_npc_theB.cpp:998
int EvCut_PersonalCombatIntro(int)
Definition d_a_npc_theB.cpp:1174
int Delete()
Definition d_a_npc_theB.cpp:328
void setMotion(int, f32, int)
Definition d_a_npc_theB.cpp:1107
int EvCut_AnnulationFieldRace(int)
Definition d_a_npc_theB.cpp:1403
s16 mLookMode
Definition d_a_npc_theB.h:172
int field_0xdec
Definition d_a_npc_theB.h:167
int EvCut_TheBHint(int)
Definition d_a_npc_theB.cpp:1442
static cutFunc mEvtSeqList[6]
Definition d_a_npc_theB.h:176
int mTimer
Definition d_a_npc_theB.h:171
u16 mMode
Definition d_a_npc_theB.h:173
~daNpcTheB_c()
Definition d_a_npc_theB.cpp:187
void setGameOver()
Definition d_a_npc_theB.h:121
void setTRMtx(MtxP mtx)
Definition d_a_npc_theB.h:120
s16 mBackboneRotY
Definition d_a_npc_theB.h:176
cPhs__Step create()
Definition d_a_npc_theB.cpp:237
f32 getCoachSpeed()
Definition d_a_npc_theB.h:122
cXyz getHandPos1(int)
Definition d_a_npc_theB.cpp:403
void setExpression(int, f32)
Definition d_a_npc_theB.cpp:1117
NPC_THEB_HIO_CLASS * mpHIO
Definition d_a_npc_theB.h:159
u8 mHintEvtFlag
Definition d_a_npc_theB.h:178
BOOL drawDbgInfo()
Definition d_a_npc_theB.cpp:768
void EvCut_PersonalCombatAfter()
Definition d_a_npc_theB.cpp:1309
actionFunc mAction
Definition d_a_npc_theB.h:162
int CreateHeap()
Definition d_a_npc_theB.cpp:288
u8 mGameOver
Definition d_a_npc_theB.h:179
Expression
Definition d_a_npc_theB.h:61
@ EXPR_TALK_C
Definition d_a_npc_theB.h:64
@ EXPR_NONE
Definition d_a_npc_theB.h:65
@ EXPR_TALK_B
Definition d_a_npc_theB.h:63
@ EXPR_TALK_A
Definition d_a_npc_theB.h:62
BOOL doEvent()
Definition d_a_npc_theB.cpp:877
request_of_phase_process_class mPhase
Definition d_a_npc_theB.h:163
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_theB.h:156
void setAttnPos()
Definition d_a_npc_theB.cpp:555
void lookat()
Definition d_a_npc_theB.cpp:952
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_theB.cpp:344
u8 mUnkFlag
Definition d_a_npc_theB.h:183
int mRoomNo
Definition d_a_npc_theB.h:168
bool setExpressionBtp(int)
Definition d_a_npc_theB.cpp:674
BOOL main()
Definition d_a_npc_theB.cpp:442
int mMsgNo
Definition d_a_npc_theB.h:169
int wait(void *)
Definition d_a_npc_theB.cpp:1046
Z2Creature mSound
Definition d_a_npc_theB.h:155
int mHintMsgNo
Definition d_a_npc_theB.h:170
dCcD_Cyl mCyl
Definition d_a_npc_theB.h:160
void setParam()
Definition d_a_npc_theB.cpp:498
u8 mPersonalCombatAfterMode
Definition d_a_npc_theB.h:181
void playExpression()
Definition d_a_npc_theB.cpp:810
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_theB.cpp:386
int(daNpcTheB_c::*) cutFunc(int)
Definition d_a_npc_theB.h:42
int field_0xde8
Definition d_a_npc_theB.h:166
Expression_BTP
Definition d_a_npc_theB.h:77
@ EXPR_BTP_THEB
Definition d_a_npc_theB.h:78
int Draw()
Definition d_a_npc_theB.cpp:338
Animation
Definition d_a_npc_theB.h:44
@ ANM_F_TALK_C
Definition d_a_npc_theB.h:48
@ ANM_FH_BEND_WAIT
Definition d_a_npc_theB.h:52
@ ANM_BEND_WAIT
Definition d_a_npc_theB.h:57
@ ANM_F_TALK_A
Definition d_a_npc_theB.h:46
@ ANM_SIT_B
Definition d_a_npc_theB.h:54
@ ANM_WHIP_B
Definition d_a_npc_theB.h:56
@ ANM_SIT
Definition d_a_npc_theB.h:53
@ ANM_FH_TALK_C
Definition d_a_npc_theB.h:51
@ ANM_NONE
Definition d_a_npc_theB.h:45
@ ANM_BEND_TURN
Definition d_a_npc_theB.h:58
@ ANM_FH_TALK_B
Definition d_a_npc_theB.h:50
@ ANM_F_TALK_B
Definition d_a_npc_theB.h:47
@ ANM_WHIP
Definition d_a_npc_theB.h:55
@ ANM_F_BEND_TURN
Definition d_a_npc_theB.h:49
void reset()
Definition d_a_npc_theB.cpp:772
Definition f_op_actor.h:230
fpc_ProcID parentActorID
Definition f_op_actor.h:248
J3DModel * getModel()
Definition m_Do_ext.h:350
Definition m_Do_hostIO.h:27
static void action(b_bh_class *i_this)
Definition d_a_b_bh.cpp:1017
STATIC_ASSERT(sizeof(daNpcTheB_c)==0xe14)
f32(* MtxP)[4]
Definition mtx.h:38
int BOOL
Definition types.h:33
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
f32 fopAcM_GetSpeedF(const fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:348
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
base_process_class * fpcM_SearchByID(fpc_ProcID i_id)
Definition f_pc_manager.h:84
Definition JORReflexible.h:10
Definition c_xyz.h:7
Definition d_a_npc4.h:423
Definition d_a_npc_theB.h:15
daNpcF_HIOParam common
Definition d_a_npc_theB.h:16
Definition d_a_npc_theB.h:19
static daNpcTheB_HIOParam const m
Definition d_a_npc_theB.h:201
virtual ~daNpcTheB_Param_c()
Definition d_a_npc_theB.h:20
Definition c_phase.h:17