Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_aru.h
Go to the documentation of this file.
1#ifndef D_A_NPC_ARU_H
2#define D_A_NPC_ARU_H
3
4#include "d/actor/d_a_npc.h"
5
17 /* 0x8C */ f32 warning_range; // 警戒範囲 - Warning Range
18 /* 0x90 */ f32 run_speed; // 走る速度 - Run Speed
19 /* 0x94 */ f32 walk_speed; // 歩く速度 - Walk Speed
20 /* 0x98 */ s16 no_turn_time; // 旋回禁止時間 - No Turn Time
21 /* 0x9A */ s16 avoid_time; // 避け時間 - Avoid Time
22 /* 0x9C */ f32 forward_visibility; // 前方視界 - Forward Visibility
23};
24
26public:
28};
29
31public:
32 virtual ~daNpc_Aru_Param_c() {}
33
34 static daNpc_Aru_HIOParam const m;
35};
36
37class daNpc_Aru_c : public daNpcT_c {
38public:
39 enum Joint {
40 /* 0x00 */ JNT_CENTER,
41 /* 0x01 */ JNT_BACKBONE1,
42 /* 0x02 */ JNT_BACKBONE2,
43 /* 0x03 */ JNT_NECK,
44 /* 0x04 */ JNT_HEAD,
45 /* 0x05 */ JNT_CHIN,
46 /* 0x06 */ JNT_MAYU_L,
47 /* 0x07 */ JNT_MAYU_R,
48 /* 0x08 */ JNT_MOUTH,
49 /* 0x09 */ JNT_SHOULDERL,
50 /* 0x0A */ JNT_ARML1,
51 /* 0x0B */ JNT_ARML2,
52 /* 0x0C */ JNT_HANDL,
53 /* 0x0D */ JNT_FINGERL1,
54 /* 0x0E */ JNT_FINGERL2,
55 /* 0x0F */ JNT_THAMBL,
56 /* 0x10 */ JNT_SHOULDERR,
57 /* 0x11 */ JNT_ARMR1,
58 /* 0x12 */ JNT_ARMR2,
59 /* 0x13 */ JNT_HANDR,
60 /* 0x14 */ JNT_FINGERR1,
61 /* 0x15 */ JNT_FINGERR2,
62 /* 0x16 */ JNT_THAMBR,
63 /* 0x17 */ JNT_WAIST,
64 /* 0x18 */ JNT_LEGL1,
65 /* 0x19 */ JNT_LEGL2,
66 /* 0x1A */ JNT_FOOTL,
67 /* 0x1B */ JNT_SKIRTL,
68 /* 0x1C */ JNT_LEGR1,
69 /* 0x1D */ JNT_LEGR2,
70 /* 0x1E */ JNT_FOOTR,
71 /* 0x1F */ JNT_SKIRTR,
72 /* 0x20 */ JNT_SKIRT1,
73 /* 0x21 */ JNT_SKIRT2,
74 };
75
76 enum Material {
77 /* 0x0 */ SC_EYE,
78 /* 0x1 */ ARU_BODY_M,
79 /* 0x2 */ ARU_EYEBALL_M,
80 /* 0x3 */ ARU_FACE_M,
81 };
82
83 typedef int (daNpc_Aru_c::*actionFunc)(void*);
84 typedef int (daNpc_Aru_c::*cutFunc)(int);
85
88 int CreateHeap();
89 int Delete();
90 int Execute();
91 int Draw();
92 static int createHeapCallBack(fopAc_ac_c*);
93 static int ctrlJointCallBack(J3DJoint*, int);
94 static void* srchCow(void*, void*);
95 static void* srchUDoor(void*, void*);
97 fopAc_ac_c* getCowP(int);
100 u8 getType();
101 BOOL isDelete();
102 void reset();
103 void afterJntAnm(int);
104 void setParam();
106 void setAfterTalkMotion();
107 void srchActors();
108 BOOL evtTalk();
110 void action();
111 void beforeMove();
112 void setAttnPos();
113 void setCollision();
114 int drawDbgInfo();
121 void adjustMoveDir();
122 int duck(int);
123 int lookround(s16);
124 int cutRideOnHorse(int);
126 int cutEndBullRunning(int);
127 int cutGotoSkipFenceStage(int);
128 int cutSpeakTo(int);
129 int cutNoEntrance(int);
130 int wait(void*);
131 int bullRunning(void*);
132 int skipFence(void*);
133 int talk(void*);
134 int test(void*);
136 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
137 daNpcT_motionAnmData_c const* i_motionAnmData,
138 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
139 int i_faceMotionStepNum,
140 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
141 int i_motionStepNum,
142 daNpcT_evtData_c const* i_evtData,
143 char** i_arcNames)
144 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
145 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
146 i_arcNames) {}
151 BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
152 BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
155
157 u16 nodeNo = home.angle.x;
158 if (nodeNo == 0xffff) {
159 return -1;
160 }
161
162 return nodeNo;
163 }
164 int getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
165 void setLastIn() { mLastGoatIn = true; }
166
167 static char* mCutNameList[7];
168 static cutFunc mCutList[7];
169
170private:
171 /* 0xE40 */ daNpc_Aru_HIO_c* mHIO;
172 /* 0xE44 */ dCcD_Cyl mCyl;
173 /* 0xF80 */ u8 mType;
176 /* 0xFB0 */ actionFunc mAction;
177 /* 0xFBC */ fpc_ProcID mTimerID;
178 /* 0xFC0 */ int mTimer;
179 /* 0xFC4 */ int field_0xfc4;
180 /* 0xFC8 */ s16 mActorDirection;
181 /* 0xFCA */ s16 field_0xfca;
182 /* 0xFCC */ u8 field_0xfcc;
183 /* 0xFCD */ bool field_0xfcd;
184 /* 0xFCE */ bool mLastGoatIn;
185 /* 0xFCF */ bool field_0xfcf;
186 /* 0xFD0 */ bool field_0xfd0;
187 /* 0xFD1 */ bool field_0xfd1;
188 /* 0xFD2 */ bool field_0xfd2;
189 /* 0xFD3 */ bool field_0xfd3;
190 /* 0xFD4 */ u8 field_0xfd4[0xfd8 - 0xfd4];
191};
192
193STATIC_ASSERT(sizeof(daNpc_Aru_c) == 0xfd8);
194
195#endif /* D_A_NPC_ARU_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition d_cc_d.h:461
Definition d_a_npc.h:30
Definition d_a_npc.h:516
Definition d_a_npc_aru.h:25
daNpc_Aru_HIOParam param
Definition d_a_npc_aru.h:27
Definition d_a_npc_aru.h:30
virtual ~daNpc_Aru_Param_c()
Definition d_a_npc_aru.h:32
static daNpc_Aru_HIOParam const m
Definition d_a_npc_aru.h:268
Fado.
Definition d_a_npc_aru.h:37
static void * srchUDoor(void *, void *)
Definition d_a_npc_aru.cpp:464
void setParam()
Definition d_a_npc_aru.cpp:700
bool field_0xfcd
Definition d_a_npc_aru.h:183
int duck(int)
Definition d_a_npc_aru.cpp:1261
fopAc_ac_c * getCowP(int)
Definition d_a_npc_aru.cpp:500
void setLastIn()
Definition d_a_npc_aru.h:165
int cutEndBullRunning(int)
Definition d_a_npc_aru.cpp:1437
daNpcT_ActorMngr_c mActorMngrs[4]
Definition d_a_npc_aru.h:174
static char * mCutNameList[7]
Definition d_a_npc_aru.h:240
void afterJntAnm(int)
Definition d_a_npc_aru.cpp:690
BOOL selectAction()
Definition d_a_npc_aru.cpp:986
void adjustMoveDir()
Definition d_a_npc_aru.cpp:1106
bool field_0xfd1
Definition d_a_npc_aru.h:187
daNpc_Aru_HIO_c * mHIO
Definition d_a_npc_aru.h:171
bool field_0xfd0
Definition d_a_npc_aru.h:186
int Execute()
Definition d_a_npc_aru.cpp:415
daNpc_Aru_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_aru.h:135
BOOL chkBullRunningStage()
Definition d_a_npc_aru.cpp:1055
dCcD_Cyl mCyl
Definition d_a_npc_aru.h:172
int cutGotoBullRunningStage(int)
Definition d_a_npc_aru.cpp:1394
static cutFunc mCutList[7]
Definition d_a_npc_aru.h:250
int Delete()
Definition d_a_npc_aru.cpp:410
void setAttnPos()
Definition d_a_npc_aru.cpp:913
s32 getHeadJointNo()
Definition d_a_npc_aru.h:148
int(daNpc_Aru_c::*) cutFunc(int)
Definition d_a_npc_aru.h:84
u16 getEyeballMaterialNo()
Definition d_a_npc_aru.h:147
BOOL evtTalk()
Definition d_a_npc_aru.cpp:847
bool field_0xfd3
Definition d_a_npc_aru.h:189
u8 mType
Definition d_a_npc_aru.h:173
Material
Definition d_a_npc_aru.h:76
@ ARU_FACE_M
Definition d_a_npc_aru.h:80
@ ARU_EYEBALL_M
Definition d_a_npc_aru.h:79
@ ARU_BODY_M
Definition d_a_npc_aru.h:78
@ SC_EYE
Definition d_a_npc_aru.h:77
bool field_0xfd2
Definition d_a_npc_aru.h:188
s32 getBackboneJointNo()
Definition d_a_npc_aru.h:150
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:435
fopAc_ac_c * getUDoor_l_P()
Definition d_a_npc_aru.cpp:535
s16 field_0xfca
Definition d_a_npc_aru.h:181
void setCollision()
Definition d_a_npc_aru.cpp:945
fopAc_ac_c * getUDoor_r_P()
Definition d_a_npc_aru.cpp:552
BOOL setAction(actionFunc)
Definition d_a_npc_aru.cpp:1038
fpc_ProcID mTimerID
Definition d_a_npc_aru.h:177
int cutGotoSkipFenceStage(int)
Definition d_a_npc_aru.cpp:1527
int test(void *)
Definition d_a_npc_aru.cpp:2021
BOOL evtCutProc()
Definition d_a_npc_aru.cpp:857
s32 getFootLJointNo()
Definition d_a_npc_aru.h:153
s16 srchActorDirection(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:1079
void reset()
Definition d_a_npc_aru.cpp:616
int wait(void *)
Definition d_a_npc_aru.cpp:1710
static void * srchCow(void *, void *)
Definition d_a_npc_aru.cpp:450
s32 getFootRJointNo()
Definition d_a_npc_aru.h:154
int getPathID()
Definition d_a_npc_aru.h:164
bool field_0xfcf
Definition d_a_npc_aru.h:185
BOOL checkRemoveJoint(int i_joint)
Definition d_a_npc_aru.h:152
int talk(void *)
Definition d_a_npc_aru.cpp:1945
int CreateHeap()
Definition d_a_npc_aru.cpp:381
BOOL isDelete()
Definition d_a_npc_aru.cpp:591
cPhs__Step create()
Definition d_a_npc_aru.cpp:318
int cutNoEntrance(int)
Definition d_a_npc_aru.cpp:1644
u8 field_0xfd4[0xfd8 - 0xfd4]
Definition d_a_npc_aru.h:190
u8 field_0xfcc
Definition d_a_npc_aru.h:182
int getFlowNodeNo()
Definition d_a_npc_aru.h:156
int mTimer
Definition d_a_npc_aru.h:178
BOOL chkSkipFenceStage()
Definition d_a_npc_aru.cpp:1067
void beforeMove()
Definition d_a_npc_aru.cpp:899
int drawDbgInfo()
Definition d_a_npc_aru.cpp:982
~daNpc_Aru_c()
Definition d_a_npc_aru.cpp:260
BOOL chkThrust(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:475
BOOL checkChangeEvt()
Definition d_a_npc_aru.cpp:742
int(daNpc_Aru_c::*) actionFunc(void *)
Definition d_a_npc_aru.h:83
Joint
Definition d_a_npc_aru.h:39
@ JNT_THAMBL
Definition d_a_npc_aru.h:55
@ JNT_SKIRTL
Definition d_a_npc_aru.h:67
@ JNT_HANDR
Definition d_a_npc_aru.h:59
@ JNT_ARMR1
Definition d_a_npc_aru.h:57
@ JNT_ARML1
Definition d_a_npc_aru.h:50
@ JNT_MAYU_L
Definition d_a_npc_aru.h:46
@ JNT_HANDL
Definition d_a_npc_aru.h:52
@ JNT_ARML2
Definition d_a_npc_aru.h:51
@ JNT_BACKBONE1
Definition d_a_npc_aru.h:41
@ JNT_MOUTH
Definition d_a_npc_aru.h:48
@ JNT_SKIRT1
Definition d_a_npc_aru.h:72
@ JNT_FINGERR1
Definition d_a_npc_aru.h:60
@ JNT_FINGERL1
Definition d_a_npc_aru.h:53
@ JNT_FOOTL
Definition d_a_npc_aru.h:66
@ JNT_FINGERR2
Definition d_a_npc_aru.h:61
@ JNT_SHOULDERR
Definition d_a_npc_aru.h:56
@ JNT_CHIN
Definition d_a_npc_aru.h:45
@ JNT_SKIRT2
Definition d_a_npc_aru.h:73
@ JNT_THAMBR
Definition d_a_npc_aru.h:62
@ JNT_FINGERL2
Definition d_a_npc_aru.h:54
@ JNT_ARMR2
Definition d_a_npc_aru.h:58
@ JNT_LEGL1
Definition d_a_npc_aru.h:64
@ JNT_LEGR1
Definition d_a_npc_aru.h:68
@ JNT_CENTER
Definition d_a_npc_aru.h:40
@ JNT_SHOULDERL
Definition d_a_npc_aru.h:49
@ JNT_SKIRTR
Definition d_a_npc_aru.h:71
@ JNT_MAYU_R
Definition d_a_npc_aru.h:47
@ JNT_LEGR2
Definition d_a_npc_aru.h:69
@ JNT_FOOTR
Definition d_a_npc_aru.h:70
@ JNT_HEAD
Definition d_a_npc_aru.h:44
@ JNT_NECK
Definition d_a_npc_aru.h:43
@ JNT_LEGL2
Definition d_a_npc_aru.h:65
@ JNT_BACKBONE2
Definition d_a_npc_aru.h:42
@ JNT_WAIST
Definition d_a_npc_aru.h:63
u8 getType()
Definition d_a_npc_aru.cpp:569
int Draw()
Definition d_a_npc_aru.cpp:419
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_aru.cpp:439
int bullRunning(void *)
Definition d_a_npc_aru.cpp:1841
void setAfterTalkMotion()
Definition d_a_npc_aru.cpp:759
int skipFence(void *)
Definition d_a_npc_aru.cpp:1902
void srchActors()
Definition d_a_npc_aru.cpp:791
BOOL chkAction(actionFunc)
Definition d_a_npc_aru.cpp:1034
bool mLastGoatIn
Definition d_a_npc_aru.h:184
s16 mActorDirection
Definition d_a_npc_aru.h:180
BOOL checkChangeJoint(int i_joint)
Definition d_a_npc_aru.h:151
actionFunc mAction
Definition d_a_npc_aru.h:176
int lookround(s16)
Definition d_a_npc_aru.cpp:1329
void action()
Definition d_a_npc_aru.cpp:874
int field_0xfc4
Definition d_a_npc_aru.h:179
int cutRideOnHorse(int)
Definition d_a_npc_aru.cpp:1352
actionFunc mNextAction
Definition d_a_npc_aru.h:175
s32 getNeckJointNo()
Definition d_a_npc_aru.h:149
int cutSpeakTo(int)
Definition d_a_npc_aru.cpp:1568
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_Aru_c)==0xfd8)
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
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
unsigned int fpc_ProcID
Definition f_pc_base.h:10
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
Definition d_a_npc.h:836
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_aru.h:15
s16 avoid_time
Definition d_a_npc_aru.h:21
f32 forward_visibility
Definition d_a_npc_aru.h:22
f32 warning_range
Definition d_a_npc_aru.h:17
s16 no_turn_time
Definition d_a_npc_aru.h:20
f32 walk_speed
Definition d_a_npc_aru.h:19
f32 run_speed
Definition d_a_npc_aru.h:18
daNpcT_HIOParam common
Definition d_a_npc_aru.h:16