Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc4.h
Go to the documentation of this file.
1#ifndef D_A_NPC4
2#define D_A_NPC4
3
5#include "d/d_msg_flow.h"
6#include "d/d_bg_s_gnd_chk.h"
7#include "d/d_bg_s_lin_chk.h"
8#include "d/d_path.h"
9#include "f_op/f_op_actor.h"
10#include "f_pc/f_pc_base.h"
11#include "m_Do/m_Do_ext.h"
13
15private:
17
18public:
20
21 void initialize();
22 void entry(unsigned int);
23 void entry(fopAc_ac_c*);
24 void remove();
26
28
30};
31
33void daNpcF_onEvtBit(u32 i_idx);
35void daNpcF_onTmpBit(u32 i_idx);
36void daNpcF_offTmpBit(u32 i_idx);
37u8 daNpcF_getDistTableIdx(int param_0, int param_1);
38#if DEBUG
39class daNpcF_HIOParam;
42#endif
45int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
47BOOL daNpcF_pntVsLineSegmentLengthSquare2D(f32 i_pntX, f32 i_pntZ, f32 i_startX, f32 i_startZ,
48 f32 i_endX, f32 i_endZ, f32* o_projX, f32* o_projZ,
49 f32* o_dist2);
50BOOL daNpcF_chkPassed(cXyz i_pos, dPnt* i_points, u16 i_idx, u16 i_num, BOOL i_isClosed,
51 BOOL i_isReversed);
53
55private:
56 /* 0x00 */ u16 mNurbs;
57 /* 0x02 */ u16 field_0x02;
58 /* 0x04 */ u8 mIsReversed;
59 /* 0x05 */ u8 mIsClosed;
60 /* 0x08 */ dPnt mPoints[96];
61
62public:
63 void initialize(dPath*, int);
64
66 initialize(NULL, 0);
67 }
68
69 virtual ~daNpcF_SPCurve_c() {}
70}; // Size: 0x60C
71
73protected:
74 /* 0x00 */ u16 mIdx;
75 /* 0x02 */ u8 mIsReversed;
76 /* 0x03 */ u8 mIsClosed;
77 /* 0x04 */ dPath* mPathInfo;
78 /* 0x08 */ f32 mRange;
79 /* 0x0C */ f32 mPosDst;
80 /* 0x10 */ f32 field_0x10;
81 /* 0x14 */ cXyz mPosition;
83
84public:
85 void initialize();
86 int setPathInfo(u8, s8, u8);
89 void reverse();
91 int getNextIdx();
92 int getBeforeIdx();
96 void setNextIdxDst(cXyz);
97
99 initialize();
100 }
101
102 virtual ~daNpcF_Path_c() {}
103
104 int getIdx() { return mIdx; };
105 void setIdx(int i_idx) { mIdx = i_idx; }
106 int getArg0() { return mPathInfo->m_points[mIdx].mArg0; }
107 u8 getArg0(int i_idx) { return mPathInfo->m_points[i_idx].mArg0; }
108 Vec getPntPos(int i_idx) { return mPathInfo->m_points[i_idx].m_position; }
110 BOOL chkReverse() { return mIsReversed == true; }
111 void onReverse() { mIsReversed = true; }
112 void offReverse() { mIsReversed = false; }
114 void setRange(f32 i_range) { mRange = i_range; }
115 int getNumPnts() { return mPathInfo->m_num; }
116#if DEBUG
117 void drawDbgInfoXyz();
118#endif
119}; // Size: 0x630
120
122private:
123 /* 0x0F4 */ mutable f32 field_0xF4;
124 /* 0x0F8 */ mutable f32 field_0xF8;
125 /* 0x0FC */ f32 mNowOffsetX;
126 /* 0x100 */ f32 mNowOffsetY;
127 /* 0x104 */ u8 mEyeMoveFlag;
128 /* 0x105 */ u8 mMorfFrm;
129
130public:
132 void initialize();
133 void calc(J3DMaterial*) const;
134 void setNowOffsetX(float i_nowOffsetX) { mNowOffsetX = i_nowOffsetX; }
135 void setNowOffsetY(float i_nowOffsetY) { mNowOffsetY = i_nowOffsetY; }
138};
139
141private:
142 /* 0x00 */ cXyz mJointPos[4];
143 /* 0x30 */ cXyz* mAttnPos_p;
144 /* 0x34 */ csXyz mAngularMoveDis[4];
145 /* 0x4C */ csXyz mMinAngle[4];
146 /* 0x64 */ csXyz mMaxAngle[4];
147 /* 0x7C */ csXyz mRotAngle[4];
148 /* 0x94 */ bool field_0x94[4];
149 /* 0x98 vtable */
150
151public:
152 void initialize();
153 void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16,
154 cXyz*);
155 void calc(fopAc_ac_c*, Mtx, csXyz**, BOOL, int, BOOL);
156 void adjustMoveDisAngle(s16&, s16, s16, s16);
157 void initCalc(fopAc_ac_c*, Mtx, cXyz*, csXyz*, f32*, cXyz&, BOOL);
158 void update(cXyz*, csXyz*, f32*);
159 void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, BOOL);
160 void setRotAngle();
161 void clrRotAngle();
162
164 virtual ~daNpcF_Lookat_c() {}
165
167 void setAttnPos(cXyz* i_attnPos) { mAttnPos_p = i_attnPos; }
168};
169
170class daNpcF_c : public fopAc_ac_c {
171protected:
177 /* 0x5D0 */ dBgS_ObjAcch mAcch;
178 /* 0x7A8 */ dCcD_Stts mCcStts;
182 /* 0x854 */ cXyz mLookatPos[3];
183 /* 0x878 */ cXyz mLookPos;
184 /* 0x884 */ cXyz field_0x884;
185 /* 0x890 */ cXyz field_0x890;
186 /* 0x89C */ cXyz field_0x89c;
187 /* 0x8A8 */ cXyz field_0x8a8;
188 /* 0x8B4 */ cXyz field_0x8b4;
189 /* 0x8C0 */ cXyz field_0x8c0;
190 /* 0x8CC */ cXyz field_0x8cc;
191 /* 0x8D8 */ cXyz field_0x8d8;
192 /* 0x8E4 */ cXyz mHeadPos;
193 /* 0x8F0 */ csXyz mCurAngle;
194 /* 0x8F6 */ csXyz mOldAngle;
195 /* 0x8FC */ csXyz mEyeAngle;
196 /* 0x902 */ csXyz mHeadAngle;
197 /* 0x908 */ csXyz field_0x908[3];
198 /* 0x91A */ csXyz mLookatAngle[3];
199 /* 0x92C */ int mStaffID;
200 /* 0x930 */ int mCutType;
201 /* 0x934 */ int mAttnIdx;
202 /* 0x938 */ int mAttnChangeTimer;
203 /* 0x93C */ int mAttnActorTimer[5];
204 /* 0x950 */ int mMsgTimer;
205 /* 0x954 */ int mDamageTimer;
206 /* 0x958 */ int mTotalDamageTimer;
207 /* 0x95C */ int field_0x95c;
208 /* 0x960 */ int mEventTimer;
209 /* 0x964 */ int mBtpTimer;
210 /* 0x968 */ int mTurnAmount;
211 /* 0x96C */ int mTurnMode;
212 /* 0x970 */ f32 mTurnStepNum;
214 /* 0x978 */ f32 mExpressionMorf;
216 /* 0x980 */ f32 mGroundH;
217 /* 0x984 */ f32 field_0x984[3];
218 /* 0x990 */ s16 field_0x990;
219 /* 0x992 */ s16 field_0x992;
220 /* 0x994 */ s16 mTurnStartAngle;
222 /* 0x998 */ s16 field_0x998;
223 /* 0x99C */ u32 mAnmFlags;
224 /* 0x9A0 */ u32 mShadowKey;
225 /* 0x9A4 */ u32 field_0x9a4;
226 /* 0x9A8 */ u32 mHitodamaParticleKey[2];
227 /* 0x9B0 */ u32 mPolySound;
228 /* 0x9B4 */ int mFlowNodeNo;
229 /* 0x9B8 */ cXyz field_0x9b8;
230 /* 0x9C4 */ cXyz field_0x9c4;
231 /* 0x9D0 */ s16 field_0x9d0;
232 /* 0x9D2 */ s16 field_0x9d2;
233 /* 0x9D4 */ s16 mEventIdx;
236 /* 0x9DA */ s16 mMotionPhase;
238 /* 0x9DE */ s16 mExpression;
239 /* 0x9E0 */ s16 mMotion;
240 /* 0x9E2 */ u16 mMotionLoops;
242 /* 0x9E6 */ u16 mOrderEvtNo;
243 /* 0x9E8 */ s8 mReverb;
244 /* 0x9E9 */ bool mOrderSpeakEvt;
245 /* 0x9EA */ bool field_0x9ea;
246 /* 0x9EB */ bool field_0x9eb;
247 /* 0x9EC */ bool field_0x9ec;
248 /* 0x9ED */ bool mOrderNewEvt;
249 /* 0x9EE */ bool field_0x9ee;
250 /* 0x9EF */ u8 field_0x9ef;
251 /* 0x9F0 */ bool mIsDamaged;
252 /* 0x9F1 */ u8 field_0x9f1;
253 /* 0x9F2 */ bool mHide;
254 /* 0x9F3 */ u8 field_0x9f3;
255 /* 0x9F4 */ u8 mTwilight;
256 /* 0x9F5 */ u8 field_0x9f5;
257 /* 0x9F6 */ u8 field_0x9f6;
258 /* 0x9F8 */ dMsgFlow_c mFlow;
259 /* 0xA44 */ cBgS_GndChk mGndChk;
262
263public:
269
293
294 enum LookMode {
295 /* 0 */ LOOK_NONE,
296 /* 1 */ LOOK_RESET,
297 /* 2 */ LOOK_PLAYER,
299 /* 4 */ LOOK_ACTOR,
300 /* 5 */ LOOK_ATTN,
301 };
302
304 initialize();
305 }
306 BOOL execute();
307 int draw(BOOL, BOOL, f32, _GXColorS10*, BOOL);
309 dCcD_GObjInf*);
310 static void* srchAttnActor1(void*, void*);
311 static void* srchActor(void*, void*);
312
313 void initialize();
315 J3DAnmTexPattern* getTexPtrnAnmP(char*, int);
318 BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
319 int i_start, int i_end);
320 BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start,
321 int i_end, bool i_modify);
322 BOOL setBtpAnm(J3DAnmTexPattern* i_btp, J3DModelData* i_modelData, f32 i_rate,
323 int i_attr);
324 BOOL setBtkAnm(J3DAnmTextureSRTKey* i_btk, J3DModelData* i_modelData, f32 i_rate,
325 int i_attr);
326 BOOL setBrkAnm(J3DAnmTevRegKey* i_brk, J3DModelData* i_modelData, f32 i_rate,
327 int i_attr);
328 void setEnvTevColor();
329 void setRoomNo();
335 void setLookatMtx(int, int*, f32);
337 void setDamage(int, int, int);
338 int ctrlMsgAnm(int&, int&, fopAc_ac_c*, BOOL);
339 void orderEvent(int, char*, u16, u16, u8, u16);
340 void changeEvent(char*, char*, u16, u16);
344 BOOL initTalk(int, fopAc_ac_c**);
345 BOOL talkProc(int*, BOOL, fopAc_ac_c**);
346 BOOL turn(s16, f32, int);
347 BOOL step(s16, int, int, int);
348 void setAngle(s16);
349 u8 getDistTableIdx(int, int);
350 fopAc_ac_c* getEvtAreaTagP(int, int);
352 int, BOOL);
358 void setHitodamaPrtcl();
359
360 virtual ~daNpcF_c() {}
361 virtual void setParam() {}
362 virtual BOOL main() { return TRUE; }
363 inline virtual BOOL ctrlBtk() { return FALSE; }
364 virtual void adjustShapeAngle() {}
365 virtual void setMtx();
366 virtual void setMtx2();
367 virtual void setAttnPos() {}
368 virtual void setCollisions() {}
369 virtual bool setExpressionAnm(int i_idx, bool i_modify) { return true; }
370 virtual bool setExpressionBtp(int i_idx) { return true; }
371 virtual void setExpression(int i_expression, f32 i_morf) {}
372 virtual void setMotionAnm(int i_idx, f32 i_morf) {}
373 virtual void setMotion(int i_motion, f32 i_morf, int i_restart) {}
374 virtual BOOL drawDbgInfo() { return TRUE; }
375 virtual void drawOtherMdls() {}
376
377 BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
378 return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_SPEAK_e]);
379 }
383 BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
384 return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_TALK_e]);
385 }
390 void setIntDemander(fopAc_ac_c* i_actor) { field_0x824.entry(i_actor); }
391 void setIntFlowNodeNo(s32 i_flowNodeNo) { mFlowNodeNo = i_flowNodeNo; }
392 void setCutType(int i_cutType) { mCutType = i_cutType; }
393 void onInterrupt(u8 param_0) { field_0x9ef = param_0; }
394 void onHide() { mHide = true; }
395 void offHide() { mHide = false; }
396
397 static dCcD_SrcGObjInf const mCcDObjInfo;
398 static dCcD_SrcCyl mCcDCyl;
399 static dCcD_SrcSph mCcDSph;
403 static char mFileNameBuf[0x15];
404};
405
406STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
407
409private:
410public:
411 // these functions are inferred based on daBaseNpc_moveBgActor_c -
412 // defining them in this order fixes weak function order for this class in d_a_npc
413 // (otherwise Delete is placed under Draw instead of under Create)
414 int MoveBGCreateHeap();
415 int MoveBGCreate();
416 int MoveBGDelete();
417 int MoveBGExecute();
418 int MoveBGDraw();
419
420 virtual bool CreateHeap() { return true; }
421 virtual bool Create() { return true; }
422 virtual bool Execute(Mtx**) { return true; }
423 virtual bool Draw() { return true; }
424 virtual bool Delete() { return true; }
425 virtual bool IsDelete() { return true; }
426 virtual bool ToFore() { return true; }
427 virtual bool ToBack() { return true; }
428};
429
432 /* 0x04 */ f32 gravity;
433 /* 0x08 */ f32 scale;
435 /* 0x10 */ f32 weight;
436 /* 0x14 */ f32 height;
437 /* 0x18 */ f32 knee_length;
438 /* 0x1C */ f32 width;
448 /* 0x44 */ f32 morf_frame;
449 /* 0x48 */ s16 talk_distance;
450 /* 0x4A */ s16 talk_angle;
453 /* 0x50 */ f32 fov;
455 /* 0x58 */ f32 search_height;
456 /* 0x5C */ f32 search_depth;
457 /* 0x60 */ s16 attention_time;
458 /* 0x62 */ s16 damage_time;
460 /* 0x66 */ s16 motion;
461 /* 0x68 */ s16 look_mode;
462 /* 0x6A */ u8 debug_mode_ON;
463 /* 0x6B */ u8 debug_info_ON;
464};
465
466#endif /* D_A_NPC4 */
Definition J3DAnimation.h:821
Definition J3DAnimation.h:880
Definition J3DAnimation.h:580
Definition J3DAnimation.h:527
Definition J3DAnimation.h:506
Definition J3DAnimation.h:932
Definition J3DMaterialAnm.h:193
Definition J3DMaterial.h:16
Definition J3DModelData.h:15
Definition JORMContext.h:128
Definition c_bg_s_gnd_chk.h:8
Definition c_bg_s_poly_info.h:7
Definition c_sxyz.h:10
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:249
Definition d_cc_d.h:472
Definition d_cc_d.h:286
Definition d_cc_d.h:273
Definition d_msg_flow.h:49
Definition d_a_npc4.h:14
void entry(unsigned int)
Definition d_a_npc4.cpp:75
void initialize()
Definition d_a_npc4.cpp:67
fpc_ProcID mActorID
Definition d_a_npc4.h:16
virtual ~daNpcF_ActorMngr_c()
Definition d_a_npc4.h:29
fopAc_ac_c * getActorP()
Definition d_a_npc4.cpp:83
fpc_ProcID getPId()
Definition d_a_npc4.h:27
void remove()
Definition d_a_npc4.cpp:79
daNpcF_ActorMngr_c()
Definition d_a_npc4.h:19
Definition d_a_npc4.h:140
void calcMoveDisAngle(int, cXyz *, csXyz *, cXyz, int, BOOL)
Definition d_a_npc4.cpp:486
csXyz mMaxAngle[4]
Definition d_a_npc4.h:146
void clrRotAngle()
Definition d_a_npc4.cpp:553
bool field_0x94[4]
Definition d_a_npc4.h:148
daNpcF_Lookat_c()
Definition d_a_npc4.h:163
virtual ~daNpcF_Lookat_c()
Definition d_a_npc4.h:164
void adjustMoveDisAngle(s16 &, s16, s16, s16)
Definition d_a_npc4.cpp:397
void setRotAngle()
Definition d_a_npc4.cpp:538
cXyz mJointPos[4]
Definition d_a_npc4.h:142
csXyz mRotAngle[4]
Definition d_a_npc4.h:147
void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16, cXyz *)
Definition d_a_npc4.cpp:304
cXyz * getAttnPos()
Definition d_a_npc4.h:166
void setAttnPos(cXyz *i_attnPos)
Definition d_a_npc4.h:167
void calc(fopAc_ac_c *, Mtx, csXyz **, BOOL, int, BOOL)
Definition d_a_npc4.cpp:337
csXyz mAngularMoveDis[4]
Definition d_a_npc4.h:144
cXyz * mAttnPos_p
Definition d_a_npc4.h:143
csXyz mMinAngle[4]
Definition d_a_npc4.h:145
void initCalc(fopAc_ac_c *, Mtx, cXyz *, csXyz *, f32 *, cXyz &, BOOL)
Definition d_a_npc4.cpp:419
void initialize()
Definition d_a_npc4.cpp:291
void update(cXyz *, csXyz *, f32 *)
Definition d_a_npc4.cpp:465
Definition d_a_npc4.h:121
f32 mNowOffsetY
Definition d_a_npc4.h:126
daNpcF_MatAnm_c()
Definition d_a_npc4.h:131
void initialize()
Definition d_a_npc4.cpp:94
u8 mMorfFrm
Definition d_a_npc4.h:128
void calc(J3DMaterial *) const
Definition d_a_npc4.cpp:103
void offEyeMoveFlag()
Definition d_a_npc4.h:137
f32 mNowOffsetX
Definition d_a_npc4.h:125
u8 mEyeMoveFlag
Definition d_a_npc4.h:127
void setNowOffsetX(float i_nowOffsetX)
Definition d_a_npc4.h:134
void onEyeMoveFlag()
Definition d_a_npc4.h:136
f32 field_0xF4
Definition d_a_npc4.h:123
void setNowOffsetY(float i_nowOffsetY)
Definition d_a_npc4.h:135
f32 field_0xF8
Definition d_a_npc4.h:124
Definition d_a_npc4.h:408
virtual bool CreateHeap()
Definition d_a_npc4.h:420
virtual bool IsDelete()
Definition d_a_npc4.h:425
int MoveBGCreateHeap()
Definition d_a_npc4.cpp:2141
virtual bool Create()
Definition d_a_npc4.h:421
virtual bool Draw()
Definition d_a_npc4.h:423
virtual bool ToBack()
Definition d_a_npc4.h:427
virtual bool ToFore()
Definition d_a_npc4.h:426
virtual bool Execute(Mtx **)
Definition d_a_npc4.h:422
virtual bool Delete()
Definition d_a_npc4.h:424
int MoveBGCreate()
Definition d_a_npc4.cpp:2145
int MoveBGDraw()
Definition d_a_npc4.cpp:2157
int MoveBGExecute()
Definition d_a_npc4.cpp:2153
int MoveBGDelete()
Definition d_a_npc4.cpp:2149
Definition d_a_npc4.h:72
void setRange(f32 i_range)
Definition d_a_npc4.h:114
void initialize()
Definition d_a_npc4.cpp:150
void drawDbgInfoXyz()
Definition d_a_npc4.cpp:164
BOOL getBeforePos(cXyz &)
Definition d_a_npc4.cpp:247
BOOL setNextIdx()
Definition d_a_npc4.cpp:231
int getIdx()
Definition d_a_npc4.h:104
u8 mIsReversed
Definition d_a_npc4.h:75
f32 mPosDst
Definition d_a_npc4.h:79
void onReverse()
Definition d_a_npc4.h:111
int getBeforeIdx()
Definition d_a_npc4.cpp:241
void offReverse()
Definition d_a_npc4.h:112
int setPathInfo(u8, s8, u8)
Definition d_a_npc4.cpp:195
BOOL getDstPos(cXyz, cXyz &)
Definition d_a_npc4.cpp:266
int getNextIdx()
Definition d_a_npc4.cpp:235
void setIdx(int i_idx)
Definition d_a_npc4.h:105
BOOL chkClose()
Definition d_a_npc4.h:109
virtual ~daNpcF_Path_c()
Definition d_a_npc4.h:102
u8 getArg0(int i_idx)
Definition d_a_npc4.h:107
int getArg0()
Definition d_a_npc4.h:106
BOOL chkPassedDst(cXyz)
Definition d_a_npc4.cpp:219
cXyz mPosition
Definition d_a_npc4.h:81
f32 field_0x10
Definition d_a_npc4.h:80
BOOL chkPassed(cXyz)
Definition d_a_npc4.cpp:214
daNpcF_SPCurve_c mSPCurve
Definition d_a_npc4.h:82
BOOL chkReverse()
Definition d_a_npc4.h:110
BOOL getNextPos(cXyz &)
Definition d_a_npc4.cpp:256
daNpcF_Path_c()
Definition d_a_npc4.h:98
Vec getPntPos(int i_idx)
Definition d_a_npc4.h:108
u8 mIsClosed
Definition d_a_npc4.h:76
void reverse()
Definition d_a_npc4.cpp:223
dPath * getPathInfo()
Definition d_a_npc4.h:113
u16 mIdx
Definition d_a_npc4.h:74
dPath * mPathInfo
Definition d_a_npc4.h:77
f32 mRange
Definition d_a_npc4.h:78
void setNextIdxDst(cXyz)
Definition d_a_npc4.cpp:284
int getNumPnts()
Definition d_a_npc4.h:115
Definition d_a_npc4.h:54
virtual ~daNpcF_SPCurve_c()
Definition d_a_npc4.h:69
u8 mIsClosed
Definition d_a_npc4.h:59
void initialize(dPath *, int)
Definition d_a_npc4.cpp:132
u16 field_0x02
Definition d_a_npc4.h:57
dPnt mPoints[96]
Definition d_a_npc4.h:60
daNpcF_SPCurve_c()
Definition d_a_npc4.h:65
u16 mNurbs
Definition d_a_npc4.h:56
u8 mIsReversed
Definition d_a_npc4.h:58
Definition d_a_npc4.h:170
bool mOrderNewEvt
Definition d_a_npc4.h:248
u32 mAnmFlags
Definition d_a_npc4.h:223
void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData ***)
Definition d_a_npc4.cpp:1077
bool mOrderSpeakEvt
Definition d_a_npc4.h:244
void setDamage(int, int, int)
Definition d_a_npc4.cpp:1220
int ctrlMsgAnm(int &, int &, fopAc_ac_c *, BOOL)
Definition d_a_npc4.cpp:1238
cXyz field_0x8c0
Definition d_a_npc4.h:189
virtual ~daNpcF_c()
Definition d_a_npc4.h:360
s16 field_0x992
Definition d_a_npc4.h:219
BOOL hitChk2(dCcD_Cyl *, BOOL, BOOL)
Definition d_a_npc4.cpp:1189
csXyz mCurAngle
Definition d_a_npc4.h:193
u8 getDistTableIdx(int, int)
Definition d_a_npc4.cpp:1503
s16 field_0x990
Definition d_a_npc4.h:218
virtual void setMotion(int i_motion, f32 i_morf, int i_restart)
Definition d_a_npc4.h:373
J3DAnmTexPattern * getTexPtrnAnmP(char *, int)
Definition d_a_npc4.cpp:899
cXyz mHeadPos
Definition d_a_npc4.h:192
bool field_0x9ec
Definition d_a_npc4.h:247
bool field_0x9eb
Definition d_a_npc4.h:246
u16 mMotionLoops
Definition d_a_npc4.h:240
int mTotalDamageTimer
Definition d_a_npc4.h:206
J3DAnmTevRegKey * getTevRegKeyAnmP(char *, int)
Definition d_a_npc4.cpp:909
f32 mTurnStepNum
Definition d_a_npc4.h:212
s16 mMotionPhase
Definition d_a_npc4.h:236
int mCutType
Definition d_a_npc4.h:200
int mStaffID
Definition d_a_npc4.h:199
static dCcD_SrcCyl mCcDCyl
Definition d_a_npc4.h:710
u8 field_0x9f6
Definition d_a_npc4.h:257
s16 field_0x998
Definition d_a_npc4.h:222
void setRoomNo()
Definition d_a_npc4.cpp:949
f32 mExpressionMorfOverride
Definition d_a_npc4.h:213
int mAttnIdx
Definition d_a_npc4.h:201
s16 mTurnStartAngle
Definition d_a_npc4.h:220
static char mFileNameBuf[0x15]
Definition d_a_npc4.h:403
u8 mTwilight
Definition d_a_npc4.h:255
mDoExt_btkAnm mBtkAnm
Definition d_a_npc4.h:175
BOOL step(s16, int, int, int)
Definition d_a_npc4.cpp:1459
virtual void adjustShapeAngle()
Definition d_a_npc4.h:364
BOOL talkProc(int *, BOOL, fopAc_ac_c **)
Definition d_a_npc4.cpp:1390
BOOL setBckAnm(J3DAnmTransform *i_bck, f32 i_rate, int i_attr, int i_start, int i_end, bool i_modify)
Definition d_a_npc4.cpp:922
f32 mExpressionMorf
Definition d_a_npc4.h:214
BOOL chkActorInTalkArea(fopAc_ac_c *i_actorCheck, fopAc_ac_c *i_actorArea)
Definition d_a_npc4.h:383
bool mIsDamaged
Definition d_a_npc4.h:251
virtual BOOL ctrlBtk()
Definition d_a_npc4.h:363
bool field_0x9ee
Definition d_a_npc4.h:249
u8 field_0x9ef
Definition d_a_npc4.h:250
virtual void setExpression(int i_expression, f32 i_morf)
Definition d_a_npc4.h:371
BOOL chkPlayerInTalkArea(fopAc_ac_c *i_actor)
Definition d_a_npc4.h:386
static dCcD_SrcSph mCcDSph
Definition d_a_npc4.h:721
dBgS_AcchCir mAcchCir
Definition d_a_npc4.h:179
AnmFlags
Definition d_a_npc4.h:270
@ ANM_FLAG_400
Definition d_a_npc4.h:281
@ ANM_PAUSE_MORF
Definition d_a_npc4.h:271
@ ANM_EXPRESSION_FLAGS
Definition d_a_npc4.h:288
@ ANM_PLAY_BTP
Definition d_a_npc4.h:280
@ ANM_FLAG_800
Definition d_a_npc4.h:282
@ ANM_PAUSE_BPK
Definition d_a_npc4.h:284
@ ANM_PLAY_BCK
Definition d_a_npc4.h:279
@ ANM_PAUSE_ALL
Definition d_a_npc4.h:290
@ ANM_PLAY_BTK
Definition d_a_npc4.h:275
@ ANM_PAUSE_BRK
Definition d_a_npc4.h:273
@ ANM_PAUSE_BTK
Definition d_a_npc4.h:272
@ ANM_PAUSE_EXPRESSION
Definition d_a_npc4.h:283
@ ANM_PAUSE_BCK
Definition d_a_npc4.h:277
@ ANM_PLAY_BRK
Definition d_a_npc4.h:276
@ ANM_PAUSE_BTP
Definition d_a_npc4.h:278
@ ANM_PLAY_MORF
Definition d_a_npc4.h:274
@ ANM_PLAY_BPK
Definition d_a_npc4.h:285
@ ANM_MOTION_FLAGS
Definition d_a_npc4.h:286
csXyz mHeadAngle
Definition d_a_npc4.h:196
f32 field_0x984[3]
Definition d_a_npc4.h:217
int mDamageTimer
Definition d_a_npc4.h:205
int mTurnMode
Definition d_a_npc4.h:211
daNpcF_c()
Definition d_a_npc4.h:303
s16 field_0x9d0
Definition d_a_npc4.h:231
cXyz field_0x884
Definition d_a_npc4.h:184
s16 mExpression
Definition d_a_npc4.h:238
u8 field_0x9f1
Definition d_a_npc4.h:252
cXyz field_0x8d8
Definition d_a_npc4.h:191
BOOL execute()
Definition d_a_npc4.cpp:561
u32 mPolySound
Definition d_a_npc4.h:227
void onInterrupt(u8 param_0)
Definition d_a_npc4.h:393
virtual void drawOtherMdls()
Definition d_a_npc4.h:375
BOOL turn(s16, f32, int)
Definition d_a_npc4.cpp:1425
fopAc_ac_c * getAttnActorP(BOOL, fpcLyIt_JudgeFunc, f32, f32, f32, f32, s16, int, BOOL)
Definition d_a_npc4.cpp:1523
cXyz field_0x89c
Definition d_a_npc4.h:186
cXyz field_0x8a8
Definition d_a_npc4.h:187
BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16)
Definition d_a_npc4.cpp:1632
static void * srchAttnActor1(void *, void *)
Definition d_a_npc4.cpp:734
s8 mReverb
Definition d_a_npc4.h:243
BOOL chkActorInArea(fopAc_ac_c *, cXyz, cXyz, s16)
Definition d_a_npc4.cpp:1332
dBgS_LinChk field_0xad4
Definition d_a_npc4.h:261
fopAc_ac_c * getEvtAreaTagP(int, int)
Definition d_a_npc4.cpp:1507
void setAngle(s16)
Definition d_a_npc4.cpp:1495
int mAttnActorTimer[5]
Definition d_a_npc4.h:203
void setIntFlowNodeNo(s32 i_flowNodeNo)
Definition d_a_npc4.h:391
f32 mMotionMorfOverride
Definition d_a_npc4.h:215
dMsgFlow_c mFlow
Definition d_a_npc4.h:258
cXyz field_0x9b8
Definition d_a_npc4.h:229
virtual BOOL drawDbgInfo()
Definition d_a_npc4.h:374
BOOL setBrkAnm(J3DAnmTevRegKey *i_brk, J3DModelData *i_modelData, f32 i_rate, int i_attr)
Definition d_a_npc4.cpp:939
virtual void setParam()
Definition d_a_npc4.h:361
BOOL chkActorInSpeakArea(fopAc_ac_c *i_actorCheck, fopAc_ac_c *i_actorArea)
Definition d_a_npc4.h:377
virtual void setMotionAnm(int i_idx, f32 i_morf)
Definition d_a_npc4.h:372
static fopAc_ac_c * mFindActorPList[100]
Definition d_a_npc4.h:400
void offHide()
Definition d_a_npc4.h:395
s16 mExpressionPhase
Definition d_a_npc4.h:234
cXyz getAttentionPos(fopAc_ac_c *)
Definition d_a_npc4.cpp:1657
s16 mExpressionPrevPhase
Definition d_a_npc4.h:235
csXyz field_0x908[3]
Definition d_a_npc4.h:197
BOOL chkPlayerInSpeakArea(fopAc_ac_c *i_actor)
Definition d_a_npc4.h:380
u16 mExpressionLoops
Definition d_a_npc4.h:241
virtual bool setExpressionBtp(int i_idx)
Definition d_a_npc4.h:370
LookMode
Definition d_a_npc4.h:294
@ LOOK_ACTOR
Definition d_a_npc4.h:299
@ LOOK_NONE
Definition d_a_npc4.h:295
@ LOOK_PLAYER
Definition d_a_npc4.h:297
@ LOOK_ATTN
Definition d_a_npc4.h:300
@ LOOK_RESET
Definition d_a_npc4.h:296
@ LOOK_PLAYER_TALK
Definition d_a_npc4.h:298
void setCutType(int i_cutType)
Definition d_a_npc4.h:392
static void * srchActor(void *, void *)
Definition d_a_npc4.cpp:751
J3DAnmTextureSRTKey * getTexSRTKeyAnmP(char *, int)
Definition d_a_npc4.cpp:904
static void tgHitCallBack(fopAc_ac_c *, dCcD_GObjInf *, fopAc_ac_c *, dCcD_GObjInf *)
Definition d_a_npc4.cpp:698
bool field_0x9ea
Definition d_a_npc4.h:245
u32 field_0x9a4
Definition d_a_npc4.h:225
cXyz field_0x890
Definition d_a_npc4.h:185
cXyz field_0x9c4
Definition d_a_npc4.h:230
BOOL chkEndAnm(f32)
Definition d_a_npc4.cpp:955
cXyz mLookPos
Definition d_a_npc4.h:183
void initialize()
Definition d_a_npc4.cpp:805
void changeEvent(char *, char *, u16, u16)
Definition d_a_npc4.cpp:1304
cXyz mLookatPos[3]
Definition d_a_npc4.h:182
BOOL chkActorInSight(fopAc_ac_c *, f32)
Definition d_a_npc4.cpp:1317
int mMsgTimer
Definition d_a_npc4.h:204
u32 mHitodamaParticleKey[2]
Definition d_a_npc4.h:226
static s32 mFindCount
Definition d_a_npc4.h:401
s16 mMotion
Definition d_a_npc4.h:239
csXyz mOldAngle
Definition d_a_npc4.h:194
virtual void setCollisions()
Definition d_a_npc4.h:368
csXyz mEyeAngle
Definition d_a_npc4.h:195
dCcD_Stts mCcStts
Definition d_a_npc4.h:178
static s16 mSrchActorName
Definition d_a_npc4.h:402
daNpcF_ActorMngr_c mAttnActor[5]
Definition d_a_npc4.h:181
void playMotionAnm(daNpcF_c::daNpcF_anmPlayData ***)
Definition d_a_npc4.cpp:1114
virtual void setAttnPos()
Definition d_a_npc4.h:367
int mTurnAmount
Definition d_a_npc4.h:210
BOOL chkFindPlayer2(BOOL, s16)
Definition d_a_npc4.cpp:1667
BOOL initTalk(int, fopAc_ac_c **)
Definition d_a_npc4.cpp:1381
BOOL setBtpAnm(J3DAnmTexPattern *i_btp, J3DModelData *i_modelData, f32 i_rate, int i_attr)
Definition d_a_npc4.cpp:929
mDoExt_btpAnm mBtpAnm
Definition d_a_npc4.h:174
int mBtpTimer
Definition d_a_npc4.h:209
s16 mMotionPrevPhase
Definition d_a_npc4.h:237
s16 mTurnTargetAngle
Definition d_a_npc4.h:221
BOOL checkHide()
Definition d_a_npc4.h:389
s16 mEventIdx
Definition d_a_npc4.h:233
void onHide()
Definition d_a_npc4.h:394
mDoExt_brkAnm mBrkAnm
Definition d_a_npc4.h:176
void setEnvTevColor()
Definition d_a_npc4.cpp:944
f32 mGroundH
Definition d_a_npc4.h:216
daNpcF_ActorMngr_c field_0x824
Definition d_a_npc4.h:180
mDoExt_bckAnm mBckAnm
Definition d_a_npc4.h:173
void setHitodamaPrtcl()
Definition d_a_npc4.cpp:1703
virtual void setMtx2()
Definition d_a_npc4.cpp:782
virtual BOOL main()
Definition d_a_npc4.h:362
int draw(BOOL, BOOL, f32, _GXColorS10 *, BOOL)
Definition d_a_npc4.cpp:617
BOOL chkActorInSight2(fopAc_ac_c *, f32, s16)
Definition d_a_npc4.cpp:1616
virtual void setMtx()
Definition d_a_npc4.cpp:765
bool mHide
Definition d_a_npc4.h:253
s16 field_0x9d2
Definition d_a_npc4.h:232
J3DAnmTransformKey * getTrnsfrmKeyAnmP(char *, int)
Definition d_a_npc4.cpp:894
u8 field_0x9f5
Definition d_a_npc4.h:256
int mAttnChangeTimer
Definition d_a_npc4.h:202
dBgS_ObjAcch mAcch
Definition d_a_npc4.h:177
void orderEvent(int, char *, u16, u16, u8, u16)
Definition d_a_npc4.cpp:1283
BOOL setBtkAnm(J3DAnmTextureSRTKey *i_btk, J3DModelData *i_modelData, f32 i_rate, int i_attr)
Definition d_a_npc4.cpp:934
u8 field_0x9f3
Definition d_a_npc4.h:254
u16 mOrderEvtNo
Definition d_a_npc4.h:242
static dCcD_SrcGObjInf const mCcDObjInfo
Definition d_a_npc4.h:2168
void setLookatMtx(int, int *, f32)
Definition d_a_npc4.cpp:1151
int mEventTimer
Definition d_a_npc4.h:208
cXyz field_0x8b4
Definition d_a_npc4.h:188
virtual bool setExpressionAnm(int i_idx, bool i_modify)
Definition d_a_npc4.h:369
int field_0x95c
Definition d_a_npc4.h:207
csXyz mLookatAngle[3]
Definition d_a_npc4.h:198
cBgS_GndChk mGndChk
Definition d_a_npc4.h:259
BOOL setMcaMorfAnm(J3DAnmTransformKey *i_anm, f32 i_rate, f32 i_morf, int i_attr, int i_start, int i_end)
Definition d_a_npc4.cpp:914
void setIntDemander(fopAc_ac_c *i_actor)
Definition d_a_npc4.h:390
BOOL chkActorInAttnArea(fopAc_ac_c *, fopAc_ac_c *, int)
Definition d_a_npc4.cpp:1361
cXyz field_0x8cc
Definition d_a_npc4.h:190
mDoExt_McaMorfSO * mAnm_p
Definition d_a_npc4.h:172
int mFlowNodeNo
Definition d_a_npc4.h:228
u32 mShadowKey
Definition d_a_npc4.h:224
dBgS_GndChk field_0xa80
Definition d_a_npc4.h:260
BOOL playAllAnm()
Definition d_a_npc4.cpp:990
Definition f_op_actor.h:243
actor_attention_types attention_info
Definition f_op_actor.h:280
Definition m_Do_ext.h:408
Definition m_Do_ext.h:149
Definition m_Do_ext.h:92
Definition m_Do_ext.h:63
Definition m_Do_ext.h:180
void daNpcF_commonGenMessage(JORMContext *, daNpcF_HIOParam *)
Definition d_a_npc4.cpp:2027
void daNpcF_commonListenPropertyEvent(char *, int *, daNpcF_HIOParam *)
Definition d_a_npc4.cpp:1957
BOOL daNpcF_chkTmpBit(u32 i_idx)
Definition d_a_npc4.cpp:1860
void daNpcF_clearMessageTmpBit()
Definition d_a_npc4.cpp:2122
s16 daNpcF_getGroundAngle(cBgS_PolyInfo *, s16)
Definition d_a_npc4.cpp:1837
void daNpcF_onEvtBit(u32 i_idx)
Definition d_a_npc4.cpp:1856
BOOL daNpcF_chkEvtBit(u32 i_idx)
Definition d_a_npc4.cpp:1852
void daNpcF_onTmpBit(u32 i_idx)
Definition d_a_npc4.cpp:1864
BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16)
Definition d_a_npc4.cpp:1923
void daNpcF_offTmpBit(u32 i_idx)
Definition d_a_npc4.cpp:1868
BOOL daNpcF_pntVsLineSegmentLengthSquare2D(f32 i_pntX, f32 i_pntZ, f32 i_startX, f32 i_startZ, f32 i_endX, f32 i_endZ, f32 *o_projX, f32 *o_projZ, f32 *o_dist2)
Definition d_a_npc4.cpp:1732
BOOL daNpcF_chkDoBtnEqSpeak(fopAc_ac_c *i_actor_p)
Definition d_a_npc4.cpp:1891
STATIC_ASSERT(sizeof(daNpcF_c)==0xB48)
BOOL daNpcF_chkPassed(cXyz i_pos, dPnt *i_points, u16 i_idx, u16 i_num, BOOL i_isClosed, BOOL i_isReversed)
Definition d_a_npc4.cpp:1765
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz &param_2, csXyz &param_3)
Definition d_a_npc4.cpp:1872
u8 daNpcF_getDistTableIdx(int param_0, int param_1)
Definition d_a_npc4.cpp:1952
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1258
BOOL dComIfGs_wolfeye_effect_check()
Definition d_com_inf_game.cpp:2876
BOOL dPath_ChkClose(const dPath *i_path)
Definition d_path.h:28
f32 Mtx[3][4]
Definition mtx.h:25
@ fopAc_attn_SPEAK_e
Definition f_op_actor.h:99
@ fopAc_attn_TALK_e
Definition f_op_actor.h:90
unsigned int fpc_ProcID
Definition f_pc_base.h:10
void *(* fpcLyIt_JudgeFunc)(void *, void *)
Definition f_pc_layer_iter.h:14
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
Definition mtx.h:13
Definition GXStruct.h:34
u8 distances[fopAc_attn_MAX_e]
Definition f_op_actor.h:225
Definition c_xyz.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
Definition d_path.h:10
Vec m_position
Definition d_path.h:15
u8 mArg0
Definition d_path.h:14
Definition d_a_npc4.h:430
f32 body_angleX_min
Definition d_a_npc4.h:440
f32 search_distance
Definition d_a_npc4.h:454
s16 damage_time
Definition d_a_npc4.h:458
f32 head_angleX_max
Definition d_a_npc4.h:443
f32 head_angleX_min
Definition d_a_npc4.h:444
s16 look_mode
Definition d_a_npc4.h:461
f32 attention_offset
Definition d_a_npc4.h:431
f32 body_angleY_min
Definition d_a_npc4.h:442
f32 fov
Definition d_a_npc4.h:453
f32 head_angleY_min
Definition d_a_npc4.h:446
s16 face_expression
Definition d_a_npc4.h:459
f32 gravity
Definition d_a_npc4.h:432
s16 attention_angle
Definition d_a_npc4.h:452
f32 body_angleX_max
Definition d_a_npc4.h:439
s16 attention_distance
Definition d_a_npc4.h:451
f32 search_height
Definition d_a_npc4.h:455
f32 morf_frame
Definition d_a_npc4.h:448
s16 talk_angle
Definition d_a_npc4.h:450
f32 neck_rotation_ratio
Definition d_a_npc4.h:447
f32 width
Definition d_a_npc4.h:438
f32 real_shadow_size
Definition d_a_npc4.h:434
f32 body_angleY_max
Definition d_a_npc4.h:441
s16 motion
Definition d_a_npc4.h:460
s16 attention_time
Definition d_a_npc4.h:457
f32 scale
Definition d_a_npc4.h:433
f32 weight
Definition d_a_npc4.h:435
f32 height
Definition d_a_npc4.h:436
s16 talk_distance
Definition d_a_npc4.h:449
u8 debug_mode_ON
Definition d_a_npc4.h:462
f32 knee_length
Definition d_a_npc4.h:437
f32 search_depth
Definition d_a_npc4.h:456
u8 debug_info_ON
Definition d_a_npc4.h:463
f32 head_angleY_max
Definition d_a_npc4.h:445
Definition d_a_npc4.h:264
f32 morf
Definition d_a_npc4.h:266
u16 idx
Definition d_a_npc4.h:265
int numLoops
Definition d_a_npc4.h:267