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