Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_taro.h
Go to the documentation of this file.
1#ifndef D_A_NPC_TARO_H
2#define D_A_NPC_TARO_H
3
5#include "d/actor/d_a_npc.h"
6
9 /* 0x04 */ f32 mGravity;
10 /* 0x08 */ f32 mScale;
11 /* 0x0C */ f32 field_0x0c;
12 /* 0x10 */ f32 mSttsWeight;
13 /* 0x14 */ f32 mCylH;
14 /* 0x18 */ f32 mWallH;
15 /* 0x1C */ f32 mWallR;
16 /* 0x20 */ f32 mBodyDownAngle;
17 /* 0x24 */ f32 mBodyUpAngle;
18 /* 0x28 */ f32 mBodyRightAngle;
19 /* 0x2C */ f32 mBodyLeftAngle;
20 /* 0x30 */ f32 mHeadDownAngle;
21 /* 0x34 */ f32 mHeadUpAngle;
22 /* 0x38 */ f32 mHeadRightAngle;
23 /* 0x3C */ f32 mHeadLeftAngle;
24 /* 0x40 */ f32 field_0x40;
25 /* 0x44 */ f32 mMorfFrames;
26 /* 0x48 */ s16 field_0x48;
27 /* 0x4A */ s16 field_0x4a;
28 /* 0x4C */ s16 field_0x4c;
29 /* 0x4E */ s16 field_0x4e;
30 /* 0x50 */ f32 mAttnFovY;
31 /* 0x54 */ f32 field_0x54;
32 /* 0x58 */ f32 field_0x58;
33 /* 0x5C */ f32 field_0x5c;
34 /* 0x60 */ s16 field_0x60;
35 /* 0x62 */ s16 field_0x62;
36 /* 0x64 */ f32 field_0x64;
37 /* 0x68 */ f32 field_0x68;
38 /* 0x6C */ f32 field_0x6c;
39 /* 0x70 */ f32 field_0x70;
40 /* 0x74 */ f32 field_0x74;
41 /* 0x78 */ f32 field_0x78;
42 /* 0x7C */ f32 field_0x7c;
43 /* 0x80 */ f32 field_0x80;
44 /* 0x84 */ f32 field_0x84;
45 /* 0x88 */ f32 field_0x88;
46 /* 0x8C */ s16 mChoccaiTimer;
47 /* 0x8E */ s16 field_0x8e;
48};
49
51 public:
53
54 static daNpc_Taro_HIOParam const m;
55 };
56
58#if DEBUG
59: public mDoHIO_entry_c
60#endif
61{
62public:
64};
65
74class daNpc_Taro_c : public daNpcT_c {
75public:
76 typedef int (daNpc_Taro_c::*cutFunc)(int);
77 typedef int (daNpc_Taro_c::*actionFunc)(void*);
78
98
100 int create();
101 int CreateHeap();
102 int Delete();
103 int Execute();
104 int Draw();
105 static int createHeapCallBack(fopAc_ac_c*);
106 static int ctrlJointCallBack(J3DJoint*, int);
107 static void* srchArrow(void*, void*);
108 static void* srchNpc(void*, void*);
110 u8 getType();
111 BOOL isDelete();
112 void reset();
113 void afterJntAnm(int);
114 void setParam();
117 void setAfterTalkMotion();
118 void srchActors();
119 BOOL evtTalk();
121 void action();
122 void beforeMove();
123 void setAttnPos();
124 void setCollision();
125 int drawDbgInfo();
126 void drawOtherMdl();
129 BOOL chkAction(int (daNpc_Taro_c::*)(void*));
130 BOOL setAction(int (daNpc_Taro_c::*)(void*));
131 void setSwingVoice();
134 int cutSwdTutorial(int);
135 int cutHail(int);
136 int cutFindMonkey(int);
137 int cutHelpMe(int);
138 int cutAppearanceMoi(int);
139 int cutGiveMeWoodSwd(int);
140 int cutGetWoodSwd(int);
143 int cutArrowTutorial(int);
144 int cutCaution(int);
145 int cutTagPush1(int);
146 int cutNotGonnaLet(int);
147 int cutTagPush4(int);
148 int wait(void*);
149 int swdTutorial(void*);
150 int talk_withMaro(void*);
151 int practice(void*);
152 int nurse(void*);
153 int talk(void*);
155 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
156 daNpcT_motionAnmData_c const* i_motionAnmData,
157 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
158 int i_faceMotionStepNum,
159 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
160 daNpcT_evtData_c const* i_evtData, char** i_arcNames)
161 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
162 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
163 i_arcNames) {
164 OS_REPORT("|%06d:%x|daNpc_Taro_c -> コンストラクト\n", g_Counter.mCounter0, this);
165 }
166 u16 getEyeballMaterialNo() { return 2; }
167 s32 getHeadJointNo() { return 4; }
168 s32 getNeckJointNo() { return 3; }
169 s32 getBackboneJointNo() { return 1; }
170 BOOL checkChangeJoint(int jntNo) { return jntNo == 4; }
171 BOOL checkRemoveJoint(int jntNo) { return jntNo == 7; }
172 s32 getFootLJointNo() { return 19; }
173 s32 getFootRJointNo() { return 22; }
174
176 u16 nodeNo = home.angle.x;
177 u32 rv;
178 if (nodeNo == 0xffff) {
179 rv = -1;
180 } else {
181 rv = nodeNo;
182 }
183 return rv;
184 }
185
186 u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
187 u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
188 u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xff000000) >> 24; }
189
190 static char* mCutNameList[17];
191 static cutFunc mCutList[17];
192
193private:
195 /* 0x0E44 */ J3DModel* mModels[2];
196 /* 0x0E4C */ dCcD_Cyl mCyl1;
197 /* 0x0F88 */ dCcD_Cyl mCyl2;
198 /* 0x10C4 */ u8 mType;
199 /* 0x10C8 */ daNpcT_ActorMngr_c mActors[23];
200 /* 0x1180 */ actionFunc mAction;
201 /* 0x118C */ actionFunc mAction2;
202 /* 0x1198 */ int mChoccaiTimer;
203 /* 0x119C */ int field_0x119c;
204 /* 0x11A0 */ u8 field_0x11a0;
205 /* 0x11A1 */ u8 field_0x11a1;
206 /* 0x11A2 */ u8 field_0x11a2;
207 /* 0x11A3 */ u8 field_0x11a3;
208 /* 0x11A4 */ u8 field_0x11a4;
209 /* 0x11A5 */ u8 field_0x11a5;
210 /* 0x11A6 */ u8 field_0x11a6;
211 /* 0x11A7 */ u8 field_0x11a7;
212 /* 0x11A8 */ int field_0x11a8;
213};
214
215STATIC_ASSERT(sizeof(daNpc_Taro_c) == 0x11ac);
216
217
218#endif /* D_A_NPC_TARO_H */
counter_class g_Counter
Definition c_counter.cpp:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition d_cc_d.h:461
Definition d_a_npc.h:30
Definition d_a_npc.h:516
Definition d_a_npc_taro.h:61
void genMessage(JORMContext *)
Definition d_a_npc_taro.h:50
static daNpc_Taro_HIOParam const m
Definition d_a_npc_taro.h:257
virtual ~daNpc_Taro_Param_c()
Definition d_a_npc_taro.h:52
Talo.
Definition d_a_npc_taro.h:74
int wait(void *)
Definition d_a_npc_taro.cpp:2762
~daNpc_Taro_c()
Definition d_a_npc_taro.cpp:242
int cutTagPush1(int)
Definition d_a_npc_taro.cpp:2504
u8 getPathID()
Definition d_a_npc_taro.h:186
int CreateHeap()
Definition d_a_npc_taro.cpp:332
actionFunc mAction2
Definition d_a_npc_taro.h:201
int(daNpc_Taro_c::*) actionFunc(void *)
Definition d_a_npc_taro.h:77
fopAc_ac_c * getArrowP()
Definition d_a_npc_taro.cpp:472
u16 getEyeballMaterialNo()
Definition d_a_npc_taro.h:166
daNpc_Taro_HIO_c * field_0xe40
Definition d_a_npc_taro.h:194
daNpcT_ActorMngr_c mActors[23]
Definition d_a_npc_taro.h:199
BOOL checkChangeJoint(int jntNo)
Definition d_a_npc_taro.h:170
u8 field_0x11a3
Definition d_a_npc_taro.h:207
static void * srchArrow(void *, void *)
Definition d_a_npc_taro.cpp:450
int create()
Definition d_a_npc_taro.cpp:263
int drawDbgInfo()
Definition d_a_npc_taro.cpp:1063
int cutFindMonkey(int)
Definition d_a_npc_taro.cpp:1494
int cutHelpMe(int)
Definition d_a_npc_taro.cpp:1622
int swdTutorial(void *)
Definition d_a_npc_taro.cpp:3086
static char * mCutNameList[17]
Definition d_a_npc_taro.h:200
int cutHail(int)
Definition d_a_npc_taro.cpp:1449
int mChoccaiTimer
Definition d_a_npc_taro.h:202
BOOL setAction(int(daNpc_Taro_c::*)(void *))
Definition d_a_npc_taro.cpp:1123
int cutCaution(int)
Definition d_a_npc_taro.cpp:2440
BOOL evtTalk()
Definition d_a_npc_taro.cpp:845
BOOL evtCutProc()
Definition d_a_npc_taro.cpp:854
int practice(void *)
Definition d_a_npc_taro.cpp:3179
s32 getFootLJointNo()
Definition d_a_npc_taro.h:172
u8 getType()
Definition d_a_npc_taro.cpp:488
s32 getNeckJointNo()
Definition d_a_npc_taro.h:168
u8 getBitSW2()
Definition d_a_npc_taro.h:188
int cutConversationWithMaro(int)
Definition d_a_npc_taro.cpp:2135
void setParam()
Definition d_a_npc_taro.cpp:625
void setCollision()
Definition d_a_npc_taro.cpp:997
int Execute()
Definition d_a_npc_taro.cpp:420
BOOL chkAction(int(daNpc_Taro_c::*)(void *))
Definition d_a_npc_taro.cpp:1119
int cutGetWoodSwd(int)
Definition d_a_npc_taro.cpp:1952
dCcD_Cyl mCyl1
Definition d_a_npc_taro.h:196
u8 field_0x11a6
Definition d_a_npc_taro.h:210
BOOL selectAction()
Definition d_a_npc_taro.cpp:1097
int Draw()
Definition d_a_npc_taro.cpp:424
int cutGiveMeWoodSwd(int)
Definition d_a_npc_taro.cpp:1822
s32 getHeadJointNo()
Definition d_a_npc_taro.h:167
s32 getFootRJointNo()
Definition d_a_npc_taro.h:173
void setAfterTalkMotion()
Definition d_a_npc_taro.cpp:724
void reset()
Definition d_a_npc_taro.cpp:565
u8 field_0x11a4
Definition d_a_npc_taro.h:208
int cutSwdTutorial(int)
Definition d_a_npc_taro.cpp:1238
int Delete()
Definition d_a_npc_taro.cpp:413
int field_0x11a8
Definition d_a_npc_taro.h:212
int cutArrowTutorial(int)
Definition d_a_npc_taro.cpp:2291
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_taro.cpp:435
void beforeMove()
Definition d_a_npc_taro.cpp:947
u8 mType
Definition d_a_npc_taro.h:198
s32 getBackboneJointNo()
Definition d_a_npc_taro.h:169
int cutConversationAboutPachinko(int)
Definition d_a_npc_taro.cpp:1154
int nurse(void *)
Definition d_a_npc_taro.cpp:3253
u8 field_0x11a7
Definition d_a_npc_taro.h:211
BOOL checkChangeEvt()
Definition d_a_npc_taro.cpp:689
void setAttnPos()
Definition d_a_npc_taro.cpp:957
int cutAppearanceMoi(int)
Definition d_a_npc_taro.cpp:1684
int cutTagPush4(int)
Definition d_a_npc_taro.cpp:2716
int cutConversationAboutWoodSwd(int)
Definition d_a_npc_taro.cpp:1201
u8 getBitSW()
Definition d_a_npc_taro.h:187
int field_0x119c
Definition d_a_npc_taro.h:203
int cutNotGonnaLet(int)
Definition d_a_npc_taro.cpp:2553
u8 field_0x11a0
Definition d_a_npc_taro.h:204
void drawOtherMdl()
Definition d_a_npc_taro.cpp:1067
daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c)
Definition d_a_npc_taro.cpp:1088
actionFunc mAction
Definition d_a_npc_taro.h:200
void setSwingVoice()
Definition d_a_npc_taro.cpp:1136
int talk(void *)
Definition d_a_npc_taro.cpp:3282
BOOL evtEndProc()
Definition d_a_npc_taro.cpp:717
int cutCacaricoConversation(int)
Definition d_a_npc_taro.cpp:2224
daNpc_Taro_c(daNpcT_faceMotionAnmData_c const *i_faceMotionAnmData, daNpcT_motionAnmData_c const *i_motionAnmData, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_faceMotionSequenceData, int i_faceMotionStepNum, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_motionSequenceData, int i_motionStepNum, daNpcT_evtData_c const *i_evtData, char **i_arcNames)
Definition d_a_npc_taro.h:154
BOOL checkRemoveJoint(int jntNo)
Definition d_a_npc_taro.h:171
u32 getFlowNodeNo()
Definition d_a_npc_taro.h:175
TaroType
Definition d_a_npc_taro.h:79
@ TYPE_1
Definition d_a_npc_taro.h:81
@ TYPE_2
Definition d_a_npc_taro.h:82
@ TYPE_10
Definition d_a_npc_taro.h:90
@ TYPE_14
Definition d_a_npc_taro.h:94
@ TYPE_5
Definition d_a_npc_taro.h:85
@ TYPE_9
Definition d_a_npc_taro.h:89
@ TYPE_11
Definition d_a_npc_taro.h:91
@ TYPE_8
Definition d_a_npc_taro.h:88
@ TYPE_0
Definition d_a_npc_taro.h:80
@ TYPE_12
Definition d_a_npc_taro.h:92
@ TYPE_7
Definition d_a_npc_taro.h:87
@ TYPE_13
Definition d_a_npc_taro.h:93
@ TYPE_4
Definition d_a_npc_taro.h:84
@ TYPE_15
Definition d_a_npc_taro.h:95
@ TYPE_16
Definition d_a_npc_taro.h:96
@ TYPE_3
Definition d_a_npc_taro.h:83
@ TYPE_6
Definition d_a_npc_taro.h:86
static cutFunc mCutList[17]
Definition d_a_npc_taro.h:220
void afterJntAnm(int)
Definition d_a_npc_taro.cpp:615
void srchActors()
Definition d_a_npc_taro.cpp:755
J3DModel * mModels[2]
Definition d_a_npc_taro.h:195
BOOL isDelete()
Definition d_a_npc_taro.cpp:527
int(daNpc_Taro_c::*) cutFunc(int)
Definition d_a_npc_taro.h:76
dCcD_Cyl mCyl2
Definition d_a_npc_taro.h:197
int talk_withMaro(void *)
Definition d_a_npc_taro.cpp:3118
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_taro.cpp:439
static void * srchNpc(void *, void *)
Definition d_a_npc_taro.cpp:460
u8 field_0x11a1
Definition d_a_npc_taro.h:205
u8 field_0x11a2
Definition d_a_npc_taro.h:206
u8 field_0x11a5
Definition d_a_npc_taro.h:209
void action()
Definition d_a_npc_taro.cpp:887
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
Definition m_Do_hostIO.h:27
STATIC_ASSERT(sizeof(daNpc_Taro_c)==0x11ac)
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
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
if(ix< 0x3fe00000)
Definition e_acos.c:77
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
u32 mCounter0
Definition c_counter.h:7
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_taro.h:7
f32 mBodyUpAngle
Definition d_a_npc_taro.h:17
f32 field_0x0c
Definition d_a_npc_taro.h:11
f32 field_0x58
Definition d_a_npc_taro.h:32
f32 field_0x7c
Definition d_a_npc_taro.h:42
f32 mGravity
Definition d_a_npc_taro.h:9
s16 field_0x4a
Definition d_a_npc_taro.h:27
f32 mMorfFrames
Definition d_a_npc_taro.h:25
s16 field_0x60
Definition d_a_npc_taro.h:34
f32 field_0x78
Definition d_a_npc_taro.h:41
f32 field_0x64
Definition d_a_npc_taro.h:36
f32 field_0x40
Definition d_a_npc_taro.h:24
s16 field_0x4e
Definition d_a_npc_taro.h:29
f32 mHeadLeftAngle
Definition d_a_npc_taro.h:23
f32 mHeadRightAngle
Definition d_a_npc_taro.h:22
f32 field_0x54
Definition d_a_npc_taro.h:31
s16 field_0x48
Definition d_a_npc_taro.h:26
f32 mAttnFovY
Definition d_a_npc_taro.h:30
s16 field_0x8e
Definition d_a_npc_taro.h:47
f32 field_0x70
Definition d_a_npc_taro.h:39
f32 mHeadUpAngle
Definition d_a_npc_taro.h:21
f32 mBodyDownAngle
Definition d_a_npc_taro.h:16
f32 mHeadDownAngle
Definition d_a_npc_taro.h:20
s16 field_0x4c
Definition d_a_npc_taro.h:28
f32 field_0x68
Definition d_a_npc_taro.h:37
f32 field_0x84
Definition d_a_npc_taro.h:44
f32 mWallR
Definition d_a_npc_taro.h:15
f32 mWallH
Definition d_a_npc_taro.h:14
s16 mChoccaiTimer
Definition d_a_npc_taro.h:46
f32 mBodyLeftAngle
Definition d_a_npc_taro.h:19
f32 field_0x80
Definition d_a_npc_taro.h:43
f32 mSttsWeight
Definition d_a_npc_taro.h:12
f32 field_0x6c
Definition d_a_npc_taro.h:38
f32 field_0x88
Definition d_a_npc_taro.h:45
s16 field_0x62
Definition d_a_npc_taro.h:35
f32 mScale
Definition d_a_npc_taro.h:10
f32 field_0x5c
Definition d_a_npc_taro.h:33
f32 field_0x74
Definition d_a_npc_taro.h:40
f32 mCylH
Definition d_a_npc_taro.h:13
f32 mAttentionPosYOffset
Definition d_a_npc_taro.h:8
f32 mBodyRightAngle
Definition d_a_npc_taro.h:18