Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc.h
Go to the documentation of this file.
1#ifndef D_A_D_A_NPC_H
2#define D_A_D_A_NPC_H
3
9#include "d/d_path.h"
10#include "d/d_msg_flow.h"
11#include "d/d_particle_copoly.h"
12#include "global.h"
13
14struct daNpc_GetParam1 { // name unknown
15 /* 0x0 */ int fileIdx;
16 /* 0x4 */ int arcIdx;
17};
18
19struct daNpc_GetParam2 { // name unknown
20 /* 0x0 */ int fileIdx;
21 /* 0x4 */ int attr;
22 /* 0x8 */ int arcIdx;
23};
24
25struct daNpc_GetParam3 { // name unknown
26 /* 0x0 */ int fileIdx;
27 /* 0x4 */ int attr;
28};
29
31private:
33
34public:
35 void initialize();
36 void entry(fopAc_ac_c*);
37 void remove();
39
41
43};
44
46private:
47 /* 0x0F4 */ mutable f32 field_0xF4;
48 /* 0x0F8 */ mutable f32 field_0xF8;
49 /* 0x0FC */ f32 mNowOffsetX;
50 /* 0x100 */ f32 mNowOffsetY;
51 /* 0x104 */ u8 mEyeMoveFlg;
52 /* 0x105 */ u8 mMorfFrm;
53
54public:
56
57 void initialize();
58 virtual ~daNpcT_MatAnm_c() {}
59 virtual void calc(J3DMaterial*) const;
60
61 void setNowOffsetX(f32 i_value) { mNowOffsetX = i_value; }
62 void setNowOffsetY(f32 i_value) { mNowOffsetY = i_value; }
63 void onEyeMoveFlag() { mEyeMoveFlg = 1; }
65 void setMorfFrm(u8 i_value) { mMorfFrm = i_value; }
66};
67
69public:
71 public:
72 /* 0x0 */ s16 mAnmIdx;
73 /* 0x2 */ s8 mMorf;
74 /* 0x3 */ s8 mLoopCount;
75 }; // Size: 0x4?
76
77 void initialize();
78 int play(u16, int*, f32*);
80
81 daNpcT_MotionSeqMngr_c(sequenceStepData_c const* param_1,int param_2) :
82 mpSeqData(param_1), mStepNum(param_2) {
83 initialize();
84 }
85
86 bool checkEntryNewMotion() { return mStepNo == 0 && mPrevStepNo == -1; }
87 int getNo() { return mNo; }
88 int getOffset() { return mOffset; }
89 int getStepNo() { return mStepNo; }
90 void setNo(int i_index, f32 i_morf, BOOL i_reset, int i_offset) {
91 if (i_index >= 0) {
92 int newNo = i_index + i_offset;
93 if (i_reset || newNo != mNo) {
94 int offset = mOffset;
95 initialize();
96 mOffset = offset;
97 mNo = newNo;
98 mInitialMorf = i_morf;
99 }
100 }
101 }
102 void setOffset(int i_offset) { mOffset = i_offset; }
103
104private:
105 /* 0x00 */ sequenceStepData_c const* mpSeqData;
106 /* 0x04 */ int mStepNum;
107 /* 0x08 */ int mNo;
108 /* 0x0C */ int mOffset;
109 /* 0x10 */ int mStepNo;
110 /* 0x14 */ int mPrevStepNo;
111 /* 0x18 */ f32 mInitialMorf;
112 /* 0x1C */ bool mEndSequence;
113
114public:
116};
117
119public:
120 /* 0x00 */ f32 field_0x00;
121 /* 0x04 */ f32 H00;
122 /* 0x08 */ f32 H01;
123 /* 0x0C */ f32 H10;
124 /* 0x10 */ f32 H11;
125
126 virtual ~daNpcT_Hermite_c() {}
127
128 f32 GetH00() { return H00; }
129 f32 GetH01() { return H01; }
130 f32 GetH10() { return H10; }
131 f32 GetH11() { return H11; }
132
133 void Set(f32 param_1) {
134 field_0x00 = param_1;
135 f32 cubed = param_1 * param_1 * param_1;
136 f32 sqr = param_1 * param_1;
137
138 H00 = 1.0f + (2.0f * cubed - 3.0f * sqr);
139 H01 = -2.0f * cubed + 3.0f * sqr;
140 H10 = param_1 + (cubed - 2.0f * sqr);
141 H11 = cubed - sqr;
142 }
143};
144
146public:
147 /* 0x00 */ dPath* mPathInfo;
148 /* 0x04 */ cXyz mPosition;
149 /* 0x10 */ f32 field_0x10;
150 /* 0x14 */ f32 field_0x14;
151 /* 0x18 */ f32 field_0x18;
152 /* 0x1C */ u16 mIdx;
153 /* 0x1E */ u16 field_0x1E;
154 /* 0x20 */ u8 mDirection;
155 /* 0x21 */ u8 mIsClosed;
156
157 void hermite(cXyz&, cXyz&, cXyz&, cXyz&, daNpcT_Hermite_c&, cXyz&);
158 void initialize();
159 int setPathInfo(u8, s8, u8);
160 int setNextPathInfo(s8, u8);
161 void reverse();
163 int setNextIdx(int);
164 int getDstPos(cXyz i_pnt, cXyz* o_pos_p) {
165 return getDstPos(i_pnt, o_pos_p, getNumPnts());
166 }
167 int getDstPos(cXyz, cXyz*, int);
168 int getDstPosH(cXyz, cXyz*, int, int);
169 int chkPassed1(cXyz, int);
170 int chkPassed2(cXyz, cXyz*, int, int);
171#if DEBUG
172 int drawDbgInfo(f32, int);
173#endif
174
176 initialize();
177 }
178
179 virtual ~daNpcT_Path_c() {}
180
181 Vec getPntPos(int i_idx) { return mPathInfo->m_points[i_idx].m_position; }
182
183 int getArg0() { return mPathInfo->m_points[mIdx].mArg0; }
184 int getArg1() { return mPathInfo->m_points[mIdx].mArg1; }
185 int getArg2() { return mPathInfo->m_points[mIdx].mArg2; }
186
187 int chkClose() {
189 }
190
191 bool chkReverse() { return mDirection == 1; }
192
193 int getNumPnts() { return mPathInfo->m_num; }
194
195 void setIdx(int i_idx) { mIdx = i_idx; }
196
197 const int getIdx() { return mIdx; }
198
199 const dPath* getPathInfo() { return mPathInfo; }
200
201 void onReverse() {
202 mDirection = 1;
203 field_0x1E = 1;
204 }
205
206 void offReverse() {
207 mDirection = 0;
208 field_0x1E = 1;
209 }
210
212 return mDirection == 1;
213 }
214
215 BOOL chkNextId() { return mPathInfo->m_nextID != 0xFFFF; }
216};
217
219private:
221 /* 0x008 */ cXyz mPos;
222 /* 0x014 */ cXyz mAttnPos;
223 /* 0x020 */ cXyz* mAttnPosP;
224 /* 0x024 */ cXyz field_0x24;
225 /* 0x030 */ cXyz mJntPos[3];
226 /* 0x054 */ cXyz field_0x54[3];
227 /* 0x078 */ cXyz mMinRad[3];
228 /* 0x09C */ cXyz mMaxRad[3];
229 /* 0x0C0 */ cXyz mRad[3];
230 /* 0x0E4 */ cXyz field_0xe4[3];
231 /* 0x108 */ cXyz mEyePos;
232 /* 0x114 */ cXyz mHeadPos;
233 /* 0x120 */ cXyz field_0x120;
234 /* 0x12C */ csXyz mEyeAngle;
235 /* 0x132 */ csXyz field_0x132;
236 /* 0x138 */ int mMode;
237 /* 0x13C */ int field_0x13c;
238 /* 0x140 */ int mBaseTimer;
239 /* 0x144 */ int mTimer;
240 /* 0x148 */ f32 field_0x148;
241 /* 0x14C */ f32 field_0x14c;
242 /* 0x150 */ csXyz field_0x150;
243 /* 0x156 */ u8 field_0x156;
244 /* 0x157 */ u8 mDirectFlag;
245 /* 0x158 */ u8 field_0x158;
246
247public:
248 void initialize();
249 void setParam(fopAc_ac_c*, J3DModel*, cXyz*, int, int, int, f32, f32, f32, f32,
250 f32, f32, f32, f32, f32, f32, cXyz*);
251 void calc(f32);
252 void calcJntRad(f32, f32, f32);
253#if DEBUG
254 void drawDbgInfo();
255#endif
256
257 void setEyeAngleX(cXyz param_1, f32 param_2, s16 param_3) {
258 cXyz unusedXyz;
259 f32 param_2_recip = 0.0f;
260 s16 sVar3 = 0;
261 if (mAttnPosP != NULL) {
262 cXyz cStack_50 = *mAttnPosP - param_1;
263 sVar3 = -cM_atan2s(cStack_50.y, cStack_50.absXZ());
264 sVar3 += param_3;
265 }
266 sVar3 += field_0x150.x;
267 param_2_recip = 1.0f / param_2;
268 mEyeAngle.x = field_0x132.x * (1.0f - param_2_recip) +
269 sVar3 * param_2_recip;
270 }
271
272 void setEyeAngleY(cXyz param_1, s16 param_2, BOOL param_3, f32 param_4, s16 param_5) {
273 f32 param_4_recip = 0.0f;
274 s16 sVar3 = 0;
275 if (mAttnPosP != NULL) {
276 cXyz cStack_50 = *mAttnPosP - param_1;
277 sVar3 += cM_atan2s(cStack_50.x, cStack_50.z);
278 sVar3 -= param_2;
279 sVar3 -= (s16)(field_0x150.y - param_2);
280 sVar3 += param_5;
281 }
282 if (param_3) {
283 sVar3 = sVar3 * -1;
284 }
285 param_4_recip = 1.0f / param_4;
286 mEyeAngle.y = field_0x132.y * (1.0f - param_4_recip) +
287 sVar3 * param_4_recip;
288 }
289
290 void setEyeAngleY(s16 param_1, f32 param_2) {
291 mEyeAngle.y = field_0x132.y * (1.0f - 1.0f / param_2) +
292 param_1 * (1.0f / param_2);
293 }
294
297
298 f32 getJntRadX(int param_0) {
299 f32 ret = 0.0f;
300 ret = field_0xe4[2].x;
301 if (param_0 == 0) {
302 ret += field_0xe4[0].x * (1.0f - field_0x148);
303 } else if (param_0 == 1) {
304 ret += field_0xe4[0].x * field_0x148;
305 }
306 return ret;
307 }
308
309 f32 getJntRadY(int param_0) {
310 f32 ret = 0.0f;
311 ret = field_0xe4[2].y;
312 if (param_0 == 0) {
313 ret += field_0xe4[0].y * (1.0f - field_0x148);
314 } else if (param_0 == 1) {
315 ret += field_0xe4[0].y * field_0x148;
316 }
317 return ret;
318 }
319
320 s16 getJntRadX2S(int param_0) {
321 return cM_rad2s(getJntRadX(param_0));
322 }
323
324 s16 getJntRadY2S(int param_0) {
325 return cM_rad2s(getJntRadY(param_0));
326 }
327
328 void clrRad() {
329 for (int i = 0; i < 3; i++) {
330 mRad[i].setall(0.0f);
331 }
332 }
333
334 int getTime() {
336 }
337
339 initialize();
340 }
341 virtual ~daNpcT_JntAnm_c() {}
342
344 int getMode() { return mMode; }
345
346 int setMode(int mode, BOOL param_2) {
347 if (mode >= 0 && (param_2 || mode != mMode)) {
349 mAttnPosP = NULL;
350 field_0x14c = 0.0f;
351 mDirectFlag = 0;
352 mMode = mode;
353 return 1;
354 }
355 return 0;
356 }
357
358 void setDirect(u8 isDirect) {
359 if (isDirect != 0) {
360 mEyeAngle.x = 0;
361 mEyeAngle.y = 0;
362 }
363 mDirectFlag = isDirect;
364 }
365
366 enum LookMode {
367 /* 0 */ LOOK_NONE,
368 /* 1 */ LOOK_PLAYER,
369 /* 2 */ LOOK_ACTOR,
370 /* 3 */ LOOK_POS,
371 /* 4 */ LOOK_CAMERA,
372 /* 5 */ LOOK_MODE_5,
373 /* 6 */ LOOK_MODE_6,
374 /* 7 */ LOOK_MODE_7,
375 /* 8 */ LOOK_MODE_8,
376 };
377
378 void lookNone(u8 isDirect) {
379 setMode(LOOK_NONE, FALSE);
380 setDirect(isDirect);
381 }
382
383 void lookPlayer(u8 isDirect) {
384 setMode(LOOK_PLAYER, FALSE);
385 setDirect(isDirect);
386 }
387
388 void lookCamera(u8 isDirect) {
389 setMode(LOOK_CAMERA, FALSE);
390 setDirect(isDirect);
391 }
392
393 void lookActor(fopAc_ac_c* param_1, f32 param_2, u8 isDirect) {
394 bool isDifferentActor = mActrMngr.getActorP() != param_1;
395 if (setMode(LOOK_ACTOR, isDifferentActor) && fopAcM_IsActor(param_1)) {
396 mActrMngr.entry(param_1);
397 field_0x14c = param_2;
398 }
399 setDirect(isDirect);
400 }
401
402 void lookPos(cXyz* i_pos, u8 i_direct) {
403 BOOL tmp = mAttnPosP != i_pos;
404 if (setMode(LOOK_POS, tmp)) {
405 mAttnPosP = i_pos;
406 }
407 setDirect(i_direct);
408 }
409
410 void lookAround(u8 i_direct, int i_baseTimer) {
411 if (setMode(LOOK_MODE_7, FALSE)) {
412 mTimer = 0;
413 }
414
415 mBaseTimer = i_baseTimer;
416 setDirect(i_direct);
417 }
418
419 void lookAround2(u8 i_direct, int i_baseTimer) {
420 if (setMode(LOOK_MODE_8, FALSE)) {
421 mTimer = 0;
422 }
423
424 mBaseTimer = i_baseTimer;
425 setDirect(i_direct);
426 }
427
428 void sorasu1(cXyz *arg0, u8 arg1) {
429 BOOL diff_ptrs = mAttnPosP != arg0;
430 if (setMode(5, diff_ptrs) != 0) {
431 mAttnPosP = arg0;
432 }
433
434 setDirect(arg1);
435 }
436
437 void sorasu2(cXyz *arg0, u8 arg1) {
438 BOOL diff_ptrs = mAttnPosP != arg0;
439 if (setMode(6, diff_ptrs) != 0) {
440 mAttnPosP = arg0;
441 }
442
443 setDirect(arg1);
444 }
445};
446
448public:
450 void calc(BOOL);
451
452 void initialize() {
453 for (int i = 0; i < 2; i++) {
454 mAngle[i].setall(0);
455 mPower[i] = 0.0f;
456 }
457 mStagger = 0;
458 field_0x16 = 0;
459 mRebirth = 0;
460 }
461
462 int checkStagger() { return mStagger != 0; }
463
464 s16 getAngleX(int idx) { return mAngle[idx].x; }
465 s16 getAngleZ(int idx) { return mAngle[idx].z; }
466 int checkRebirth() { return mRebirth; }
467 void setPower(f32 power) {
468 for (int i = 0; i < 2; i++) {
469 mPower[i] = power;
470 }
471 }
472 void setRebirth() {
473 mRebirth = true;
474 }
475
476 /* 0x00 */ csXyz mAngle[2];
477 /* 0x0C */ f32 mPower[2];
478 /* 0x14 */ s16 mStagger;
479 /* 0x16 */ s16 field_0x16;
480 /* 0x18 */ bool mRebirth;
481};
482
484 /* 0x0 */ const char* eventName;
485 /* 0x4 */ int num;
486};
487
489 /* 0x00 */ int mBckFileIdx;
490 /* 0x04 */ int mBckAttr;
491 /* 0x08 */ int mBckArcIdx;
492 /* 0x0C */ int mBtpFileIdx;
493 /* 0x10 */ int mBtpAttr;
494 /* 0x14 */ int mBtpArcIdx;
495 /* 0x18 */ BOOL field_0x18;
496};
497
499 /* 0x0 */ int field_0x0;
500 /* 0x4 */ int field_0x4;
501};
502
504 /* 0x00 */ int mBckFileIdx;
505 /* 0x04 */ int mBckAttr;
506 /* 0x08 */ int mBckArcIdx;
507 /* 0x0C */ int mBtkFileIdx;
508 /* 0x10 */ int mBtkAttr;
509 /* 0x14 */ int mBtkArcIdx;
510 /* 0x18 */ s16 field_0x18;
511 /* 0x1A */ s16 field_0x1a;
512};
513
514class mDoExt_McaMorfSO;
515
516class daNpcT_c : public fopAc_ac_c {
517public:
520 /* 0x570 */ daNpcT_evtData_c const* mpEvtData;
521 /* 0x574 */ char** mpArcNames;
522 /* 0x578 */ mDoExt_McaMorfSO* mpMorf[2];
523 /* 0x580 */ Z2Creature mSound;
529 /* 0x68C */ dBgS_ObjAcch mAcch;
530 /* 0x864 */ dCcD_Stts mCcStts;
533 /* 0x930 */ cBgS_GndChk mGndChk;
534 /* 0x96C */ daNpcT_MatAnm_c* mpMatAnm[2];
535 /* 0x974 */ dMsgFlow_c mFlow;
538 /* 0xA7C */ s32 mFlowNodeNo;
540 /* 0xA84 */ f32 mMorfFrames;
541 /* 0xA88 */ bool mCreating;
542 /* 0xA89 */ u8 mTwilight;
544 /* 0xAE0 */ dBgS_LinChk mLinChk;
551 /* 0xD24 */ cXyz mFootLPos;
552 /* 0xD30 */ cXyz mFootRPos;
553 /* 0xD3C */ cXyz mFootLOffset;
554 /* 0xD48 */ cXyz mFootROffset;
557 /* 0xD6C */ cXyz field_0xd6c;
558 /* 0xD78 */ csXyz mCurAngle;
559 /* 0xD7E */ csXyz field_0xd7e;
560 /* 0xD84 */ csXyz field_0xd84;
561 /* 0xD8A */ csXyz field_0xd8a;
563 /* 0xD94 */ u32 mShadowKey;
564 /* 0xD98 */ u32 mAnmFlags;
565 /* 0xD9C */ fpc_ProcID mMsgId;
566 /* 0xDA0 */ u32 mHitodamaPrtclKey[2];
567 /* 0xDA8 */ u32 mPolSound;
568 /* 0xDAC */ int mStaffId;
569 /* 0xDB0 */ int mCutType;
570 /* 0xDB4 */ int field_0xdb4;
571 /* 0xDB8 */ int mDamageTimerStart;
572 /* 0xDBC */ int mDamageTimer;
573 /* 0xDC0 */ int mBtpPauseTimer;
574 /* 0xDC4 */ int mEventTimer;
575 /* 0xDC8 */ s16 mPlayerAngle;
576 /* 0xDCA */ s16 mGroundAngle;
577 /* 0xDCC */ s16 field_0xdcc;
578 /* 0xDCE */ s16 mFootLPolyAngle;
579 /* 0xDD0 */ s16 field_0xdd0;
580 /* 0xDD2 */ s16 mFootRPolyAngle;
581 /* 0xDD4 */ s16 mStartAngle;
582 /* 0xDD6 */ s16 mTargetAngle;
583 /* 0xDD8 */ s16 mStepMode;
584 /* 0xDDA */ s16 mTurnAmount;
585 /* 0xDDC */ f32 mTurnCount;
586 /* 0xDE0 */ f32 field_0xde0;
587 /* 0xDE4 */ f32 field_0xde4;
588 /* 0xDE8 */ f32 mRealShadowSize;
589 /* 0xDEC */ f32 mCylH;
590 /* 0xDF0 */ f32 mWallR;
591 /* 0xDF4 */ f32 mGroundH;
592 /* 0xDF8 */ f32 mAttnFovY;
593 /* 0xDFC */ f32 field_0xdfc;
594 /* 0xE00 */ cXyz field_0xe00;
595 /* 0xE0C */ cXyz field_0xe0c;
596 /* 0xE18 */ s16 field_0xe18;
597 /* 0xE1A */ s16 field_0xe1a;
598 /* 0xE1C */ s16 mEvtId;
599 /* 0xE1E */ u16 mMorfLoops;
600 /* 0xE20 */ u16 mBckLoops;
601 /* 0xE22 */ u16 mMode;
602 /* 0xE24 */ s8 mReverb;
603 /* 0xE25 */ u8 mHide;
604 /* 0xE26 */ bool field_0xe26;
605 /* 0xE27 */ u8 mFootLOnGround;
606 /* 0xE28 */ u8 mFootROnGround;
607 /* 0xE29 */ u8 field_0xe29;
608 /* 0xE2A */ u8 field_0xe2a;
609 /* 0xE2B */ bool mNoDraw;
610 /* 0xE2C */ u8 field_0xe2c;
611 /* 0xE2D */ bool field_0xe2d;
612 /* 0xE2E */ u8 mPreItemNo;
613 /* 0xE30 */ u16 mEvtNo;
614 /* 0xE32 */ bool mSpeakEvent;
615 /* 0xE33 */ bool field_0xe33;
616 /* 0xE34 */ u8 field_0xe34;
617 /* 0xE35 */ u8 field_0xe35;
618 /* 0xE36 */ u8 field_0xe36;
619 /* 0xE37 */ u8 field_0xe37;
620 /* 0xE38 */ u8 field_0xe38;
621 /* 0xE3C vtable */
622
623public:
624 daNpcT_c(daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
625 daNpcT_motionAnmData_c const* i_motionAnmData,
626 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
627 int i_faceMotionStepNum,
628 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
629 int i_motionStepNum, daNpcT_evtData_c const* i_evtData, char** i_arcNames) :
630 mpFaceMotionAnmData(i_faceMotionAnmData),
631 mpMotionAnmData(i_motionAnmData),
632 mpEvtData(i_evtData),
633 mpArcNames(i_arcNames),
634 mFaceMotionSeqMngr(i_faceMotionSequenceData, i_faceMotionStepNum),
635 mMotionSeqMngr(i_motionSequenceData, i_motionStepNum) {
636 // "daNpcT_c -> construct"
637 OS_REPORT("|%06d:%x|daNpcT_c -> コンストラクト\n", g_Counter.mCounter0, this);
638 initialize();
639 }
640
642 static void* srchActor(void*, void*);
643 J3DAnmTransform* getTrnsfrmAnmP(char const*, int);
644 J3DAnmTransformKey* getTrnsfrmKeyAnmP(char const*, int);
645 J3DAnmTexPattern* getTexPtrnAnmP(char const*, int);
646 J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char const*, int);
647 J3DAnmTevRegKey* getTevRegKeyAnmP(char const*, int);
648 J3DAnmColor* getColorAnmP(char const*, int);
649 int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
650 int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
655 int loadRes(s8 const*, char const**);
656 void deleteRes(s8 const*, char const**);
657 int execute();
659 void setEnvTevColor();
660 void setRoomNo();
661 int checkEndAnm(f32);
663 void playAllAnm();
664 void setMtx();
665 void ctrlFaceMotion();
666 void ctrlMotion();
667 int ctrlMsgAnm(int*, int*, fopAc_ac_c*, int);
668 void evtChange();
669 bool setFaceMotionAnm(int, bool);
670 void setPos(cXyz);
671 void setAngle(s16);
672 void setAngle(csXyz);
674 void setDamage(int, int, int);
680 BOOL chkFindWolf(s16, int, int, f32, f32, f32, f32, BOOL);
683 BOOL turn(s16, int, int);
684 BOOL step(s16, int, int, int, int);
686 int getActorDistance(fopAc_ac_c*, int, int);
687 BOOL initTalk(int, fopAc_ac_c**);
688 BOOL talkProc(int*, BOOL, fopAc_ac_c**, BOOL);
690 fopAc_ac_c* getEvtAreaTagP(int, int);
692 void setHitodamaPrtcl();
693
694 virtual ~daNpcT_c() {
695 // "daNpcT_c -> destructed"
696 OS_REPORT("|%06d:%x|daNpcT_c -> デストラクト\n", g_Counter.mCounter0, this);
697 }
698 virtual BOOL ctrlBtk();
699 virtual void ctrlSubFaceMotion(int) {}
700 virtual BOOL checkChangeJoint(int) { return FALSE; }
701 virtual BOOL checkRemoveJoint(int) { return FALSE; }
702 virtual s32 getBackboneJointNo() { return -1; }
703 virtual s32 getNeckJointNo() { return -1; }
704 virtual s32 getHeadJointNo() { return -1; }
705 virtual s32 getFootLJointNo() { return -1; }
706 virtual s32 getFootRJointNo() { return -1; }
707 virtual u16 getEyeballLMaterialNo() { return 0; }
708 virtual u16 getEyeballRMaterialNo() { return 0; }
709 virtual u16 getEyeballMaterialNo() { return 0; }
710 virtual int ctrlJoint(J3DJoint*, J3DModel*);
711 virtual void afterJntAnm(int) {}
712 virtual void setParam() {}
713 virtual BOOL checkChangeEvt() { return FALSE; }
714 virtual BOOL evtTalk() { return TRUE; }
715 virtual BOOL evtEndProc() { return TRUE; }
716 virtual BOOL evtCutProc() { return FALSE; }
717 virtual void setAfterTalkMotion() {}
718 virtual BOOL evtProc();
719 virtual void action() {}
720 virtual void beforeMove() {}
721 virtual void afterMoved() {}
722 virtual void setAttnPos() {}
723 virtual void setFootPos();
724 virtual void setCollision() {}
725 virtual void setFootPrtcl(cXyz*, f32, f32);
726 virtual bool checkCullDraw();
727 virtual void twilight();
728 virtual BOOL chkXYItems() { return FALSE; }
729 virtual void evtOrder();
730 virtual void decTmr() {
731 if (mDamageTimer != 0) {
732 mDamageTimer--;
733 }
734 }
735 virtual void clrParam();
736 virtual int drawDbgInfo() { return 0; }
737 virtual void drawOtherMdl() {}
738 virtual void drawGhost() {}
739 virtual bool afterSetFaceMotionAnm(int, int, f32, int) { return true; }
740 virtual bool afterSetMotionAnm(int, int, f32, int) { return true; }
742 virtual daNpcT_motionAnmData_c getMotionAnm(daNpcT_motionAnmData_c param_1) { return param_1; }
743 virtual void changeAnm(int*, int*) {}
744 virtual void changeBck(int*, int*) {}
745 virtual void changeBtp(int*, int*) {}
746 virtual void changeBtk(int*, int*) {}
747 virtual bool setMotionAnm(int, f32, BOOL);
748
750 BOOL checkStep() { return mStepMode == 1; }
751 void setCommander(fopAc_ac_c* param_0) { field_0xba0.entry(param_0); }
752 void setCutType(int i_cutType) { mCutType = i_cutType; }
753 void onHide() { mHide = true; }
754 void offHide() { mHide = false; }
755 void hide() { onHide(); }
756 void show() { offHide(); }
757
772
773 BOOL chkFindPlayer(BOOL param_0, s16 param_1) {
774 return chkFindActor(daPy_getPlayerActorClass(), param_0, param_1);
775 }
776
777 static dCcD_SrcGObjInf const mCcDObjData;
778 static dCcD_SrcCyl mCcDCyl;
779 static dCcD_SrcSph mCcDSph;
782 static int mFindCount;
783
784 enum Mode {
785 /* 0 */ MODE_ENTER,
786 /* 1 */ MODE_INIT,
787 /* 2 */ MODE_RUN,
788 /* 3 */ MODE_EXIT,
789 /* 4 */ MODE_4,
790 /* -1 */ MODE_INVALID = -1,
791 };
792
810};
811
812STATIC_ASSERT(sizeof(daNpcT_c) == 0xE40);
813
814#define daNpcT_ct(ptr, ClassName, faceMotionAnmData, motionAnmData, faceMotionSequenceData, faceMotionStepNum, motionSequenceData, motionStepNum, evtData, arcNames) \
815 if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
816 new (ptr) ClassName(faceMotionAnmData, motionAnmData, faceMotionSequenceData, faceMotionStepNum, motionSequenceData, motionStepNum, evtData, arcNames); \
817 fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
818 }
819
821BOOL daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, BOOL param_4);
822u8 daNpcT_getDistTableIdx(int param_0, int param_1);
824void daNpcT_offTmpBit(u32 i_idx);
825void daNpcT_onTmpBit(u32 i_idx);
827void daNpcT_onEvtBit(u32 i_idx);
828void daNpcT_offEvtBit(u32 i_idx);
830BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz* o_spawnPos,
831 csXyz* o_angle);
832int daNpcT_judgeRace(dPath* i_path, fopAc_ac_c** param_1, daNpcT_pntData_c* i_pntData, int param_3, int* param_4);
833BOOL daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32 param_3,
834f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8);
835
838 /* 0x04 */ f32 gravity;
839 /* 0x08 */ f32 scale;
841 /* 0x10 */ f32 weight;
842 /* 0x14 */ f32 height;
843 /* 0x18 */ f32 knee_length;
844 /* 0x1C */ f32 width;
854 /* 0x44 */ f32 morf_frame;
855 /* 0x48 */ s16 talk_distance;
856 /* 0x4A */ s16 talk_angle;
859 /* 0x50 */ f32 fov;
861 /* 0x58 */ f32 search_height;
862 /* 0x5C */ f32 search_depth;
863 /* 0x60 */ s16 attention_time;
864 /* 0x62 */ s16 damage_time;
866 /* 0x66 */ s16 motion;
867 /* 0x68 */ s16 look_mode;
868 /* 0x6A */ u8 debug_mode_ON;
869 /* 0x6B */ u8 debug_info_ON;
871 /* 0x70 */ f32 box_min_x;
872 /* 0x74 */ f32 box_min_y;
873 /* 0x78 */ f32 box_min_z;
874 /* 0x7C */ f32 box_max_x;
875 /* 0x80 */ f32 box_max_y;
876 /* 0x84 */ f32 box_max_z;
877 /* 0x88 */ f32 box_offset;
878};
879
881
883
884#endif /* D_A_D_A_NPC_H */
u32 mode
Definition GXTev.c:56
counter_class g_Counter
Definition c_counter.cpp:8
T cLib_getRndValue(T min, T range)
Definition c_lib.h:88
s16 cM_rad2s(f32 rad)
Definition c_math.cpp:10
s16 cM_atan2s(f32 y, f32 x)
Definition c_math.cpp:114
f32 cM_rndF(f32 max)
Definition c_math.cpp:194
Definition J3DAnimation.h:731
Definition J3DAnimation.h:672
Definition J3DAnimation.h:642
Definition J3DAnimation.h:578
Definition J3DAnimation.h:525
Definition J3DAnimation.h:504
Definition J3DAnimation.h:919
Definition J3DJoint.h:63
Definition J3DMaterialAnm.h:190
Definition J3DMaterial.h:16
Definition J3DModelData.h:17
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition Z2Creature.h:7
Definition c_bg_s_gnd_chk.h:8
Definition c_sxyz.h:10
void setall(s16 val)
Definition c_sxyz.h:30
Definition d_bg_s_acch.h:15
Definition d_bg_s_gnd_chk.h:7
Definition d_bg_s_lin_chk.h:9
Definition d_bg_s_acch.h:247
Definition d_cc_d.h:282
Definition d_cc_d.h:269
Definition d_msg_flow.h:49
Definition d_particle_copoly.h:53
Definition d_a_npc.h:30
fopAc_ac_c * getActorP()
Definition d_a_npc.cpp:298
void initialize()
Definition d_a_npc.cpp:286
virtual ~daNpcT_ActorMngr_c()
Definition d_a_npc.h:42
daNpcT_ActorMngr_c()
Definition d_a_npc.h:40
fpc_ProcID mActorID
Definition d_a_npc.h:32
void entry(fopAc_ac_c *)
Definition d_a_npc.cpp:290
void remove()
Definition d_a_npc.cpp:294
Definition d_a_npc.h:447
int checkStagger()
Definition d_a_npc.h:462
void setPower(f32 power)
Definition d_a_npc.h:467
csXyz mAngle[2]
Definition d_a_npc.h:476
s16 field_0x16
Definition d_a_npc.h:479
s16 getAngleX(int idx)
Definition d_a_npc.h:464
void setRebirth()
Definition d_a_npc.h:472
void setParam(fopAc_ac_c *, fopAc_ac_c *, s16)
Definition d_a_npc.cpp:1195
void calc(BOOL)
Definition d_a_npc.cpp:1204
s16 mStagger
Definition d_a_npc.h:478
int checkRebirth()
Definition d_a_npc.h:466
s16 getAngleZ(int idx)
Definition d_a_npc.h:465
f32 mPower[2]
Definition d_a_npc.h:477
void initialize()
Definition d_a_npc.h:452
bool mRebirth
Definition d_a_npc.h:480
Definition d_a_npc.h:118
void Set(f32 param_1)
Definition d_a_npc.h:133
virtual ~daNpcT_Hermite_c()
Definition d_a_npc.h:126
f32 GetH11()
Definition d_a_npc.h:131
f32 H10
Definition d_a_npc.h:123
f32 H01
Definition d_a_npc.h:122
f32 GetH10()
Definition d_a_npc.h:130
f32 H11
Definition d_a_npc.h:124
f32 GetH00()
Definition d_a_npc.h:128
f32 GetH01()
Definition d_a_npc.h:129
f32 H00
Definition d_a_npc.h:121
f32 field_0x00
Definition d_a_npc.h:120
Definition d_a_npc.h:218
u8 field_0x156
Definition d_a_npc.h:243
void setEyeAngleY(s16 param_1, f32 param_2)
Definition d_a_npc.h:290
void clrDirectFlag()
Definition d_a_npc.h:343
csXyz mEyeAngle
Definition d_a_npc.h:234
csXyz field_0x132
Definition d_a_npc.h:235
void lookCamera(u8 isDirect)
Definition d_a_npc.h:388
void sorasu1(cXyz *arg0, u8 arg1)
Definition d_a_npc.h:428
cXyz mMaxRad[3]
Definition d_a_npc.h:228
cXyz mMinRad[3]
Definition d_a_npc.h:227
void lookPos(cXyz *i_pos, u8 i_direct)
Definition d_a_npc.h:402
void lookNone(u8 isDirect)
Definition d_a_npc.h:378
daNpcT_ActorMngr_c mActrMngr
Definition d_a_npc.h:220
void initialize()
Definition d_a_npc.cpp:861
daNpcT_JntAnm_c()
Definition d_a_npc.h:338
cXyz field_0x120
Definition d_a_npc.h:233
s16 getEyeAngleY()
Definition d_a_npc.h:296
cXyz * mAttnPosP
Definition d_a_npc.h:223
void setEyeAngleY(cXyz param_1, s16 param_2, BOOL param_3, f32 param_4, s16 param_5)
Definition d_a_npc.h:272
void calcJntRad(f32, f32, f32)
Definition d_a_npc.cpp:1144
int field_0x13c
Definition d_a_npc.h:237
cXyz mAttnPos
Definition d_a_npc.h:222
cXyz mRad[3]
Definition d_a_npc.h:229
void sorasu2(cXyz *arg0, u8 arg1)
Definition d_a_npc.h:437
int getTime()
Definition d_a_npc.h:334
cXyz mEyePos
Definition d_a_npc.h:231
s16 getEyeAngleX()
Definition d_a_npc.h:295
virtual ~daNpcT_JntAnm_c()
Definition d_a_npc.h:341
csXyz field_0x150
Definition d_a_npc.h:242
LookMode
Definition d_a_npc.h:366
@ LOOK_CAMERA
Definition d_a_npc.h:371
@ LOOK_POS
Definition d_a_npc.h:370
@ LOOK_MODE_5
Definition d_a_npc.h:372
@ LOOK_ACTOR
Definition d_a_npc.h:369
@ LOOK_MODE_7
Definition d_a_npc.h:374
@ LOOK_MODE_6
Definition d_a_npc.h:373
@ LOOK_PLAYER
Definition d_a_npc.h:368
@ LOOK_NONE
Definition d_a_npc.h:367
@ LOOK_MODE_8
Definition d_a_npc.h:375
s16 getJntRadX2S(int param_0)
Definition d_a_npc.h:320
cXyz field_0xe4[3]
Definition d_a_npc.h:230
void lookAround2(u8 i_direct, int i_baseTimer)
Definition d_a_npc.h:419
f32 getJntRadX(int param_0)
Definition d_a_npc.h:298
void setEyeAngleX(cXyz param_1, f32 param_2, s16 param_3)
Definition d_a_npc.h:257
s16 getJntRadY2S(int param_0)
Definition d_a_npc.h:324
int mBaseTimer
Definition d_a_npc.h:238
cXyz mHeadPos
Definition d_a_npc.h:232
cXyz field_0x24
Definition d_a_npc.h:224
void clrRad()
Definition d_a_npc.h:328
cXyz mJntPos[3]
Definition d_a_npc.h:225
f32 field_0x14c
Definition d_a_npc.h:241
void setParam(fopAc_ac_c *, J3DModel *, cXyz *, int, int, int, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, cXyz *)
Definition d_a_npc.cpp:866
void lookPlayer(u8 isDirect)
Definition d_a_npc.h:383
void lookActor(fopAc_ac_c *param_1, f32 param_2, u8 isDirect)
Definition d_a_npc.h:393
u8 mDirectFlag
Definition d_a_npc.h:244
cXyz field_0x54[3]
Definition d_a_npc.h:226
int getMode()
Definition d_a_npc.h:344
int mTimer
Definition d_a_npc.h:239
void drawDbgInfo()
Definition d_a_npc.cpp:1172
u8 field_0x158
Definition d_a_npc.h:245
void calc(f32)
Definition d_a_npc.cpp:1064
int mMode
Definition d_a_npc.h:236
f32 field_0x148
Definition d_a_npc.h:240
cXyz mPos
Definition d_a_npc.h:221
void setDirect(u8 isDirect)
Definition d_a_npc.h:358
void lookAround(u8 i_direct, int i_baseTimer)
Definition d_a_npc.h:410
f32 getJntRadY(int param_0)
Definition d_a_npc.h:309
int setMode(int mode, BOOL param_2)
Definition d_a_npc.h:346
Definition d_a_npc.h:45
f32 field_0xF4
Definition d_a_npc.h:47
void initialize()
Definition d_a_npc.cpp:309
void onEyeMoveFlag()
Definition d_a_npc.h:63
void offEyeMoveFlag()
Definition d_a_npc.h:64
virtual ~daNpcT_MatAnm_c()
Definition d_a_npc.h:58
daNpcT_MatAnm_c()
Definition d_a_npc.h:55
virtual void calc(J3DMaterial *) const
Definition d_a_npc.cpp:318
void setNowOffsetX(f32 i_value)
Definition d_a_npc.h:61
f32 mNowOffsetX
Definition d_a_npc.h:49
void setMorfFrm(u8 i_value)
Definition d_a_npc.h:65
void setNowOffsetY(f32 i_value)
Definition d_a_npc.h:62
f32 mNowOffsetY
Definition d_a_npc.h:50
u8 mEyeMoveFlg
Definition d_a_npc.h:51
f32 field_0xF8
Definition d_a_npc.h:48
u8 mMorfFrm
Definition d_a_npc.h:52
s8 mLoopCount
Definition d_a_npc.h:74
s16 mAnmIdx
Definition d_a_npc.h:72
Definition d_a_npc.h:68
int play(u16, int *, f32 *)
Definition d_a_npc.cpp:355
int mOffset
Definition d_a_npc.h:108
f32 mInitialMorf
Definition d_a_npc.h:111
int mStepNum
Definition d_a_npc.h:106
void initialize()
Definition d_a_npc.cpp:346
int getOffset()
Definition d_a_npc.h:88
s32 checkEndSequence()
Definition d_a_npc.cpp:390
int mStepNo
Definition d_a_npc.h:109
int getStepNo()
Definition d_a_npc.h:89
void setOffset(int i_offset)
Definition d_a_npc.h:102
int getNo()
Definition d_a_npc.h:87
daNpcT_MotionSeqMngr_c(sequenceStepData_c const *param_1, int param_2)
Definition d_a_npc.h:81
virtual ~daNpcT_MotionSeqMngr_c()
Definition d_a_npc.h:115
void setNo(int i_index, f32 i_morf, BOOL i_reset, int i_offset)
Definition d_a_npc.h:90
bool checkEntryNewMotion()
Definition d_a_npc.h:86
int mNo
Definition d_a_npc.h:107
int mPrevStepNo
Definition d_a_npc.h:110
sequenceStepData_c const * mpSeqData
Definition d_a_npc.h:105
bool mEndSequence
Definition d_a_npc.h:112
Definition d_a_npc.h:145
void setIdx(int i_idx)
Definition d_a_npc.h:195
Vec getPntPos(int i_idx)
Definition d_a_npc.h:181
u8 mIsClosed
Definition d_a_npc.h:155
void setNextIdx()
Definition d_a_npc.h:162
int getArg2()
Definition d_a_npc.h:185
void offReverse()
Definition d_a_npc.h:206
u16 mIdx
Definition d_a_npc.h:152
int chkClose()
Definition d_a_npc.h:187
BOOL chkNextId()
Definition d_a_npc.h:215
int getNumPnts()
Definition d_a_npc.h:193
f32 field_0x18
Definition d_a_npc.h:151
const int getIdx()
Definition d_a_npc.h:197
dPath * mPathInfo
Definition d_a_npc.h:147
f32 field_0x14
Definition d_a_npc.h:150
u8 mDirection
Definition d_a_npc.h:154
void onReverse()
Definition d_a_npc.h:201
int chkPassed2(cXyz, cXyz *, int, int)
Definition d_a_npc.cpp:666
bool checkReverse()
Definition d_a_npc.h:211
virtual ~daNpcT_Path_c()
Definition d_a_npc.h:179
int getArg0()
Definition d_a_npc.h:183
void initialize()
Definition d_a_npc.cpp:462
void reverse()
Definition d_a_npc.cpp:509
int setPathInfo(u8, s8, u8)
Definition d_a_npc.cpp:475
int getDstPosH(cXyz, cXyz *, int, int)
Definition d_a_npc.cpp:555
int drawDbgInfo(f32, int)
Definition d_a_npc.cpp:765
int getDstPos(cXyz i_pnt, cXyz *o_pos_p)
Definition d_a_npc.h:164
const dPath * getPathInfo()
Definition d_a_npc.h:199
void hermite(cXyz &, cXyz &, cXyz &, cXyz &, daNpcT_Hermite_c &, cXyz &)
Definition d_a_npc.cpp:450
f32 field_0x10
Definition d_a_npc.h:149
bool chkReverse()
Definition d_a_npc.h:191
cXyz mPosition
Definition d_a_npc.h:148
int setNextPathInfo(s8, u8)
Definition d_a_npc.cpp:493
daNpcT_Path_c()
Definition d_a_npc.h:175
int chkPassed1(cXyz, int)
Definition d_a_npc.cpp:592
u16 field_0x1E
Definition d_a_npc.h:153
int getArg1()
Definition d_a_npc.h:184
Definition d_a_npc.h:516
cXyz getAttnPos(fopAc_ac_c *)
Definition d_a_npc.cpp:2423
virtual void changeBck(int *, int *)
Definition d_a_npc.h:744
f32 field_0xdfc
Definition d_a_npc.h:593
int setBtkAnm(J3DAnmTextureSRTKey *, J3DModelData *, f32, int)
Definition d_a_npc.cpp:1333
int setBpkAnm(J3DAnmColor *, J3DModelData *, f32, int)
Definition d_a_npc.cpp:1341
virtual BOOL evtCutProc()
Definition d_a_npc.h:716
dBgS_GndChk field_0xa8c
Definition d_a_npc.h:543
dCcD_Stts field_0xa40
Definition d_a_npc.h:537
J3DAnmTexPattern * getTexPtrnAnmP(char const *, int)
Definition d_a_npc.cpp:1292
fopAc_ac_c * getShopItemTagP()
Definition d_a_npc.cpp:2644
dBgS_ObjAcch mAcch
Definition d_a_npc.h:529
virtual void afterMoved()
Definition d_a_npc.h:721
BOOL chkFindActor(fopAc_ac_c *, BOOL, s16)
Definition d_a_npc.cpp:2332
virtual void beforeMove()
Definition d_a_npc.h:720
mDoExt_btpAnm mBtpAnm
Definition d_a_npc.h:525
void onHide()
Definition d_a_npc.h:753
J3DAnmColor * getColorAnmP(char const *, int)
Definition d_a_npc.cpp:1304
virtual ~daNpcT_c()
Definition d_a_npc.h:694
int execute()
Definition d_a_npc.cpp:1375
void show()
Definition d_a_npc.h:756
virtual u16 getEyeballMaterialNo()
Definition d_a_npc.h:709
virtual s32 getBackboneJointNo()
Definition d_a_npc.h:702
u8 field_0xe2c
Definition d_a_npc.h:610
dBgS_AcchCir mAcchCir
Definition d_a_npc.h:531
char ** mpArcNames
Definition d_a_npc.h:521
virtual bool afterSetFaceMotionAnm(int, int, f32, int)
Definition d_a_npc.h:739
void setEnvTevColor()
Definition d_a_npc.cpp:1536
cXyz mFootRPos
Definition d_a_npc.h:552
static s16 mSrchName
Definition d_a_npc.h:781
static dCcD_SrcGObjInf const mCcDObjData
Definition d_a_npc.h:2923
void setMtx()
Definition d_a_npc.cpp:1713
virtual void clrParam()
Definition d_a_npc.cpp:2096
static void tgHitCallBack(fopAc_ac_c *, dCcD_GObjInf *, fopAc_ac_c *, dCcD_GObjInf *)
Definition d_a_npc.cpp:1247
int draw(BOOL, BOOL, f32, _GXColorS10 *, f32, BOOL, BOOL, BOOL)
Definition d_a_npc.cpp:1439
dCcD_Stts mCcStts
Definition d_a_npc.h:530
virtual void setAttnPos()
Definition d_a_npc.h:722
AnmFlags
Definition d_a_npc.h:793
@ ANM_FLAG_1000
Definition d_a_npc.h:806
@ ANM_PAUSE_BCK
Definition d_a_npc.h:798
@ ANM_PAUSE_BPK
Definition d_a_npc.h:797
@ ANM_PLAY_BCK
Definition d_a_npc.h:804
@ ANM_PAUSE_MORF
Definition d_a_npc.h:794
@ ANM_PAUSE_BTK
Definition d_a_npc.h:795
@ ANM_PAUSE_TIMER_BTP
Definition d_a_npc.h:807
@ ANM_PLAY_BPK
Definition d_a_npc.h:803
@ ANM_FLAG_4000
Definition d_a_npc.h:808
@ ANM_PAUSE_BRK
Definition d_a_npc.h:796
@ ANM_PLAY_BRK
Definition d_a_npc.h:802
@ ANM_PLAY_BTP
Definition d_a_npc.h:805
@ ANM_PLAY_BTK
Definition d_a_npc.h:801
@ ANM_PAUSE_BTP
Definition d_a_npc.h:799
@ ANM_PLAY_MORF
Definition d_a_npc.h:800
BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16)
Definition d_a_npc.cpp:2312
cXyz field_0xd6c
Definition d_a_npc.h:557
int checkEndAnm(f32)
Definition d_a_npc.cpp:1548
fpc_ProcID mItemPartnerId
Definition d_a_npc.h:562
bool mCreating
Definition d_a_npc.h:541
u8 field_0xe38
Definition d_a_npc.h:620
virtual void changeAnm(int *, int *)
Definition d_a_npc.h:743
daNpcT_ActorMngr_c field_0xba0
Definition d_a_npc.h:548
BOOL chkFindPlayer(BOOL param_0, s16 param_1)
Definition d_a_npc.h:773
s16 mGroundAngle
Definition d_a_npc.h:576
virtual int drawDbgInfo()
Definition d_a_npc.h:736
u32 mShadowKey
Definition d_a_npc.h:563
virtual BOOL checkChangeEvt()
Definition d_a_npc.h:713
static fopAc_ac_c * mFindActorPtrs[50]
Definition d_a_npc.h:780
s32 mFlowNodeNo
Definition d_a_npc.h:538
BOOL initTalk(int, fopAc_ac_c **)
Definition d_a_npc.cpp:2551
virtual void setCollision()
Definition d_a_npc.h:724
virtual void setAfterTalkMotion()
Definition d_a_npc.h:717
void initialize()
Definition d_a_npc.h:758
u8 field_0xe2a
Definition d_a_npc.h:608
mDoExt_btkAnm mBtkAnm
Definition d_a_npc.h:526
void setCutType(int i_cutType)
Definition d_a_npc.h:752
virtual BOOL evtTalk()
Definition d_a_npc.h:714
u32 mHitodamaPrtclKey[2]
Definition d_a_npc.h:566
s16 mTargetAngle
Definition d_a_npc.h:582
virtual s32 getFootLJointNo()
Definition d_a_npc.h:705
s8 mReverb
Definition d_a_npc.h:602
cXyz field_0xe00
Definition d_a_npc.h:594
static dCcD_SrcCyl mCcDCyl
Definition d_a_npc.h:1231
BOOL turn(s16, int, int)
Definition d_a_npc.cpp:2436
cBgS_GndChk mGndChk
Definition d_a_npc.h:533
f32 mExpressionMorfFrame
Definition d_a_npc.h:539
void setCommander(fopAc_ac_c *param_0)
Definition d_a_npc.h:751
int ctrlMsgAnm(int *, int *, fopAc_ac_c *, int)
Definition d_a_npc.cpp:1788
f32 mAttnFovY
Definition d_a_npc.h:592
daNpcT_motionAnmData_c const * mpMotionAnmData
Definition d_a_npc.h:519
virtual BOOL checkRemoveJoint(int)
Definition d_a_npc.h:701
bool field_0xe26
Definition d_a_npc.h:604
daNpcT_ActorMngr_c mPlayerActorMngr
Definition d_a_npc.h:547
s16 field_0xdcc
Definition d_a_npc.h:577
void setAngle(s16)
Definition d_a_npc.cpp:2241
s16 mStepMode
Definition d_a_npc.h:583
int mEventTimer
Definition d_a_npc.h:574
fopAc_ac_c * getNearestActorP(s16)
Definition d_a_npc.cpp:2609
csXyz mCurAngle
Definition d_a_npc.h:558
s16 field_0xe1a
Definition d_a_npc.h:597
virtual u16 getEyeballLMaterialNo()
Definition d_a_npc.h:707
virtual void drawGhost()
Definition d_a_npc.h:738
J3DAnmTevRegKey * getTevRegKeyAnmP(char const *, int)
Definition d_a_npc.cpp:1300
J3DAnmTransformKey * getTrnsfrmKeyAnmP(char const *, int)
Definition d_a_npc.cpp:1288
dBgS_LinChk mLinChk
Definition d_a_npc.h:544
virtual s32 getNeckJointNo()
Definition d_a_npc.h:703
fopAc_ac_c * getEvtAreaTagP(int, int)
Definition d_a_npc.cpp:2627
cXyz mOldFootLOffset
Definition d_a_npc.h:555
BOOL chkWolfAction()
Definition d_a_npc.cpp:2368
int mStaffId
Definition d_a_npc.h:568
fpc_ProcID mMsgId
Definition d_a_npc.h:565
virtual BOOL evtEndProc()
Definition d_a_npc.h:715
Z2Creature mSound
Definition d_a_npc.h:523
u8 field_0xe37
Definition d_a_npc.h:619
mDoExt_brkAnm mBrkAnm
Definition d_a_npc.h:527
f32 mTurnCount
Definition d_a_npc.h:585
daNpcT_MotionSeqMngr_c mMotionSeqMngr
Definition d_a_npc.h:546
void setPos(cXyz)
Definition d_a_npc.cpp:2222
csXyz field_0xd8a
Definition d_a_npc.h:561
virtual daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_1)
Definition d_a_npc.h:741
BOOL checkStep()
Definition d_a_npc.h:750
daNpcT_faceMotionAnmData_c const * mpFaceMotionAnmData
Definition d_a_npc.h:518
u16 mBckLoops
Definition d_a_npc.h:600
csXyz field_0xd7e
Definition d_a_npc.h:559
void setRoomNo()
Definition d_a_npc.cpp:1541
void evtChange()
Definition d_a_npc.cpp:2083
void ctrlMotion()
Definition d_a_npc.cpp:1761
f32 mMorfFrames
Definition d_a_npc.h:540
static dCcD_SrcSph mCcDSph
Definition d_a_npc.h:1240
u8 field_0xe35
Definition d_a_npc.h:617
s16 mStartAngle
Definition d_a_npc.h:581
mDoExt_McaMorfSO * mpMorf[2]
Definition d_a_npc.h:522
s16 mFootRPolyAngle
Definition d_a_npc.h:580
bool checkHide()
Definition d_a_npc.h:749
u16 mEvtNo
Definition d_a_npc.h:613
virtual s32 getHeadJointNo()
Definition d_a_npc.h:704
cXyz mOldFootROffset
Definition d_a_npc.h:556
int field_0xdb4
Definition d_a_npc.h:570
csXyz field_0xd84
Definition d_a_npc.h:560
virtual void setFootPos()
Definition d_a_npc.cpp:1960
u16 mMorfLoops
Definition d_a_npc.h:599
virtual void decTmr()
Definition d_a_npc.h:730
int setMcaMorfAnm(J3DAnmTransformKey *, f32, f32, int, int, int)
Definition d_a_npc.cpp:1315
void ctrlFaceMotion()
Definition d_a_npc.cpp:1736
dPaPoT_c field_0x9c0
Definition d_a_npc.h:536
cXyz mFootROffset
Definition d_a_npc.h:554
daNpcT_MotionSeqMngr_c mFaceMotionSeqMngr
Definition d_a_npc.h:545
int setBtpAnm(J3DAnmTexPattern *, J3DModelData *, f32, int)
Definition d_a_npc.cpp:1329
virtual bool setMotionAnm(int, f32, BOOL)
Definition d_a_npc.cpp:2159
virtual BOOL checkChangeJoint(int)
Definition d_a_npc.h:700
int mDamageTimerStart
Definition d_a_npc.h:571
void playAllAnm()
Definition d_a_npc.cpp:1578
void setDamage(int, int, int)
Definition d_a_npc.cpp:2268
virtual bool afterSetMotionAnm(int, int, f32, int)
Definition d_a_npc.h:740
bool mNoDraw
Definition d_a_npc.h:609
cXyz mFootLPos
Definition d_a_npc.h:551
virtual void setFootPrtcl(cXyz *, f32, f32)
Definition d_a_npc.cpp:1981
int mDamageTimer
Definition d_a_npc.h:572
int getActorDistance(fopAc_ac_c *, int, int)
Definition d_a_npc.cpp:2529
f32 mCylH
Definition d_a_npc.h:589
request_of_phase_process_class mPhase[10]
Definition d_a_npc.h:532
virtual void changeBtk(int *, int *)
Definition d_a_npc.h:746
u8 mFootROnGround
Definition d_a_npc.h:606
mDoExt_bckAnm mBckAnm
Definition d_a_npc.h:524
s16 field_0xdd0
Definition d_a_npc.h:579
virtual s32 getFootRJointNo()
Definition d_a_npc.h:706
daNpcT_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.h:624
virtual void afterJntAnm(int)
Definition d_a_npc.h:711
virtual void ctrlSubFaceMotion(int)
Definition d_a_npc.h:699
u32 mAnmFlags
Definition d_a_npc.h:564
static void * srchActor(void *, void *)
Definition d_a_npc.cpp:1270
virtual BOOL ctrlBtk()
Definition d_a_npc.cpp:1684
daNpcT_MatAnm_c * mpMatAnm[2]
Definition d_a_npc.h:534
BOOL step(s16, int, int, int, int)
Definition d_a_npc.cpp:2470
u8 mPreItemNo
Definition d_a_npc.h:612
u16 mMode
Definition d_a_npc.h:601
static int mFindCount
Definition d_a_npc.h:782
void hide()
Definition d_a_npc.h:755
u8 field_0xe29
Definition d_a_npc.h:607
int mBtpPauseTimer
Definition d_a_npc.h:573
u8 mFootLOnGround
Definition d_a_npc.h:605
void deleteRes(s8 const *, char const **)
Definition d_a_npc.cpp:1369
daNpcT_JntAnm_c mJntAnm
Definition d_a_npc.h:549
int setBrkAnm(J3DAnmTevRegKey *, J3DModelData *, f32, int)
Definition d_a_npc.cpp:1337
u8 field_0xe34
Definition d_a_npc.h:616
s16 mPlayerAngle
Definition d_a_npc.h:575
s16 mEvtId
Definition d_a_npc.h:598
virtual void changeBtp(int *, int *)
Definition d_a_npc.h:745
virtual BOOL evtProc()
Definition d_a_npc.cpp:1900
u8 field_0xe36
Definition d_a_npc.h:618
void calcSpeedAndAngle(cXyz, BOOL, s16, s16)
Definition d_a_npc.cpp:2507
cXyz field_0xe0c
Definition d_a_npc.h:595
f32 field_0xde0
Definition d_a_npc.h:586
virtual void action()
Definition d_a_npc.h:719
s16 field_0xe18
Definition d_a_npc.h:596
f32 field_0xde4
Definition d_a_npc.h:587
BOOL srchPlayerActor()
Definition d_a_npc.cpp:2409
virtual int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc.cpp:1834
daNpcT_evtData_c const * mpEvtData
Definition d_a_npc.h:520
BOOL chkFindWolf(s16, int, int, f32, f32, f32, f32, BOOL)
Definition d_a_npc.cpp:2377
s16 mTurnAmount
Definition d_a_npc.h:584
virtual void setParam()
Definition d_a_npc.h:712
dMsgFlow_c mFlow
Definition d_a_npc.h:535
J3DAnmTransform * getTrnsfrmAnmP(char const *, int)
Definition d_a_npc.cpp:1284
virtual BOOL chkXYItems()
Definition d_a_npc.h:728
Mode
Definition d_a_npc.h:784
@ MODE_4
Definition d_a_npc.h:789
@ MODE_RUN
Definition d_a_npc.h:787
@ MODE_EXIT
Definition d_a_npc.h:788
@ MODE_INVALID
Definition d_a_npc.h:790
@ MODE_ENTER
Definition d_a_npc.h:785
@ MODE_INIT
Definition d_a_npc.h:786
int mCutType
Definition d_a_npc.h:569
int loadRes(s8 const *, char const **)
Definition d_a_npc.cpp:1345
virtual void evtOrder()
Definition d_a_npc.cpp:2059
daNpcT_DmgStagger_c mStagger
Definition d_a_npc.h:550
fopAc_ac_c * hitChk(dCcD_GObjInf *, u32)
Definition d_a_npc.cpp:2249
cXyz mFootLOffset
Definition d_a_npc.h:553
u32 mPolSound
Definition d_a_npc.h:567
virtual bool checkCullDraw()
Definition d_a_npc.cpp:2045
void setHitodamaPrtcl()
Definition d_a_npc.cpp:2660
virtual u16 getEyeballRMaterialNo()
Definition d_a_npc.h:708
f32 mRealShadowSize
Definition d_a_npc.h:588
int setBckAnm(J3DAnmTransform *, f32, int, int, int, bool)
Definition d_a_npc.cpp:1308
BOOL chkActorInSight(fopAc_ac_c *, f32, s16)
Definition d_a_npc.cpp:2292
bool field_0xe33
Definition d_a_npc.h:615
BOOL talkProc(int *, BOOL, fopAc_ac_c **, BOOL)
Definition d_a_npc.cpp:2564
J3DAnmTextureSRTKey * getTexSRTKeyAnmP(char const *, int)
Definition d_a_npc.cpp:1296
mDoExt_bpkAnm mBpkAnm
Definition d_a_npc.h:528
bool setFaceMotionAnm(int, bool)
Definition d_a_npc.cpp:2103
bool mSpeakEvent
Definition d_a_npc.h:614
f32 mWallR
Definition d_a_npc.h:590
s16 mFootLPolyAngle
Definition d_a_npc.h:578
f32 mGroundH
Definition d_a_npc.h:591
u8 mHide
Definition d_a_npc.h:603
void offHide()
Definition d_a_npc.h:754
u8 mTwilight
Definition d_a_npc.h:542
virtual daNpcT_motionAnmData_c getMotionAnm(daNpcT_motionAnmData_c param_1)
Definition d_a_npc.h:742
virtual void drawOtherMdl()
Definition d_a_npc.h:737
virtual void twilight()
Definition d_a_npc.cpp:2050
bool field_0xe2d
Definition d_a_npc.h:611
Definition f_op_actor.h:230
Definition m_Do_ext.h:331
Definition m_Do_ext.h:151
Definition m_Do_ext.h:124
Definition m_Do_ext.h:94
Definition m_Do_ext.h:65
Definition m_Do_ext.h:182
BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz *o_spawnPos, csXyz *o_angle)
Definition d_a_npc.cpp:2755
void daNpcT_cmnListenPropertyEvent(char *, int *, daNpcT_HIOParam *)
Definition d_a_npc.cpp:17
void daNpcT_offTmpBit(u32 i_idx)
Definition d_a_npc.cpp:2915
u8 daNpcT_getDistTableIdx(int param_0, int param_1)
Definition d_a_npc.cpp:2895
BOOL daNpcT_chkTmpBit(u32 i_idx)
Definition d_a_npc.cpp:2919
int daNpcT_judgeRace(dPath *i_path, fopAc_ac_c **param_1, daNpcT_pntData_c *i_pntData, int param_3, int *param_4)
Definition d_a_npc.cpp:2805
BOOL daNpcT_chkActorInScreen(fopAc_ac_c *i_ActorP, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8)
Definition d_a_npc.cpp:2688
void daNpcT_onTmpBit(u32 i_idx)
Definition d_a_npc.cpp:2911
void daNpcT_cmnGenMessage(JORMContext *, daNpcT_HIOParam *param_1)
Definition d_a_npc.cpp:142
void daNpcT_offEvtBit(u32 i_idx)
Definition d_a_npc.cpp:2903
BOOL daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, BOOL param_4)
Definition d_a_npc.cpp:2728
BOOL daNpcT_chkEvtBit(u32 i_idx)
Definition d_a_npc.cpp:2907
void daNpcT_onEvtBit(u32 i_idx)
Definition d_a_npc.cpp:2899
STATIC_ASSERT(sizeof(daNpcT_c)==0xE40)
BOOL daNpcT_chkDoBtnIsSpeak(fopAc_ac_c *i_ActorP)
Definition d_a_npc.cpp:2775
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1260
BOOL dComIfGs_wolfeye_effect_check()
Definition d_com_inf_game.cpp:2594
BOOL dPath_ChkClose(const dPath *i_path)
Definition d_path.h:28
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
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
int i
Definition e_pow.c:165
BOOL fopAcM_IsActor(void *actor)
Definition f_op_actor_mng.h:276
unsigned int fpc_ProcID
Definition f_pc_base.h:10
@ fpcM_ERROR_PROCESS_ID_e
Definition f_pc_manager.h:12
void * memset(void *dst, int val, size_t n)
s16 x
Definition c_sxyz.h:7
s16 z
Definition c_sxyz.h:7
s16 y
Definition c_sxyz.h:7
Definition mtx.h:13
f32 z
Definition mtx.h:14
f32 x
Definition mtx.h:14
f32 y
Definition mtx.h:14
Definition GXStruct.h:34
Definition c_xyz.h:7
void setall(f32 f)
Definition c_xyz.h:113
f32 absXZ() const
Definition c_xyz.h:139
u32 mCounter0
Definition c_counter.h:7
Definition d_cc_d.h:104
Definition d_cc_d.h:87
Definition d_cc_d.h:94
Definition d_path.h:18
u16 m_num
Definition d_path.h:19
dPnt * m_points
Definition d_path.h:25
u16 m_nextID
Definition d_path.h:20
u8 mArg2
Definition d_path.h:12
Vec m_position
Definition d_path.h:15
u8 mArg0
Definition d_path.h:14
u8 mArg1
Definition d_path.h:11
Definition d_a_npc.h:836
f32 box_offset
Definition d_a_npc.h:877
s16 look_mode
Definition d_a_npc.h:867
f32 head_angleY_max
Definition d_a_npc.h:851
f32 head_angleY_min
Definition d_a_npc.h:852
f32 width
Definition d_a_npc.h:844
f32 neck_rotation_ratio
Definition d_a_npc.h:853
f32 box_min_z
Definition d_a_npc.h:873
s16 talk_distance
Definition d_a_npc.h:855
u8 debug_mode_ON
Definition d_a_npc.h:868
f32 body_angleX_max
Definition d_a_npc.h:845
f32 expression_morf_frame
Definition d_a_npc.h:870
f32 morf_frame
Definition d_a_npc.h:854
s16 attention_time
Definition d_a_npc.h:863
f32 box_max_z
Definition d_a_npc.h:876
f32 box_max_y
Definition d_a_npc.h:875
s16 attention_distance
Definition d_a_npc.h:857
f32 body_angleY_min
Definition d_a_npc.h:848
s16 attention_angle
Definition d_a_npc.h:858
s16 face_expression
Definition d_a_npc.h:865
s16 damage_time
Definition d_a_npc.h:864
f32 body_angleY_max
Definition d_a_npc.h:847
s16 motion
Definition d_a_npc.h:866
f32 box_min_x
Definition d_a_npc.h:871
f32 head_angleX_min
Definition d_a_npc.h:850
f32 fov
Definition d_a_npc.h:859
f32 knee_length
Definition d_a_npc.h:843
f32 search_height
Definition d_a_npc.h:861
f32 height
Definition d_a_npc.h:842
s16 talk_angle
Definition d_a_npc.h:856
f32 box_max_x
Definition d_a_npc.h:874
f32 body_angleX_min
Definition d_a_npc.h:846
f32 gravity
Definition d_a_npc.h:838
f32 head_angleX_max
Definition d_a_npc.h:849
u8 debug_info_ON
Definition d_a_npc.h:869
f32 search_distance
Definition d_a_npc.h:860
f32 attention_offset
Definition d_a_npc.h:837
f32 search_depth
Definition d_a_npc.h:862
f32 weight
Definition d_a_npc.h:841
f32 real_shadow_size
Definition d_a_npc.h:840
f32 scale
Definition d_a_npc.h:839
f32 box_min_y
Definition d_a_npc.h:872
Definition d_a_npc.h:483
int num
Definition d_a_npc.h:485
const char * eventName
Definition d_a_npc.h:484
Definition d_a_npc.h:488
int mBckAttr
Definition d_a_npc.h:490
int mBckArcIdx
Definition d_a_npc.h:491
int mBtpArcIdx
Definition d_a_npc.h:494
int mBtpAttr
Definition d_a_npc.h:493
int mBckFileIdx
Definition d_a_npc.h:489
int mBtpFileIdx
Definition d_a_npc.h:492
BOOL field_0x18
Definition d_a_npc.h:495
Definition d_a_npc.h:503
int mBtkArcIdx
Definition d_a_npc.h:509
s16 field_0x1a
Definition d_a_npc.h:511
s16 field_0x18
Definition d_a_npc.h:510
int mBckArcIdx
Definition d_a_npc.h:506
int mBckFileIdx
Definition d_a_npc.h:504
int mBtkAttr
Definition d_a_npc.h:508
int mBckAttr
Definition d_a_npc.h:505
int mBtkFileIdx
Definition d_a_npc.h:507
Definition d_a_npc.h:498
int field_0x4
Definition d_a_npc.h:500
int field_0x0
Definition d_a_npc.h:499
Definition d_a_npc.h:14
int fileIdx
Definition d_a_npc.h:15
int arcIdx
Definition d_a_npc.h:16
Definition d_a_npc.h:19
int attr
Definition d_a_npc.h:21
int fileIdx
Definition d_a_npc.h:20
int arcIdx
Definition d_a_npc.h:22
Definition d_a_npc.h:25
int attr
Definition d_a_npc.h:27
int fileIdx
Definition d_a_npc.h:26
Definition c_phase.h:17