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
8 /* 0x8C */ f32 warning_range; // 警戒範囲 - Warning Range
9 /* 0x90 */ f32 run_speed; // 走る速度 - Run Speed
10 /* 0x94 */ f32 walk_speed; // 歩く速度 - Walk Speed
11 /* 0x98 */ s16 no_turn_time; // 旋回禁止時間 - No Turn Time
12 /* 0x9A */ s16 avoid_time; // 避け時間 - Avoid Time
13 /* 0x9C */ f32 forward_visibility; // 前方視界 - Forward Visibility
14};
15
17public:
18 virtual ~daNpc_Aru_Param_c() {}
19
20 static daNpc_Aru_HIOParam const m;
21};
22
23#if DEBUG
25public:
27
29
31
33};
34#define NPC_ARU_HIO_CLASS daNpc_Aru_HIO_c
35#else
36#define NPC_ARU_HIO_CLASS daNpc_Aru_Param_c
37#endif
38
47class daNpc_Aru_c : public daNpcT_c {
48public:
49 enum Joint {
50 /* 0x00 */ JNT_CENTER,
51 /* 0x01 */ JNT_BACKBONE1,
52 /* 0x02 */ JNT_BACKBONE2,
53 /* 0x03 */ JNT_NECK,
54 /* 0x04 */ JNT_HEAD,
55 /* 0x05 */ JNT_CHIN,
56 /* 0x06 */ JNT_MAYU_L,
57 /* 0x07 */ JNT_MAYU_R,
58 /* 0x08 */ JNT_MOUTH,
59 /* 0x09 */ JNT_SHOULDERL,
60 /* 0x0A */ JNT_ARML1,
61 /* 0x0B */ JNT_ARML2,
62 /* 0x0C */ JNT_HANDL,
63 /* 0x0D */ JNT_FINGERL1,
64 /* 0x0E */ JNT_FINGERL2,
65 /* 0x0F */ JNT_THAMBL,
66 /* 0x10 */ JNT_SHOULDERR,
67 /* 0x11 */ JNT_ARMR1,
68 /* 0x12 */ JNT_ARMR2,
69 /* 0x13 */ JNT_HANDR,
70 /* 0x14 */ JNT_FINGERR1,
71 /* 0x15 */ JNT_FINGERR2,
72 /* 0x16 */ JNT_THAMBR,
73 /* 0x17 */ JNT_WAIST,
74 /* 0x18 */ JNT_LEGL1,
75 /* 0x19 */ JNT_LEGL2,
76 /* 0x1A */ JNT_FOOTL,
77 /* 0x1B */ JNT_SKIRTL,
78 /* 0x1C */ JNT_LEGR1,
79 /* 0x1D */ JNT_LEGR2,
80 /* 0x1E */ JNT_FOOTR,
81 /* 0x1F */ JNT_SKIRTR,
82 /* 0x20 */ JNT_SKIRT1,
83 /* 0x21 */ JNT_SKIRT2,
84 };
85
86 enum Material {
87 /* 0x0 */ SC_EYE,
88 /* 0x1 */ ARU_BODY_M,
89 /* 0x2 */ ARU_EYEBALL_M,
90 /* 0x3 */ ARU_FACE_M,
91 };
92
93 typedef int (daNpc_Aru_c::*actionFunc)(void*);
94 typedef int (daNpc_Aru_c::*cutFunc)(int);
95
98 int CreateHeap();
99 int Delete();
100 int Execute();
101 int Draw();
102 static int createHeapCallBack(fopAc_ac_c*);
103 static int ctrlJointCallBack(J3DJoint*, int);
104 static void* srchCow(void*, void*);
105 static void* srchUDoor(void*, void*);
107 fopAc_ac_c* getCowP(int);
110 u8 getType();
111 BOOL isDelete();
112 void reset();
113 void afterJntAnm(int);
114 void setParam();
116 void setAfterTalkMotion();
117 void srchActors();
118 BOOL evtTalk();
120 void action();
121 void beforeMove();
122 void setAttnPos();
123 void setCollision();
124 int drawDbgInfo();
131 void adjustMoveDir();
132 int duck(int);
133 int lookround(s16);
134 int cutRideOnHorse(int);
136 int cutEndBullRunning(int);
137 int cutGotoSkipFenceStage(int);
138 int cutSpeakTo(int);
139 int cutNoEntrance(int);
140 int wait(void*);
141 int bullRunning(void*);
142 int skipFence(void*);
143 int talk(void*);
144 int test(void*);
146 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
147 daNpcT_motionAnmData_c const* i_motionAnmData,
148 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
149 int i_faceMotionStepNum,
150 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
151 int i_motionStepNum,
152 daNpcT_evtData_c const* i_evtData,
153 char** i_arcNames)
154 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
155 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
156 i_arcNames) {
157 OS_REPORT("|%06d:%x|daNpc_Aru_c -> コンストラクト\n", g_Counter.mCounter0, this);
158 }
163 BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
164 BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
167
169 u16 nodeNo = home.angle.x;
170 return (nodeNo == 0xFFFF) ? -1 : nodeNo;
171 }
172 u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
173 void setLastIn() { mLastGoatIn = true; }
174
175 static char* mCutNameList[7];
176 static cutFunc mCutList[7];
177
178private:
179 /* 0xE40 */ NPC_ARU_HIO_CLASS* mpHIO;
180 /* 0xE44 */ dCcD_Cyl mCyl;
181 /* 0xF80 */ u8 mType;
184 /* 0xFB0 */ actionFunc mAction;
185 /* 0xFBC */ fpc_ProcID mTimerID;
186 /* 0xFC0 */ int mTimer;
187 /* 0xFC4 */ int field_0xfc4;
188 /* 0xFC8 */ s16 mActorDirection;
189 /* 0xFCA */ s16 field_0xfca;
190 /* 0xFCC */ u8 field_0xfcc;
191 /* 0xFCD */ bool field_0xfcd;
192 /* 0xFCE */ bool mLastGoatIn;
193 /* 0xFCF */ bool field_0xfcf;
194 /* 0xFD0 */ bool field_0xfd0;
195 /* 0xFD1 */ bool field_0xfd1;
196 /* 0xFD2 */ bool field_0xfd2;
197 /* 0xFD3 */ bool field_0xfd3;
198 /* 0xFD4 */ u8 field_0xfd4[0xfd8 - 0xfd4];
199};
200
201STATIC_ASSERT(sizeof(daNpc_Aru_c) == 0xfd8);
202
203#endif /* D_A_NPC_ARU_H */
counter_class g_Counter
Definition c_counter.cpp:8
int cPhs_Step
Definition c_phase.h:8
Definition J3DJoint.h:66
Definition JORMContext.h:128
Definition d_cc_d.h:472
Definition d_a_npc.h:30
Definition d_a_npc.h:516
Definition d_a_npc_aru.h:24
daNpc_Aru_HIOParam m
Definition d_a_npc_aru.h:32
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_aru.cpp:198
void genMessage(JORMContext *)
Definition d_a_npc_aru.cpp:233
daNpc_Aru_HIO_c()
Definition d_a_npc_aru.cpp:194
Definition d_a_npc_aru.h:16
virtual ~daNpc_Aru_Param_c()
Definition d_a_npc_aru.h:18
static daNpc_Aru_HIOParam const m
Definition d_a_npc_aru.h:143
Fado.
Definition d_a_npc_aru.h:47
static void * srchUDoor(void *, void *)
Definition d_a_npc_aru.cpp:543
void setParam()
Definition d_a_npc_aru.cpp:786
bool field_0xfcd
Definition d_a_npc_aru.h:191
int duck(int)
Definition d_a_npc_aru.cpp:1375
fopAc_ac_c * getCowP(int)
Definition d_a_npc_aru.cpp:584
void setLastIn()
Definition d_a_npc_aru.h:173
int cutEndBullRunning(int)
Definition d_a_npc_aru.cpp:1561
daNpcT_ActorMngr_c mActorMngrs[4]
Definition d_a_npc_aru.h:182
static char * mCutNameList[7]
Definition d_a_npc_aru.h:347
void afterJntAnm(int)
Definition d_a_npc_aru.cpp:776
BOOL selectAction()
Definition d_a_npc_aru.cpp:1103
void adjustMoveDir()
Definition d_a_npc_aru.cpp:1221
bool field_0xfd1
Definition d_a_npc_aru.h:195
bool field_0xfd0
Definition d_a_npc_aru.h:194
int Execute()
Definition d_a_npc_aru.cpp:498
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:145
BOOL chkBullRunningStage()
Definition d_a_npc_aru.cpp:1178
dCcD_Cyl mCyl
Definition d_a_npc_aru.h:180
int cutGotoBullRunningStage(int)
Definition d_a_npc_aru.cpp:1517
static cutFunc mCutList[7]
Definition d_a_npc_aru.h:357
int Delete()
Definition d_a_npc_aru.cpp:491
void setAttnPos()
Definition d_a_npc_aru.cpp:1009
u8 getPathID()
Definition d_a_npc_aru.h:172
s32 getHeadJointNo()
Definition d_a_npc_aru.h:160
int(daNpc_Aru_c::*) cutFunc(int)
Definition d_a_npc_aru.h:94
u16 getEyeballMaterialNo()
Definition d_a_npc_aru.h:159
BOOL evtTalk()
Definition d_a_npc_aru.cpp:944
bool field_0xfd3
Definition d_a_npc_aru.h:197
u8 mType
Definition d_a_npc_aru.h:181
Material
Definition d_a_npc_aru.h:86
@ ARU_FACE_M
Definition d_a_npc_aru.h:90
@ ARU_EYEBALL_M
Definition d_a_npc_aru.h:89
@ ARU_BODY_M
Definition d_a_npc_aru.h:88
@ SC_EYE
Definition d_a_npc_aru.h:87
bool field_0xfd2
Definition d_a_npc_aru.h:196
s32 getBackboneJointNo()
Definition d_a_npc_aru.h:162
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:511
fopAc_ac_c * getUDoor_l_P()
Definition d_a_npc_aru.cpp:620
s16 field_0xfca
Definition d_a_npc_aru.h:189
void setCollision()
Definition d_a_npc_aru.cpp:1041
fopAc_ac_c * getUDoor_r_P()
Definition d_a_npc_aru.cpp:637
BOOL setAction(actionFunc)
Definition d_a_npc_aru.cpp:1161
fpc_ProcID mTimerID
Definition d_a_npc_aru.h:185
int cutGotoSkipFenceStage(int)
Definition d_a_npc_aru.cpp:1656
int test(void *)
Definition d_a_npc_aru.cpp:2165
BOOL evtCutProc()
Definition d_a_npc_aru.cpp:954
s32 getFootLJointNo()
Definition d_a_npc_aru.h:165
s16 srchActorDirection(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:1194
void reset()
Definition d_a_npc_aru.cpp:702
int wait(void *)
Definition d_a_npc_aru.cpp:1843
static void * srchCow(void *, void *)
Definition d_a_npc_aru.cpp:528
s32 getFootRJointNo()
Definition d_a_npc_aru.h:166
bool field_0xfcf
Definition d_a_npc_aru.h:193
BOOL checkRemoveJoint(int i_joint)
Definition d_a_npc_aru.h:164
int talk(void *)
Definition d_a_npc_aru.cpp:2088
int CreateHeap()
Definition d_a_npc_aru.cpp:455
BOOL isDelete()
Definition d_a_npc_aru.cpp:677
int cutNoEntrance(int)
Definition d_a_npc_aru.cpp:1775
NPC_ARU_HIO_CLASS * mpHIO
Definition d_a_npc_aru.h:179
u8 field_0xfd4[0xfd8 - 0xfd4]
Definition d_a_npc_aru.h:198
u8 field_0xfcc
Definition d_a_npc_aru.h:190
int getFlowNodeNo()
Definition d_a_npc_aru.h:168
int mTimer
Definition d_a_npc_aru.h:186
BOOL chkSkipFenceStage()
Definition d_a_npc_aru.cpp:1186
void beforeMove()
Definition d_a_npc_aru.cpp:997
int drawDbgInfo()
Definition d_a_npc_aru.cpp:1079
~daNpc_Aru_c()
Definition d_a_npc_aru.cpp:369
BOOL chkThrust(fopAc_ac_c *)
Definition d_a_npc_aru.cpp:558
BOOL checkChangeEvt()
Definition d_a_npc_aru.cpp:828
int(daNpc_Aru_c::*) actionFunc(void *)
Definition d_a_npc_aru.h:93
cPhs_Step create()
Definition d_a_npc_aru.cpp:385
Joint
Definition d_a_npc_aru.h:49
@ JNT_THAMBL
Definition d_a_npc_aru.h:65
@ JNT_SKIRTL
Definition d_a_npc_aru.h:77
@ JNT_HANDR
Definition d_a_npc_aru.h:69
@ JNT_ARMR1
Definition d_a_npc_aru.h:67
@ JNT_ARML1
Definition d_a_npc_aru.h:60
@ JNT_MAYU_L
Definition d_a_npc_aru.h:56
@ JNT_HANDL
Definition d_a_npc_aru.h:62
@ JNT_ARML2
Definition d_a_npc_aru.h:61
@ JNT_BACKBONE1
Definition d_a_npc_aru.h:51
@ JNT_MOUTH
Definition d_a_npc_aru.h:58
@ JNT_SKIRT1
Definition d_a_npc_aru.h:82
@ JNT_FINGERR1
Definition d_a_npc_aru.h:70
@ JNT_FINGERL1
Definition d_a_npc_aru.h:63
@ JNT_FOOTL
Definition d_a_npc_aru.h:76
@ JNT_FINGERR2
Definition d_a_npc_aru.h:71
@ JNT_SHOULDERR
Definition d_a_npc_aru.h:66
@ JNT_CHIN
Definition d_a_npc_aru.h:55
@ JNT_SKIRT2
Definition d_a_npc_aru.h:83
@ JNT_THAMBR
Definition d_a_npc_aru.h:72
@ JNT_FINGERL2
Definition d_a_npc_aru.h:64
@ JNT_ARMR2
Definition d_a_npc_aru.h:68
@ JNT_LEGL1
Definition d_a_npc_aru.h:74
@ JNT_LEGR1
Definition d_a_npc_aru.h:78
@ JNT_CENTER
Definition d_a_npc_aru.h:50
@ JNT_SHOULDERL
Definition d_a_npc_aru.h:59
@ JNT_SKIRTR
Definition d_a_npc_aru.h:81
@ JNT_MAYU_R
Definition d_a_npc_aru.h:57
@ JNT_LEGR2
Definition d_a_npc_aru.h:79
@ JNT_FOOTR
Definition d_a_npc_aru.h:80
@ JNT_HEAD
Definition d_a_npc_aru.h:54
@ JNT_NECK
Definition d_a_npc_aru.h:53
@ JNT_LEGL2
Definition d_a_npc_aru.h:75
@ JNT_BACKBONE2
Definition d_a_npc_aru.h:52
@ JNT_WAIST
Definition d_a_npc_aru.h:73
u8 getType()
Definition d_a_npc_aru.cpp:654
int Draw()
Definition d_a_npc_aru.cpp:502
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_aru.cpp:516
int bullRunning(void *)
Definition d_a_npc_aru.cpp:1983
void setAfterTalkMotion()
Definition d_a_npc_aru.cpp:856
int skipFence(void *)
Definition d_a_npc_aru.cpp:2045
void srchActors()
Definition d_a_npc_aru.cpp:888
BOOL chkAction(actionFunc)
Definition d_a_npc_aru.cpp:1157
bool mLastGoatIn
Definition d_a_npc_aru.h:192
s16 mActorDirection
Definition d_a_npc_aru.h:188
BOOL checkChangeJoint(int i_joint)
Definition d_a_npc_aru.h:163
actionFunc mAction
Definition d_a_npc_aru.h:184
int lookround(s16)
Definition d_a_npc_aru.cpp:1444
void action()
Definition d_a_npc_aru.cpp:971
int field_0xfc4
Definition d_a_npc_aru.h:187
int cutRideOnHorse(int)
Definition d_a_npc_aru.cpp:1474
actionFunc mNextAction
Definition d_a_npc_aru.h:183
s32 getNeckJointNo()
Definition d_a_npc_aru.h:161
int cutSpeakTo(int)
Definition d_a_npc_aru.cpp:1698
Definition f_op_actor.h:243
actor_place home
Definition f_op_actor.h:262
Definition m_Do_hostIO.h:26
STATIC_ASSERT(sizeof(daNpc_Aru_c)==0xfd8)
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:204
unsigned int fpc_ProcID
Definition f_pc_base.h:10
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
Definition JORReflexible.h:10
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:219
u32 mCounter0
Definition c_counter.h:7
Definition d_a_npc.h:842
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_aru.h:6
s16 avoid_time
Definition d_a_npc_aru.h:12
f32 forward_visibility
Definition d_a_npc_aru.h:13
f32 warning_range
Definition d_a_npc_aru.h:8
s16 no_turn_time
Definition d_a_npc_aru.h:11
f32 walk_speed
Definition d_a_npc_aru.h:10
f32 run_speed
Definition d_a_npc_aru.h:9
daNpcT_HIOParam common
Definition d_a_npc_aru.h:7