Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_zra.h
Go to the documentation of this file.
1#ifndef D_A_NPC_ZRA_H
2#define D_A_NPC_ZRA_H
3
4#include "d/actor/d_a_npc4.h"
6
28
30
31class daNpc_zrA_c : public daNpcF_c {
32public:
33 typedef BOOL (daNpc_zrA_c::*ActionFn)(void*);
34 typedef BOOL (daNpc_zrA_c::*EventFn)(int);
36 enum Type {
37 /* 0 */ TYPE_WAIT,
38 /* 1 */ TYPE_SWIM,
40 /* 3 */ TYPE_RIVER,
42 /* 5 */ TYPE_SEARCH,
43 /* 6 */ TYPE_SPA,
44 };
45
49 /* 2 */ SOLDIER_NONE,
50 };
51
53 /* 0 */ ACT_TYPE_0,
54 /* 1 */ ACT_TYPE_1,
55 /* 2 */ ACT_TYPE_2,
56 /* 3 */ ACT_TYPE_3,
57 /* 4 */ ACT_TYPE_4,
58 /* 5 */ ACT_TYPE_5,
59 /* 6 */ ACT_TYPE_6,
60 };
61
62 enum GameMode {
63 /* 0 */ GAME_MODE_0,
64 /* 1 */ GAME_MODE_1,
65 /* 2 */ GAME_MODE_2,
66 /* 3 */ GAME_MODE_3,
67 };
68
69 enum SwimMode {
70 /* 0 */ SWIM_WAIT,
71 /* 1 */ SWIM_RAIL,
72 /* 2 */ SWIM_TURN,
73 /* 3 */ SWIM_3,
74 };
75
76 enum Animation {
77 /* 0x00 */ ANM_NONE,
78 /* 0x01 */ ANM_F_TALK_A,
79 /* 0x02 */ ANM_F_TALK_A_SP,
80 /* 0x03 */ ANM_F_WAIT_SWIM,
81 /* 0x04 */ ANM_F_TALK_NOMAL,
83 /* 0x06 */ ANM_FH_SADSIT_A,
84 /* 0x07 */ ANM_FH_SADSIT_B,
85 /* 0x08 */ ANM_FH_SADSIT_C,
86 /* 0x09 */ ANM_FH_SADSIT_D,
87 /* 0x0A */ ANM_FH_SADSIT_E,
88 /* 0x0B */ ANM_F_LOOKING_SP,
90 /* 0x0D */ ANM_F_LOOKUP,
91 /* 0x0E */ ANM_FH_LOOKUP,
93 /* 0x10 */ ANM_F_TALK_B_SP,
94 /* 0x11 */ ANM_F_SPA_TALK_A,
96 /* 0x13 */ ANM_F_SPA_TALK_B,
98 /* 0x15 */ ANM_SWIM_TURN,
99 /* 0x16 */ ANM_STILL,
100 /* 0x17 */ ANM_FALLSWIM,
101 /* 0x18 */ ANM_SWIM_TALK,
102 /* 0x19 */ ANM_SADSIT_A,
103 /* 0x1A */ ANM_SADSIT_B,
104 /* 0x1B */ ANM_SADSIT_C,
105 /* 0x1C */ ANM_SADSIT_D,
106 /* 0x1D */ ANM_SADSIT_E,
107 /* 0x1E */ ANM_TOBIKOMI_S,
108 /* 0x1F */ ANM_TOBIKOMI_T,
109 /* 0x20 */ ANM_TOBIKOMI_E,
110 /* 0x21 */ ANM_LOOKING_SP,
112 /* 0x23 */ ANM_TALK_B_SP,
113 /* 0x24 */ ANM_LOOKUP,
114 /* 0x25 */ ANM_SPA_WAIT_B,
115 /* 0x26 */ ANM_SPA_TALK_B,
116 /* 0x27 */ ANM_SPA_WAIT_A,
117 /* 0x28 */ ANM_SPA_TALK_A,
118 /* 0x29 */ ANM_WAIT_A,
119 /* 0x2A */ ANM_WALK_A,
120 /* 0x2B */ ANM_TALK_A,
121 /* 0x2C */ ANM_SWIM_A,
122 /* 0x2D */ ANM_SWIM_B,
123 /* 0x2E */ ANM_WAIT_SWIM,
124 /* 0x2F */ ANM_DIVE,
125 /* 0x30 */ ANM_DIVE_B,
126 /* 0x31 */ ANM_FLOAT,
127 /* 0x32 */ ANM_FLOAT_B,
128 /* 0x33 */ ANM_STEP,
129 /* 0x34 */ ANM_WAIT_SP,
130 /* 0x35 */ ANM_WALK_A_SP,
131 /* 0x36 */ ANM_TALK_A_SP,
132 /* 0x37 */ ANM_SWIM_A_SP,
133 /* 0x38 */ ANM_SWIM_B_SP,
135 /* 0x3A */ ANM_DIVE_SP,
136 /* 0x3B */ ANM_DIVE_B_SP,
137 /* 0x3C */ ANM_FLOAT_SP,
138 /* 0x3D */ ANM_FLOAT_B_SP,
139 /* 0x3E */ ANM_STEP_SP,
140 };
141
143 /* 0x00 */ EXPR_TALK_NOMAL,
144 /* 0x01 */ EXPR_SADSIT_A,
145 /* 0x02 */ EXPR_SADSIT_B,
146 /* 0x03 */ EXPR_SADSIT_C,
147 /* 0x04 */ EXPR_SADSIT_D,
148 /* 0x05 */ EXPR_SADSIT_E,
149 /* 0x06 */ EXPR_LOOKING_SP,
150 /* 0x07 */ EXPR_LOOKUP,
151 /* 0x08 */ EXPR_SPA_TALK_A,
152 /* 0x09 */ EXPR_SPA_TALK_B,
154 /* 0x0B */ EXPR_TALK_B_SP,
155 /* 0x0C */ EXPR_TALK_A,
156 /* 0x0D */ EXPR_WAIT_SWIM,
157 /* 0x0E */ EXPR_TALK_A_SP,
160 /* 0x11 */ EXPR_LOOKUP_2,
161 /* 0x12 */ EXPR_SPA_WAIT_A,
162 /* 0x13 */ EXPR_SPA_WAIT_B,
163 /* 0x14 */ EXPR_NONE,
164 };
165
166 enum Motion {
167 /* 0x00 */ MOT_WAIT_A,
168 /* 0x01 */ MOT_WAIT_SWIM,
169 /* 0x02 */ MOT_SWIM_TALK,
170 /* 0x03 */ MOT_WAIT_A_2,
171 /* 0x04 */ MOT_WAIT_SWIM_2,
172 /* 0x05 */ MOT_TALK_A,
173 /* 0x06 */ MOT_SADSIT_A,
174 /* 0x07 */ MOT_SADSIT_B,
175 /* 0x08 */ MOT_SADSIT_C,
176 /* 0x09 */ MOT_SADSIT_D,
177 /* 0x0A */ MOT_SADSIT_E,
178 /* 0x0B */ MOT_LOOKING_SP,
179 /* 0x0C */ MOT_LOOKUP,
180 /* 0x0D */ MOT_SPA_TALK_A,
181 /* 0x0E */ MOT_SPA_TALK_B,
183 /* 0x10 */ MOT_TALK_B_SP,
184 /* 0x11 */ MOT_TALK_A_2,
185 /* 0x12 */ MOT_SPA_WAIT_A,
186 /* 0x13 */ MOT_SPA_WAIT_B,
187 /* 0x14 */ MOT_WALK_A,
188 /* 0x16 */ MOT_SWIM_A = 0x16,
189 /* 0x17 */ MOT_SWIM_B,
190 /* 0x18 */ MOT_DIVE_SWIM_A,
192 /* 0x1A */ MOT_DIVE_SWIM_B,
194 /* 0x1C */ MOT_STEP,
195 /* 0x1D */ MOT_FLOAT,
196 /* 0x1E */ MOT_FLOAT_B,
197 /* 0x1F */ MOT_SWIM_TURN,
198 /* 0x20 */ MOT_TOBIKOMI_S,
199 /* 0x21 */ MOT_TOBIKOMI_T,
200 /* 0x22 */ MOT_TOBIKOMI_E,
201 /* 0x23 */ MOT_FALLSWIM,
202 };
203
219
220 daNpc_zrA_c();
221 ~daNpc_zrA_c();
223 int CreateHeap();
224 int Delete();
225 int Execute();
226 int Draw();
228 static int createHeapCallBack(fopAc_ac_c*);
229 static int ctrlJointCallBack(J3DJoint*, int);
230 void setParam();
231 BOOL main();
232 BOOL ctrlBtk();
233 void setAttnPos();
234 void setMtx();
235 bool setExpressionAnm(int, bool);
236 bool setExpressionBtp(int);
237 void setExpression(int, f32);
238 void setMotionAnm(int, f32);
239 void setMotionWaterAnm(int);
240 void setMotion(int, f32, BOOL);
242 void drawOtherMdls();
249 /* inline */ u8 getNoFromParam() { return (u8)fopAcM_GetParam(this); }
250 /* inline */ u8 getPathNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
251 BOOL isDelete();
252 void reset();
253 void playExpression();
254 void playMotion();
256 bool setAction(ActionFn);
257 bool selectAction();
258 BOOL doEvent();
259 BOOL setSkipZev(int, int);
260 void setLookMode(int);
261 void lookat();
264 void setPrtcl();
265 BOOL test(void*);
266 BOOL wait(void*);
267 void walkCalc();
268 void waitCalc();
269 BOOL waitSpa(void*);
271 BOOL talk(void*);
273 BOOL swim(void*);
280 void calcBank(s16, s16, s16&, s16&);
317 BOOL tobiEnd(void*);
322
323 int getType() { return mType; }
324 u32 getAngleNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
325 void setBlastFlag(u8 i_flag) { mBlastFlag = i_flag; }
327
329 /* 0x0BD8 */ J3DModel* mpObjectModel[3];
335 /* 0x12E4 */ dPaPo_c mPaPo;
337 /* 0x1334 */ daNpc_zrA_HIO_c* mpHIO;
338 /* 0x1338 */ dCcD_Cyl mCcCyl;
340 /* 0x1480 */ ActionFn mpActionFn;
342 /* 0x14CC */ u32 mItemID;
343 /* 0x14D0 */ int field_0x14d0;
344 /* 0x14D4 */ int field_0x14d4;
345 /* 0x14D8 */ int mSwimTurnTimer;
346 /* 0x14DC */ int field_0x14dc;
347 /* 0x14E0 */ int mFlowID;
348 /* 0x14E4 */ s16 mLookMode;
349 /* 0x14E6 */ u16 mMode;
350 /* 0x14E8 */ u8 mType;
351 /* 0x14E9 */ u8 mSoldierType;
352 /* 0x14EC */ int mBaseMotionAnm;
353 /* 0x14F0 */ int mBtkID;
354 /* 0x14F4 */ int mBpkID;
355 /* 0x14F8 */ u32 mWaterAnmFlags;
356 /* 0x14FC */ char* mStaffName;
357 /* 0x1500 */ cXyz field_0x1500;
358 /* 0x150C */ u8 mMeterCount;
359 /* 0x150D */ u8 mGameMode;
360 /* 0x150E */ u8 mSwitch1;
361 /* 0x150F */ u8 mSwitch2;
362 /* 0x1510 */ int field_0x1510;
363 /* 0x1514 */ int mSpinAngle;
364 /* 0x1518 */ s16 field_0x1518;
365 /* 0x151C */ int mSpinTimer;
366 /* 0x1520 */ u8 mSwimMode;
367 /* 0x1521 */ bool field_0x1521;
368 /* 0x1524 */ f32 mSwimSpeedF;
369 /* 0x1528 */ f32 mSwimSpeedScale;
370 /* 0x152C */ u8 field_0x152c[4];
371 /* 0x1530 */ csXyz mWaistAngle;
372 /* 0x1536 */ csXyz mSwimAngleCalc;
373 /* 0x153C */ bool field_0x153c;
374 /* 0x153D */ bool field_0x153d;
375 /* 0x153E */ bool field_0x153e;
376 /* 0x1540 */ int mSwimFastTurnTimer;
377 /* 0x1544 */ cXyz mSwimSpeed;
378 /* 0x1550 */ bool field_0x1550;
379 /* 0x1554 */ int field_0x1554;
380 /* 0x1558 */ int field_0x1558;
381 /* 0x155C */ int mModulationParam;
383 /* 0x156C */ f32 mScaleFactor;
384 /* 0x1570 */ int mEvasionTimer;
385 /* 0x1574 */ s16 mEvasionAngle;
386 /* 0x1576 */ u8 mActionType;
387 /* 0x1577 */ bool mIsAboveWater;
388 /* 0x1578 */ cXyz field_0x1578;
389 /* 0x1584 */ cXyz field_0x1584;
390 /* 0x1590 */ bool mResetWaistAngle;
391 /* 0x1591 */ bool mIsTurning;
393 /* 0x1593 */ bool mCheckSwimTurn;
394 /* 0x1594 */ u8 mActionSelect;
395 /* 0x1595 */ int mRiverPathIdx;
396 /* 0x159C */ cXyz field_0x159c[3];
397 /* 0x15C0 */ u8 field_0x15c0;
398 /* 0x15C1 */ bool mBlastFlag;
399
400 static char* mEvtCutNameList[11];
401 static EventFn mEvtCutList[11];
402};
403
404STATIC_ASSERT(sizeof(daNpc_zrA_c) == 0x15C4);
405
407public:
408 struct param {
409 /* 0x00 */ f32 mAttnOffsetY;
410 /* 0x04 */ f32 mGravity;
411 /* 0x08 */ f32 mScale;
412 /* 0x0C */ f32 mShadowDepth;
413 /* 0x10 */ f32 mCcWeight;
414 /* 0x14 */ f32 mCylH;
415 /* 0x18 */ f32 mWallH;
416 /* 0x1C */ f32 mWallR;
417 /* 0x20 */ f32 mBodyUpAngle;
418 /* 0x24 */ f32 mBodyDownAngle;
419 /* 0x28 */ f32 mBodyLeftAngle;
421 /* 0x30 */ f32 mHeadUpAngle;
422 /* 0x34 */ f32 mHeadDownAngle;
423 /* 0x38 */ f32 mHeadLeftAngle;
425 /* 0x40 */ f32 mNeckAngleScl;
426 /* 0x44 */ f32 mMorfFrames;
427 /* 0x48 */ s16 mSpeakDistIdx;
428 /* 0x4A */ s16 mSpeakAngleIdx;
429 /* 0x4C */ s16 mTalkDistIdx;
430 /* 0x4E */ s16 mTalkAngleIdx;
431 /* 0x50 */ f32 mAttnFovY;
432 /* 0x54 */ f32 mAttnRadius;
433 /* 0x58 */ f32 mAttnUpperY;
434 /* 0x5C */ f32 mAttnLowerY;
435 /* 0x60 */ s16 field_0x60;
436 /* 0x62 */ s16 mDamageTimer;
438 /* 0x66 */ s16 mTestMotion;
439 /* 0x68 */ s16 mTestLookMode;
440 /* 0x6A */ bool mTest;
441 /* 0x6C */ f32 mSwimSpeed;
444 /* 0x78 */ f32 mSwimAnmRate;
445 /* 0x7C */ f32 field_0x7c;
446 /* 0x80 */ f32 field_0x80;
448 /* 0x88 */ f32 mMinDepth;
449 /* 0x8C */ f32 field_0x8c;
450 /* 0x90 */ f32 field_0x90;
451 /* 0x94 */ f32 mWalkSpeed;
454 /* 0x9C */ f32 mWalkAnmRate;
455 /* 0xA0 */ f32 field_0xa0;
456 /* 0xA4 */ f32 field_0xa4;
457 /* 0xA8 */ f32 field_0xa8;
458 /* 0xAC */ f32 field_0xac;
459 };
460
462
463 static param const m;
464};
465
467
468#endif /* D_A_NPC_ZRA_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
MtxP getAnmMtx(int jointNo)
Definition J3DModel.h:105
Definition Z2Creature.h:7
Definition c_sxyz.h:10
Definition d_cc_d.h:461
Particle effect management class for center-based effects.
Definition d_particle_copoly.h:25
Definition d_a_npc4.h:14
Definition d_a_npc4.h:379
Definition d_a_npc4.h:292
Definition d_a_npc4.h:330
dPath * mPathInfo
Definition d_a_npc4.h:335
Definition d_a_npc4.h:54
mDoExt_McaMorfSO * mAnm_p
Definition d_a_npc4.h:56
Definition d_a_npc_zra.cpp:22
Definition d_a_npc_zra.h:406
virtual ~daNpc_zrA_Param_c()
Definition d_a_npc_zra.h:461
static param const m
Definition d_a_npc_zra.h:35
Zora (Adult)
Definition d_a_npc_zra.h:17
BOOL getDstPosDstXZ(cXyz, cXyz &)
Definition d_a_npc_zra.cpp:113
void setNextIdxDst(cXyz)
Definition d_a_npc_zra.cpp:102
BOOL chkPassedChase(u16, cXyz)
Definition d_a_npc_zra.cpp:128
f32 chkPassDst(u16, cXyz)
Definition d_a_npc_zra.cpp:158
BOOL getDstPosDst2(cXyz, cXyz &)
Definition d_a_npc_zra.cpp:88
int getEndIdx()
Definition d_a_npc_zra.h:26
int getDstPosChase(u16, cXyz, cXyz &)
Definition d_a_npc_zra.cpp:133
BOOL chkPassedDstXZ(cXyz)
Definition d_a_npc_zra.cpp:109
Definition d_a_npc_zra.h:31
ActionType getActionTypeFromParam()
Definition d_a_npc_zra.cpp:1551
int mBaseMotionAnm
Definition d_a_npc_zra.h:352
void calcModulation()
GameMode
Definition d_a_npc_zra.h:62
@ GAME_MODE_1
Definition d_a_npc_zra.h:64
@ GAME_MODE_0
Definition d_a_npc_zra.h:63
@ GAME_MODE_2
Definition d_a_npc_zra.h:65
@ GAME_MODE_3
Definition d_a_npc_zra.h:66
void drawOtherMdls()
Definition d_a_npc_zra.cpp:1481
cXyz field_0x1578
Definition d_a_npc_zra.h:388
int mSpinAngle
Definition d_a_npc_zra.h:363
BOOL ECut_thanksBlast(int)
BOOL doEvent()
Definition d_a_npc_zra.cpp:1981
f32 mScaleFactor
Definition d_a_npc_zra.h:383
cXyz mModulationOffset
Definition d_a_npc_zra.h:382
BOOL ECut_searchPrince1(int)
void calcWaistAngleStop()
J3DModel * mpObjectModel[3]
Definition d_a_npc_zra.h:329
int field_0x1558
Definition d_a_npc_zra.h:380
daNpc_zrA_HIO_c * mpHIO
Definition d_a_npc_zra.h:337
static char * mEvtCutNameList[11]
Definition d_a_npc_zra.h:422
BOOL isDelete()
Definition d_a_npc_zra.cpp:1603
BOOL drawDbgInfo()
Definition d_a_npc_zra.cpp:1477
MtxP getHeadMtx()
Definition d_a_npc_zra.h:326
BOOL(daNpc_zrA_c::*) ActionFn(void *)
Definition d_a_npc_zra.h:33
SwimMode
Definition d_a_npc_zra.h:69
@ SWIM_3
Definition d_a_npc_zra.h:73
@ SWIM_RAIL
Definition d_a_npc_zra.h:71
@ SWIM_TURN
Definition d_a_npc_zra.h:72
@ SWIM_WAIT
Definition d_a_npc_zra.h:70
void playMotion()
Definition d_a_npc_zra.cpp:1771
u8 mSwimMode
Definition d_a_npc_zra.h:366
csXyz mWaistAngle
Definition d_a_npc_zra.h:371
void setExpression(int, f32)
Definition d_a_npc_zra.cpp:1294
void waitCalc()
daNpc_zrA_c()
Definition d_a_npc_zra.cpp:450
int Draw()
Definition d_a_npc_zra.cpp:669
mDoExt_bpkAnm mWaterBpkAnm
Definition d_a_npc_zra.h:332
BOOL setSkipZev(int, int)
Definition d_a_npc_zra.cpp:2132
BOOL tobikomi3(void *)
u32 mItemID
Definition d_a_npc_zra.h:342
BOOL chkAction(ActionFn)
Definition d_a_npc_zra.cpp:1868
void reset()
Definition d_a_npc_zra.cpp:1615
void setExpressionTalkAfter()
Definition d_a_npc_zra.cpp:2221
bool field_0x1550
Definition d_a_npc_zra.h:378
int getType()
Definition d_a_npc_zra.h:323
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_zra.cpp:825
Type
Definition d_a_npc_zra.h:36
@ TYPE_WAIT
Definition d_a_npc_zra.h:37
@ TYPE_SPA
Definition d_a_npc_zra.h:43
@ TYPE_SEARCH
Definition d_a_npc_zra.h:42
@ TYPE_WATERFALL
Definition d_a_npc_zra.h:39
@ TYPE_TOBIKOMI
Definition d_a_npc_zra.h:41
@ TYPE_SWIM
Definition d_a_npc_zra.h:38
@ TYPE_RIVER
Definition d_a_npc_zra.h:40
cXyz mSwimSpeed
Definition d_a_npc_zra.h:377
BOOL tobiJump(void *)
s16 mEvasionAngle
Definition d_a_npc_zra.h:385
int CreateHeap()
Definition d_a_npc_zra.cpp:573
int mModulationParam
Definition d_a_npc_zra.h:381
void calcSwimPos(cXyz &)
BOOL ECut_searchPrince2(int)
BOOL swimRiverDescend(void *)
BOOL calcWaistAngleCheck()
void calcWaistAngle()
BOOL ctrlBtk()
Definition d_a_npc_zra.cpp:963
bool mCheckSwimTurn
Definition d_a_npc_zra.h:393
u32 mWaterAnmFlags
Definition d_a_npc_zra.h:355
request_of_phase_process_class mPhase[8]
Definition d_a_npc_zra.h:341
bool field_0x1521
Definition d_a_npc_zra.h:367
BOOL returnRiverDescend(void *)
Z2Creature mCreatureSound
Definition d_a_npc_zra.h:328
GameMode getGameModeFromParam()
Definition d_a_npc_zra.cpp:1542
BOOL waitLake(void *)
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_zra.cpp:748
int mEvasionTimer
Definition d_a_npc_zra.h:384
int mSwimFastTurnTimer
Definition d_a_npc_zra.h:376
void calcSwimAngle(csXyz &, csXyz &, s16, s16)
u8 field_0x152c[4]
Definition d_a_npc_zra.h:370
BOOL ECut_carryWaterfallSkip(int)
BOOL tobiEnd(void *)
int field_0x14d0
Definition d_a_npc_zra.h:343
u16 mMode
Definition d_a_npc_zra.h:349
Type getTypeFromArgument()
Definition d_a_npc_zra.cpp:1504
void walkCalc()
void playExpression()
Definition d_a_npc_zra.cpp:1709
char * mStaffName
Definition d_a_npc_zra.h:356
bool field_0x153d
Definition d_a_npc_zra.h:374
int Delete()
Definition d_a_npc_zra.cpp:660
ActionFn mpActionFn
Definition d_a_npc_zra.h:340
csXyz mSwimAngleCalc
Definition d_a_npc_zra.h:372
BOOL test(void *)
Definition d_a_npc_zra.cpp:2265
BOOL turnSwimInit()
SoldierType
Definition d_a_npc_zra.h:46
@ SOLDIER_NOSPEAR
Definition d_a_npc_zra.h:48
@ SOLDIER_NONE
Definition d_a_npc_zra.h:49
@ SOLDIER_SPEAR
Definition d_a_npc_zra.h:47
BOOL ECut_resultAnnounce(int)
f32 mSwimSpeedF
Definition d_a_npc_zra.h:368
cPhs__Step create()
Definition d_a_npc_zra.cpp:481
BOOL ECut_carryWaterfall(int)
u8 getNoFromParam()
Definition d_a_npc_zra.h:249
bool mIsTurning
Definition d_a_npc_zra.h:391
Motion
Definition d_a_npc_zra.h:166
@ MOT_SWIM_TALK
Definition d_a_npc_zra.h:169
@ MOT_SPA_TALK_A
Definition d_a_npc_zra.h:180
@ MOT_SWIM_A
Definition d_a_npc_zra.h:188
@ MOT_TALK_B_SP
Definition d_a_npc_zra.h:183
@ MOT_TALK_A_2
Definition d_a_npc_zra.h:184
@ MOT_TALK_SWIM_SP
Definition d_a_npc_zra.h:182
@ MOT_WAIT_A
Definition d_a_npc_zra.h:167
@ MOT_TOBIKOMI_T
Definition d_a_npc_zra.h:199
@ MOT_SADSIT_B
Definition d_a_npc_zra.h:174
@ MOT_SADSIT_C
Definition d_a_npc_zra.h:175
@ MOT_DIVE_B_SWIM_B
Definition d_a_npc_zra.h:193
@ MOT_FALLSWIM
Definition d_a_npc_zra.h:201
@ MOT_SPA_WAIT_A
Definition d_a_npc_zra.h:185
@ MOT_DIVE_SWIM_B
Definition d_a_npc_zra.h:192
@ MOT_TALK_A
Definition d_a_npc_zra.h:172
@ MOT_WAIT_SWIM
Definition d_a_npc_zra.h:168
@ MOT_SWIM_TURN
Definition d_a_npc_zra.h:197
@ MOT_STEP
Definition d_a_npc_zra.h:194
@ MOT_DIVE_B_SWIM_A
Definition d_a_npc_zra.h:191
@ MOT_SWIM_B
Definition d_a_npc_zra.h:189
@ MOT_WAIT_A_2
Definition d_a_npc_zra.h:170
@ MOT_SADSIT_A
Definition d_a_npc_zra.h:173
@ MOT_SADSIT_D
Definition d_a_npc_zra.h:176
@ MOT_SPA_WAIT_B
Definition d_a_npc_zra.h:186
@ MOT_FLOAT
Definition d_a_npc_zra.h:195
@ MOT_WALK_A
Definition d_a_npc_zra.h:187
@ MOT_LOOKUP
Definition d_a_npc_zra.h:179
@ MOT_FLOAT_B
Definition d_a_npc_zra.h:196
@ MOT_SPA_TALK_B
Definition d_a_npc_zra.h:181
@ MOT_SADSIT_E
Definition d_a_npc_zra.h:177
@ MOT_TOBIKOMI_E
Definition d_a_npc_zra.h:200
@ MOT_LOOKING_SP
Definition d_a_npc_zra.h:178
@ MOT_TOBIKOMI_S
Definition d_a_npc_zra.h:198
@ MOT_DIVE_SWIM_A
Definition d_a_npc_zra.h:190
@ MOT_WAIT_SWIM_2
Definition d_a_npc_zra.h:171
int field_0x1510
Definition d_a_npc_zra.h:362
int mSwimTurnTimer
Definition d_a_npc_zra.h:345
bool mResetWaistAngle
Definition d_a_npc_zra.h:390
void setMotionAnm(int, f32)
Definition d_a_npc_zra.cpp:1303
BOOL ECut_talkSwim(int)
u32 getAngleNoFromParam()
Definition d_a_npc_zra.h:324
BOOL main()
Definition d_a_npc_zra.cpp:896
BOOL diveRiverDescend(void *)
BOOL tobikomi2(void *)
daNpc_zrA_Path_c mPath
Definition d_a_npc_zra.h:333
void resetModulation()
bool setExpressionAnm(int, bool)
Definition d_a_npc_zra.cpp:1145
BOOL waitSwim()
BOOL turnSwim()
u8 mActionSelect
Definition d_a_npc_zra.h:394
~daNpc_zrA_c()
Definition d_a_npc_zra.cpp:452
int mBpkID
Definition d_a_npc_zra.h:354
u8 mSwitch2
Definition d_a_npc_zra.h:361
void calcCanoeMove(BOOL)
cXyz field_0x159c[3]
Definition d_a_npc_zra.h:396
void setLookMode(int)
Definition d_a_npc_zra.cpp:2140
f32 mSwimSpeedScale
Definition d_a_npc_zra.h:369
void setMotion(int, f32, BOOL)
Definition d_a_npc_zra.cpp:1465
BOOL swim(void *)
ActionType
Definition d_a_npc_zra.h:52
@ ACT_TYPE_3
Definition d_a_npc_zra.h:56
@ ACT_TYPE_5
Definition d_a_npc_zra.h:58
@ ACT_TYPE_0
Definition d_a_npc_zra.h:53
@ ACT_TYPE_4
Definition d_a_npc_zra.h:57
@ ACT_TYPE_2
Definition d_a_npc_zra.h:55
@ ACT_TYPE_1
Definition d_a_npc_zra.h:54
@ ACT_TYPE_6
Definition d_a_npc_zra.h:59
void lookat()
Definition d_a_npc_zra.cpp:2146
void setMtx()
Definition d_a_npc_zra.cpp:1127
u8 field_0x15c0
Definition d_a_npc_zra.h:397
int mRiverPathIdx
Definition d_a_npc_zra.h:395
u8 mGameMode
Definition d_a_npc_zra.h:359
bool setExpressionBtp(int)
Definition d_a_npc_zra.cpp:1252
BOOL tobikomi1(void *)
void setPrtcl()
Definition d_a_npc_zra.cpp:2250
BOOL waitSearch(void *)
int field_0x1554
Definition d_a_npc_zra.h:379
Animation
Definition d_a_npc_zra.h:76
@ ANM_DIVE_SP
Definition d_a_npc_zra.h:135
@ ANM_FH_TALK_NOMAL
Definition d_a_npc_zra.h:82
@ ANM_WAIT_SP
Definition d_a_npc_zra.h:129
@ ANM_SWIM_TURN
Definition d_a_npc_zra.h:98
@ ANM_F_LOOKING_SP
Definition d_a_npc_zra.h:88
@ ANM_WAIT_A
Definition d_a_npc_zra.h:118
@ ANM_STEP
Definition d_a_npc_zra.h:128
@ ANM_F_TALK_SWIM_SP
Definition d_a_npc_zra.h:92
@ ANM_SADSIT_A
Definition d_a_npc_zra.h:102
@ ANM_WAIT_SWIM
Definition d_a_npc_zra.h:123
@ ANM_SWIM_TALK
Definition d_a_npc_zra.h:101
@ ANM_LOOKING_SP
Definition d_a_npc_zra.h:110
@ ANM_F_LOOKUP
Definition d_a_npc_zra.h:90
@ ANM_TALK_A_SP
Definition d_a_npc_zra.h:131
@ ANM_TALK_B_SP
Definition d_a_npc_zra.h:112
@ ANM_F_WAIT_SWIM
Definition d_a_npc_zra.h:80
@ ANM_FLOAT_SP
Definition d_a_npc_zra.h:137
@ ANM_FH_SADSIT_D
Definition d_a_npc_zra.h:86
@ ANM_DIVE
Definition d_a_npc_zra.h:124
@ ANM_SPA_TALK_B
Definition d_a_npc_zra.h:115
@ ANM_SWIM_A_SP
Definition d_a_npc_zra.h:132
@ ANM_FALLSWIM
Definition d_a_npc_zra.h:100
@ ANM_SPA_WAIT_A
Definition d_a_npc_zra.h:116
@ ANM_FLOAT
Definition d_a_npc_zra.h:126
@ ANM_NONE
Definition d_a_npc_zra.h:77
@ ANM_FH_SADSIT_A
Definition d_a_npc_zra.h:83
@ ANM_F_TALK_A_SP
Definition d_a_npc_zra.h:79
@ ANM_F_TALK_NOMAL
Definition d_a_npc_zra.h:81
@ ANM_TALK_A
Definition d_a_npc_zra.h:120
@ ANM_FH_LOOKUP
Definition d_a_npc_zra.h:91
@ ANM_FH_LOOKING_SP
Definition d_a_npc_zra.h:89
@ ANM_DIVE_B_SP
Definition d_a_npc_zra.h:136
@ ANM_FLOAT_B
Definition d_a_npc_zra.h:127
@ ANM_TOBIKOMI_S
Definition d_a_npc_zra.h:107
@ ANM_FH_SADSIT_E
Definition d_a_npc_zra.h:87
@ ANM_SADSIT_D
Definition d_a_npc_zra.h:105
@ ANM_F_TALK_A
Definition d_a_npc_zra.h:78
@ ANM_WALK_A_SP
Definition d_a_npc_zra.h:130
@ ANM_F_SPA_TALK_A
Definition d_a_npc_zra.h:94
@ ANM_SADSIT_C
Definition d_a_npc_zra.h:104
@ ANM_SPA_TALK_A
Definition d_a_npc_zra.h:117
@ ANM_SADSIT_B
Definition d_a_npc_zra.h:103
@ ANM_TOBIKOMI_E
Definition d_a_npc_zra.h:109
@ ANM_TALK_SWIM_SP
Definition d_a_npc_zra.h:111
@ ANM_FLOAT_B_SP
Definition d_a_npc_zra.h:138
@ ANM_TOBIKOMI_T
Definition d_a_npc_zra.h:108
@ ANM_SWIM_B_SP
Definition d_a_npc_zra.h:133
@ ANM_STEP_SP
Definition d_a_npc_zra.h:139
@ ANM_SWIM_A
Definition d_a_npc_zra.h:121
@ ANM_STILL
Definition d_a_npc_zra.h:99
@ ANM_LOOKUP
Definition d_a_npc_zra.h:113
@ ANM_SPA_WAIT_B
Definition d_a_npc_zra.h:114
@ ANM_SADSIT_E
Definition d_a_npc_zra.h:106
@ ANM_FH_SPA_WAIT_A
Definition d_a_npc_zra.h:95
@ ANM_SWIM_B
Definition d_a_npc_zra.h:122
@ ANM_WALK_A
Definition d_a_npc_zra.h:119
@ ANM_WAIT_SWIM_SP
Definition d_a_npc_zra.h:134
@ ANM_FH_SADSIT_C
Definition d_a_npc_zra.h:85
@ ANM_DIVE_B
Definition d_a_npc_zra.h:125
@ ANM_F_TALK_B_SP
Definition d_a_npc_zra.h:93
@ ANM_F_SPA_TALK_B
Definition d_a_npc_zra.h:96
@ ANM_FH_SADSIT_B
Definition d_a_npc_zra.h:84
@ ANM_FH_SPA_WAIT_B
Definition d_a_npc_zra.h:97
int mBtkID
Definition d_a_npc_zra.h:353
BOOL talk(void *)
int field_0x14d4
Definition d_a_npc_zra.h:344
void moveRiverPosCalc(cXyz &)
bool field_0x153c
Definition d_a_npc_zra.h:373
bool field_0x153e
Definition d_a_npc_zra.h:375
u8 mSoldierType
Definition d_a_npc_zra.h:351
BOOL tobiWait(void *)
BOOL(daNpc_zrA_c::*) EventFn(int)
Definition d_a_npc_zra.h:34
int mFlowID
Definition d_a_npc_zra.h:347
void setMotionWaterAnm(int)
Definition d_a_npc_zra.cpp:1394
u8 mActionType
Definition d_a_npc_zra.h:386
int field_0x14dc
Definition d_a_npc_zra.h:346
BOOL evasionCalc(cXyz &, csXyz &)
daNpcF_ActorMngr_c mActorMngr[3]
Definition d_a_npc_zra.h:336
bool mBlastFlag
Definition d_a_npc_zra.h:398
BOOL waitWaterfall(void *)
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_zra.cpp:821
u8 mType
Definition d_a_npc_zra.h:350
bool setAction(ActionFn)
Definition d_a_npc_zra.cpp:1872
u8 mSwitch1
Definition d_a_npc_zra.h:360
BOOL ECut_beforeBlastzrR(int)
void adjustShapeAngle()
Definition d_a_npc_zra.h:321
void setBlastFlag(u8 i_flag)
Definition d_a_npc_zra.h:325
u8 getPathNoFromParam()
Definition d_a_npc_zra.h:250
BOOL railSwim()
BOOL swimGoalRiverDescend(void *)
void calcWaitSwim(BOOL)
Event
Definition d_a_npc_zra.h:204
@ EVT_TALK_MULTI
Definition d_a_npc_zra.h:216
@ EVT_CARRY_WATERFALL
Definition d_a_npc_zra.h:211
@ EVT_CARRY_WATERFALL_NIGHT
Definition d_a_npc_zra.h:212
@ EVT_TALK_MULTI2
Definition d_a_npc_zra.h:217
@ EVT_THANKS_BLAST
Definition d_a_npc_zra.h:209
@ EVT_CARRY_WATERFALL_SKIP
Definition d_a_npc_zra.h:213
@ EVT_BEFORE_BLAST_ZRR
Definition d_a_npc_zra.h:207
@ EVT_CARRY_WATERFALL_NIGHT_SKIP
Definition d_a_npc_zra.h:214
@ EVT_NONE
Definition d_a_npc_zra.h:205
@ EVT_RESULT_ANNOUNCE
Definition d_a_npc_zra.h:210
@ EVT_TALK_SWIM
Definition d_a_npc_zra.h:206
@ EVT_SEARCH_PRINCE
Definition d_a_npc_zra.h:215
@ EVT_AFTER_BLAST_ZRR
Definition d_a_npc_zra.h:208
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_zra.h:330
s16 mLookMode
Definition d_a_npc_zra.h:348
BOOL ECut_afterBlastzrR(int)
void calcWaistAngleInit()
dPaPo_c mPaPo
Definition d_a_npc_zra.h:335
BOOL waitSpa(void *)
BOOL tobiSearch(void *)
void createRuppi()
u8 mCheckSwimTurnTimer
Definition d_a_npc_zra.h:392
SoldierType getSoldierTypeFromParam()
Definition d_a_npc_zra.cpp:1525
Expression
Definition d_a_npc_zra.h:142
@ EXPR_SPA_WAIT_B
Definition d_a_npc_zra.h:162
@ EXPR_SPA_TALK_A
Definition d_a_npc_zra.h:151
@ EXPR_SADSIT_E
Definition d_a_npc_zra.h:148
@ EXPR_SPA_TALK_B
Definition d_a_npc_zra.h:152
@ EXPR_TALK_NOMAL
Definition d_a_npc_zra.h:143
@ EXPR_TALK_A_SP
Definition d_a_npc_zra.h:157
@ EXPR_SADSIT_B
Definition d_a_npc_zra.h:145
@ EXPR_SADSIT_D
Definition d_a_npc_zra.h:147
@ EXPR_SPA_WAIT_A
Definition d_a_npc_zra.h:161
@ EXPR_TALK_A
Definition d_a_npc_zra.h:155
@ EXPR_TALK_B_SP
Definition d_a_npc_zra.h:154
@ EXPR_NONE
Definition d_a_npc_zra.h:163
@ EXPR_SADSIT_A
Definition d_a_npc_zra.h:144
@ EXPR_TALK_SWIM_SP
Definition d_a_npc_zra.h:153
@ EXPR_LOOKING_SP_2
Definition d_a_npc_zra.h:159
@ EXPR_TALK_NOMAL_2
Definition d_a_npc_zra.h:158
@ EXPR_SADSIT_C
Definition d_a_npc_zra.h:146
@ EXPR_WAIT_SWIM
Definition d_a_npc_zra.h:156
@ EXPR_LOOKUP_2
Definition d_a_npc_zra.h:160
@ EXPR_LOOKING_SP
Definition d_a_npc_zra.h:149
@ EXPR_LOOKUP
Definition d_a_npc_zra.h:150
dCcD_Cyl mCcCyl
Definition d_a_npc_zra.h:338
mDoExt_btkAnm mWaterBtkAnm
Definition d_a_npc_zra.h:331
BOOL talkSwim(void *)
int mSpinTimer
Definition d_a_npc_zra.h:365
BOOL swimWaterfall(void *)
cXyz field_0x1584
Definition d_a_npc_zra.h:389
ActionFn mpNextActionFn
Definition d_a_npc_zra.h:339
static EventFn mEvtCutList[11]
Definition d_a_npc_zra.h:436
u8 getMultiNoFromParam()
Definition d_a_npc_zra.cpp:1595
BOOL diveCalc(s16, s16, BOOL)
bool mIsAboveWater
Definition d_a_npc_zra.h:387
cXyz field_0x1500
Definition d_a_npc_zra.h:357
void setParam()
Definition d_a_npc_zra.cpp:836
daNpcF_Lookat_c mLookat
Definition d_a_npc_zra.h:334
bool selectAction()
Definition d_a_npc_zra.cpp:1885
u8 mMeterCount
Definition d_a_npc_zra.h:358
BOOL turnSwimCheck()
void calcBank(s16, s16, s16 &, s16 &)
int Execute()
Definition d_a_npc_zra.cpp:665
BOOL swimRiverDescend2(void *)
BOOL wait(void *)
u8 getMultiModeFromParam()
Definition d_a_npc_zra.cpp:1584
BOOL waitRiverDescend(void *)
BOOL chkFindPlayer()
Definition d_a_npc_zra.cpp:2204
BOOL ECut_talkMulti(int)
BOOL diveWaterfall(void *)
s16 field_0x1518
Definition d_a_npc_zra.h:364
void setAttnPos()
Definition d_a_npc_zra.cpp:987
Definition f_op_actor.h:230
J3DModel * getModel()
Definition m_Do_ext.h:350
Definition m_Do_ext.h:124
Definition m_Do_ext.h:65
Type
Definition d_a_e_gm.cpp:65
STATIC_ASSERT(sizeof(daNpc_zrA_Path_c)==0x630)
f32(* MtxP)[4]
Definition mtx.h:38
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 c_xyz.h:7
u16 m_num
Definition d_path.h:19
Definition d_a_npc_zra.h:408
s16 mSpeakAngleIdx
Definition d_a_npc_zra.h:428
f32 field_0xa4
Definition d_a_npc_zra.h:456
f32 mHeadRightAngle
Definition d_a_npc_zra.h:424
f32 mWalkSpeed
Definition d_a_npc_zra.h:451
s16 mWalkAngleSpeed
Definition d_a_npc_zra.h:452
f32 mNeckAngleScl
Definition d_a_npc_zra.h:425
f32 field_0x90
Definition d_a_npc_zra.h:450
f32 mSwimSpeed
Definition d_a_npc_zra.h:441
f32 mHeadDownAngle
Definition d_a_npc_zra.h:422
f32 mHeadLeftAngle
Definition d_a_npc_zra.h:423
f32 mAttnRadius
Definition d_a_npc_zra.h:432
f32 field_0x7c
Definition d_a_npc_zra.h:445
f32 mBodyUpAngle
Definition d_a_npc_zra.h:417
s16 mTestExpression
Definition d_a_npc_zra.h:437
f32 mMinSwimSpeedScale
Definition d_a_npc_zra.h:442
s16 mTestLookMode
Definition d_a_npc_zra.h:439
f32 field_0x80
Definition d_a_npc_zra.h:446
f32 mSwimAnmRate
Definition d_a_npc_zra.h:444
f32 mHeadUpAngle
Definition d_a_npc_zra.h:421
s16 mDamageTimer
Definition d_a_npc_zra.h:436
f32 mAttnFovY
Definition d_a_npc_zra.h:431
s16 mTalkDistIdx
Definition d_a_npc_zra.h:429
f32 mWallH
Definition d_a_npc_zra.h:415
f32 mBodyDownAngle
Definition d_a_npc_zra.h:418
f32 mAttnOffsetY
Definition d_a_npc_zra.h:409
s16 mWalkAngleScale
Definition d_a_npc_zra.h:453
f32 field_0xac
Definition d_a_npc_zra.h:458
f32 mWalkAnmRate
Definition d_a_npc_zra.h:454
s16 mTalkAngleIdx
Definition d_a_npc_zra.h:430
s16 mSpeakDistIdx
Definition d_a_npc_zra.h:427
f32 mWallR
Definition d_a_npc_zra.h:416
f32 field_0x8c
Definition d_a_npc_zra.h:449
f32 mBodyLeftAngle
Definition d_a_npc_zra.h:419
f32 mScale
Definition d_a_npc_zra.h:411
f32 mBodyRightAngle
Definition d_a_npc_zra.h:420
f32 mMaxScaleFactor
Definition d_a_npc_zra.h:447
s16 mSwimAngleSpeed
Definition d_a_npc_zra.h:443
f32 mShadowDepth
Definition d_a_npc_zra.h:412
s16 mTestMotion
Definition d_a_npc_zra.h:438
f32 mMorfFrames
Definition d_a_npc_zra.h:426
f32 field_0xa8
Definition d_a_npc_zra.h:457
bool mTest
Definition d_a_npc_zra.h:440
f32 mGravity
Definition d_a_npc_zra.h:410
f32 mAttnUpperY
Definition d_a_npc_zra.h:433
f32 mCcWeight
Definition d_a_npc_zra.h:413
f32 mAttnLowerY
Definition d_a_npc_zra.h:434
f32 mMinDepth
Definition d_a_npc_zra.h:448
f32 mCylH
Definition d_a_npc_zra.h:414
f32 field_0xa0
Definition d_a_npc_zra.h:455
s16 field_0x60
Definition d_a_npc_zra.h:435
Definition c_phase.h:17