Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_cd2.h
Go to the documentation of this file.
1#ifndef A_NPC_D_A_NPC_CD2_H
2#define A_NPC_D_A_NPC_CD2_H
3
6#include "d/d_npc_lib.h"
7#include "d/d_path.h"
8#include <dolphin/types.h>
9
10enum {
13 JntM_NUM_e = 0x13,
14 JntW_NUM_e = 0x15,
15};
16
17
18enum AnmNum {
21};
22
23// Fake name
25 /* 0x00 */ f32 field_0x00[3];
26 /* 0x0C */ s16 field_0x0C[3];
27}; // Size: 0x14
28
37
38// Fake name
44 /* 0x08 */ s16 mMaxLmtX_NECK;
45 /* 0x0A */ s16 mMaxLmtY_NECK;
46 /* 0x0C */ s16 mMinLmtX_NECK;
47 /* 0x0E */ s16 mMinLmtY_NECK;
48 /* 0x10 */ s16 mMaxLmtX_HEAD;
49 /* 0x12 */ s16 mMaxLmtY_HEAD;
50 /* 0x14 */ s16 mMinLmtX_HEAD;
51 /* 0x16 */ s16 mMinLmtY_HEAD;
52 /* 0x18 */ f32 mScale;
53 /* 0x1C */ s16 mAttn;
54 /* 0x20 */ f32 mAnmPlaySpeed;
56 /* 0x28 */ f32 mMaxSpeed;
57 /* 0x2C */ f32 mWalkMaxSpeed;
58 /* 0x30 */ f32 mCylH;
59 /* 0x34 */ f32 mCylR;
60 /* 0x38 */ f32 mChkWallH;
61 /* 0x3C */ f32 mChkWallR;
62}; // Size: 0x40
63
71
79
89
91
92inline s16 Cd2_HIO_atnOfs(int param_1) {
93 s16 rv;
94 if (param_1 < 16) {
96 } else {
97 rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mAttn;
98 }
99 return rv;
100}
101
102inline f32 Cd2_HIO_objScale(int param_1) {
103 return (f32)(param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mScale : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mScale);
104
105}
106
107inline f32 Cd2_HIO_walkMaxSpeed(int param_1) {
108 return (f32)(param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mWalkMaxSpeed : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mWalkMaxSpeed);
109}
110
111inline f32 Cd2_HIO_walkAnmPlaySpeed(int param_1) {
113}
114
115inline f32 Cd2_HIO_maxSpeed(int param_1) {
116 return (f32)(param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mMaxSpeed : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mMaxSpeed);
117}
118
119inline f32 Cd2_HIO_anmPlaySpeed(int param_1) {
120 return (f32)(param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mAnmPlaySpeed : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mAnmPlaySpeed);
121}
122
123inline f32 Cd2_HIO_chkWallH(int param_1) {
124 return param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mChkWallH : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mChkWallH;
125}
126
127inline f32 Cd2_HIO_chkWallR(int param_1) {
128 return param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mChkWallR : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mChkWallR;
129}
130
131inline f32 Cd2_HIO_cylR(int param_1) {
132 return param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mCylR : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mCylR;
133}
134
135inline f32 Cd2_HIO_cylH(int param_1) {
136 return param_1 < 16 ? l_Cd2_HIO.field_0x0004[param_1].field_0x1D0.mCylH : l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1FC.mCylH;
137}
138
139inline s16 Cd2_HIO_maxLmtX_BACKBONE(int param_1) {
140 return (s16)(param_1 < 16 ?
143}
144
145inline s16 Cd2_HIO_maxLmtY_BACKBONE(int param_1) {
146 return (s16)(param_1 < 16 ?
149}
150
151inline s16 Cd2_HIO_maxLmtX_NECK(int param_1) {
152 return (s16)(param_1 < 16 ?
155}
156
157inline s16 Cd2_HIO_maxLmtY_NECK(int param_1) {
158 return (s16)(param_1 < 16 ?
161}
162
163inline s16 Cd2_HIO_maxLmtX_HEAD(int param_1) {
164 return (s16)(param_1 < 16 ?
167}
168
169inline s16 Cd2_HIO_maxLmtY_HEAD(int param_1) {
170 return (s16)(param_1 < 16 ?
173}
174
175inline s16 Cd2_HIO_minLmtX_BACKBONE(int param_1) {
176 return (s16)(param_1 < 16 ?
179}
180
181inline s16 Cd2_HIO_minLmtY_BACKBONE(int param_1) {
182 return (s16)(param_1 < 16 ?
185}
186
187inline s16 Cd2_HIO_minLmtX_NECK(int param_1) {
188 return (s16)(param_1 < 16 ?
191}
192
193inline s16 Cd2_HIO_minLmtY_NECK(int param_1) {
194 return (s16)(param_1 < 16 ?
197}
198
199inline s16 Cd2_HIO_minLmtX_HEAD(int param_1) {
200 return (s16)(param_1 < 16 ?
203}
204
205inline s16 Cd2_HIO_minLmtY_HEAD(int param_1) {
206 return (s16)(param_1 < 16 ?
209}
210
212public:
213 bool setPath(int, int, int, cXyz*, bool);
214 bool checkPoint(cXyz, f32);
215 bool checkPathEnd(cXyz, f32);
216 void getTargetPoint(Vec*);
217 void setAvoidPoint();
218 void setNextPoint();
219 void setNextPoint(cXyz&);
220 int incIndex(int);
221 int decIndex(int);
224
225 void getAvoidPoint(Vec* avoidPoint) { *avoidPoint = mAvoidPoint; }
227 bool isPath() { return mPath != NULL; }
230 Vec getPoint(u16 index) { return mPath->m_points[(u16)index].m_position; }
233 return field_0x24 == 1 ? mPath->m_num - 1 : 0;
234 }
235
236 /* 0x00 */ fopAc_ac_c* mMyself;
238 /* 0x08 */ dPath* mPath;
239 /* 0x0C */ Vec mAvoidPoint;
240 /* 0x18 */ f32 field_0x18;
241 /* 0x1C */ f32 mNextPoint;
242 /* 0x20 */ int field_0x20;
243 /* 0x24 */ s8 field_0x24;
244};
245
246class daNpcCd2_c : public fopAc_ac_c {
247public:
248 int NpcCreate(int);
249 J3DModel* ObjCreate(int);
251 bool isM_();
252 J3DAnmTransform* getAnmP(int, int);
253 int setAttention(int);
254 int loadResrc(int, int);
255 int removeResrc(int, int);
256 void setEnvTevCol();
257 void setRoomNo();
258 void animation(int);
259 void setAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
260 int drawShadow(f32);
261 int drawObj(int, J3DModel*, f32);
262 int drawNpc();
264 void setHitodamaParticle();
266 bool checkFearSituation();
270 virtual ~daNpcCd2_c() {}
271
272 static dCcD_SrcCyl const m_cylDat;
273
281 /* 0x638 */ dBgS_ObjAcch mAcch;
283 /* 0x850 */ dCcD_Stts mStts;
284 /* 0x88C */ dCcD_Cyl mCyl;
286 /* 0xA98 */ int m_type;
287 /* 0xA9C */ int field_0xa9c;
288 /* 0xAA4 */ int field_0xaa0;
289 /* 0xAA4 */ int field_0xaa4;
290 /* 0xAA8 */ int mHitodamaEmitters[2];
292 /* 0xAB4 */ cXyz field_0xab4;
293 /* 0xAC0 */ s16 field_0xac0;
294 /* 0xAC2 */ s16 field_0xac2;
295 /* 0xAC4 */ s16 field_0xac4;
296 /* 0xAC6 */ u8 mIsDarkWorld;
297};
298
299#endif /* A_NPC_D_A_NPC_CD2_H */
Definition J3DAnimation.h:880
Definition J3DAnimation.h:527
Definition J3DAnimation.h:506
Definition J3DJoint.h:66
Definition J3DModelData.h:15
Definition J3DModel.h:43
Definition JORMContext.h:128
Definition JORReflexible.h:47
Definition d_a_npc_cd2.h:211
int incIndex(int)
Definition d_a_npc_cd2.cpp:1061
void getAvoidPoint(Vec *avoidPoint)
Definition d_a_npc_cd2.h:225
Vec getPoint(u16 index)
Definition d_a_npc_cd2.h:230
s8 getArg0()
Definition d_a_npc_cd2.h:228
fopAc_ac_c * checkObstacle(fopAc_ac_c *)
Definition d_a_npc_cd2.cpp:1098
int decIndex(int)
Definition d_a_npc_cd2.cpp:1072
bool checkPoint(cXyz, f32)
Definition d_a_npc_cd2.cpp:989
fopAc_ac_c * mObstacle
Definition d_a_npc_cd2.h:237
void setAvoidPoint()
Definition d_a_npc_cd2.cpp:1022
fopAc_ac_c * mMyself
Definition d_a_npc_cd2.h:236
Vec mAvoidPoint
Definition d_a_npc_cd2.h:239
dPath * mPath
Definition d_a_npc_cd2.h:238
bool setPath(int, int, int, cXyz *, bool)
Definition d_a_npc_cd2.cpp:964
bool isPath()
Definition d_a_npc_cd2.h:227
f32 field_0x18
Definition d_a_npc_cd2.h:240
void getTargetPoint(Vec *)
Definition d_a_npc_cd2.cpp:1013
int field_0x20
Definition d_a_npc_cd2.h:242
BOOL isClose()
Definition d_a_npc_cd2.h:226
void checkObstacleSub(fopAc_ac_c *)
Definition d_a_npc_cd2.cpp:1111
s8 getArg1()
Definition d_a_npc_cd2.h:229
f32 mNextPoint
Definition d_a_npc_cd2.h:241
bool checkPathEnd(cXyz, f32)
Definition d_a_npc_cd2.cpp:1000
void setNextPoint()
Definition d_a_npc_cd2.cpp:1048
u16 getLastPointNum()
Definition d_a_npc_cd2.h:232
s8 field_0x24
Definition d_a_npc_cd2.h:243
void setLastPointNum()
Definition d_a_npc_cd2.h:231
Definition Z2Creature.h:60
Definition d_bg_s_acch.h:15
Definition d_bg_s_acch.h:249
Definition d_cc_d.h:472
Definition d_cc_d.h:273
Definition d_npc_lib.h:6
Definition d_a_npc_cd2.h:246
int field_0xaa4
Definition d_a_npc_cd2.h:289
request_of_phase_process_class mPhase1
Definition d_a_npc_cd2.h:274
void setAnm(J3DAnmTransformKey *, f32, f32, int, int, int)
Definition d_a_npc_cd2.cpp:714
int NpcCreate(int)
Definition d_a_npc_cd2.cpp:245
J3DModel * ObjCreate(int)
Definition d_a_npc_cd2.cpp:302
dCcD_Cyl mCyl
Definition d_a_npc_cd2.h:284
dBgS_ObjAcch mAcch
Definition d_a_npc_cd2.h:281
daTagEscape_c * getEscapeTag()
Definition d_a_npc_cd2.cpp:911
Z2CreatureCitizen mCitizen
Definition d_a_npc_cd2.h:280
bool isM_()
Definition d_a_npc_cd2.cpp:333
int removeResrc(int, int)
Definition d_a_npc_cd2.cpp:675
cXyz field_0xab4
Definition d_a_npc_cd2.h:292
request_of_phase_process_class mPhase2
Definition d_a_npc_cd2.h:275
dCcD_Stts mStts
Definition d_a_npc_cd2.h:283
int drawNpc()
Definition d_a_npc_cd2.cpp:754
int m_type
Definition d_a_npc_cd2.h:286
J3DAnmTexPattern * getTexAnmP(int)
Definition d_a_npc_cd2.cpp:951
int drawObj(int, J3DModel *, f32)
Definition d_a_npc_cd2.cpp:731
int drawShadow(f32)
Definition d_a_npc_cd2.cpp:721
J3DModel * ChairCreate(f32)
Definition d_a_npc_cd2.cpp:313
virtual ~daNpcCd2_c()
Definition d_a_npc_cd2.h:270
int setAttention(int)
Definition d_a_npc_cd2.cpp:602
mDoExt_btpAnm * mpBtpAnm
Definition d_a_npc_cd2.h:279
request_of_phase_process_class mPhase4
Definition d_a_npc_cd2.h:277
u8 mIsDarkWorld
Definition d_a_npc_cd2.h:296
void setEnvTevCol()
Definition d_a_npc_cd2.cpp:688
void setHitodamaParticle()
Definition d_a_npc_cd2.cpp:856
s16 field_0xac4
Definition d_a_npc_cd2.h:295
dNpcLib_lookat_c mLookat
Definition d_a_npc_cd2.h:285
void animation(int)
Definition d_a_npc_cd2.cpp:699
request_of_phase_process_class mPhase3
Definition d_a_npc_cd2.h:276
int jntNodeCB(J3DJoint *, J3DModel *)
Definition d_a_npc_cd2.cpp:841
s16 field_0xac0
Definition d_a_npc_cd2.h:293
int field_0xaa0
Definition d_a_npc_cd2.h:288
J3DModelData * getObjMdlDataP(int)
Definition d_a_npc_cd2.cpp:937
J3DAnmTransform * getAnmP(int, int)
Definition d_a_npc_cd2.cpp:342
bool checkFearSituation()
Definition d_a_npc_cd2.cpp:918
int field_0xa9c
Definition d_a_npc_cd2.h:287
int mHitodamaEmitters[2]
Definition d_a_npc_cd2.h:290
static dCcD_SrcCyl const m_cylDat
Definition d_a_npc_cd2.h:182
daTagEscape_c * mEscapeTag
Definition d_a_npc_cd2.h:291
mDoExt_McaMorfSO * mpMorf
Definition d_a_npc_cd2.h:278
s16 field_0xac2
Definition d_a_npc_cd2.h:294
void setRoomNo()
Definition d_a_npc_cd2.cpp:693
dBgS_AcchCir mAcchCir
Definition d_a_npc_cd2.h:282
int loadResrc(int, int)
Definition d_a_npc_cd2.cpp:643
J3DModelData * getNpcMdlDataP(int)
Definition d_a_npc_cd2.cpp:927
Definition d_a_tag_escape.h:6
Definition f_op_actor.h:243
Definition m_Do_ext.h:408
Definition m_Do_ext.h:180
AnmNum
Definition d_a_npc_cd2.h:18
@ CD2_ANM_0
Definition d_a_npc_cd2.h:19
@ CD2_ANM_14
Definition d_a_npc_cd2.h:20
f32 Cd2_HIO_objScale(int param_1)
Definition d_a_npc_cd2.h:102
f32 Cd2_HIO_walkAnmPlaySpeed(int param_1)
Definition d_a_npc_cd2.h:111
s16 Cd2_HIO_maxLmtY_HEAD(int param_1)
Definition d_a_npc_cd2.h:169
s16 Cd2_HIO_minLmtY_NECK(int param_1)
Definition d_a_npc_cd2.h:193
f32 Cd2_HIO_chkWallR(int param_1)
Definition d_a_npc_cd2.h:127
f32 Cd2_HIO_cylH(int param_1)
Definition d_a_npc_cd2.h:135
f32 Cd2_HIO_chkWallH(int param_1)
Definition d_a_npc_cd2.h:123
s16 Cd2_HIO_minLmtX_HEAD(int param_1)
Definition d_a_npc_cd2.h:199
f32 Cd2_HIO_maxSpeed(int param_1)
Definition d_a_npc_cd2.h:115
s16 Cd2_HIO_maxLmtX_HEAD(int param_1)
Definition d_a_npc_cd2.h:163
f32 Cd2_HIO_anmPlaySpeed(int param_1)
Definition d_a_npc_cd2.h:119
s16 Cd2_HIO_maxLmtX_NECK(int param_1)
Definition d_a_npc_cd2.h:151
s16 Cd2_HIO_atnOfs(int param_1)
Definition d_a_npc_cd2.h:92
s16 Cd2_HIO_minLmtY_BACKBONE(int param_1)
Definition d_a_npc_cd2.h:181
s16 Cd2_HIO_minLmtY_HEAD(int param_1)
Definition d_a_npc_cd2.h:205
s16 Cd2_HIO_maxLmtX_BACKBONE(int param_1)
Definition d_a_npc_cd2.h:139
f32 Cd2_HIO_walkMaxSpeed(int param_1)
Definition d_a_npc_cd2.h:107
s16 Cd2_HIO_maxLmtY_NECK(int param_1)
Definition d_a_npc_cd2.h:157
f32 Cd2_HIO_cylR(int param_1)
Definition d_a_npc_cd2.h:131
daNpcCd2_HIO_c l_Cd2_HIO
Definition d_a_npc_cd2.cpp:243
s16 Cd2_HIO_maxLmtY_BACKBONE(int param_1)
Definition d_a_npc_cd2.h:145
s16 Cd2_HIO_minLmtX_BACKBONE(int param_1)
Definition d_a_npc_cd2.h:175
s16 Cd2_HIO_minLmtX_NECK(int param_1)
Definition d_a_npc_cd2.h:187
@ JntM_NUM_e
Definition d_a_npc_cd2.h:13
@ MdlMADa_e
Definition d_a_npc_cd2.h:12
@ JntW_NUM_e
Definition d_a_npc_cd2.h:14
@ MdlMANa_e
Definition d_a_npc_cd2.h:11
BOOL dPath_ChkClose(const dPath *i_path)
Definition d_path.h:28
static u8 index[20][3]
Definition GXDraw.c:434
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition mtx.h:13
Definition c_xyz.h:7
Definition d_cc_d.h:104
Definition d_path.h:18
u16 m_num
Definition d_path.h:19
dPnt * m_points
Definition d_path.h:25
u8 mArg0
Definition d_path.h:14
u8 mArg1
Definition d_path.h:11
Definition d_a_npc_cd2.h:39
s16 mMaxLmtY_NECK
Definition d_a_npc_cd2.h:45
f32 mCylH
Definition d_a_npc_cd2.h:58
f32 mMaxSpeed
Definition d_a_npc_cd2.h:56
s16 mMaxLmtX_NECK
Definition d_a_npc_cd2.h:44
s16 mMinLmtY_HEAD
Definition d_a_npc_cd2.h:51
f32 mAnmPlaySpeed
Definition d_a_npc_cd2.h:54
s16 mMinLmtY_BACKBONE
Definition d_a_npc_cd2.h:43
f32 mScale
Definition d_a_npc_cd2.h:52
f32 mCylR
Definition d_a_npc_cd2.h:59
f32 mChkWallH
Definition d_a_npc_cd2.h:60
f32 mWalkMaxSpeed
Definition d_a_npc_cd2.h:57
f32 mChkWallR
Definition d_a_npc_cd2.h:61
s16 mMaxLmtY_HEAD
Definition d_a_npc_cd2.h:49
s16 mMinLmtY_NECK
Definition d_a_npc_cd2.h:47
s16 mAttn
Definition d_a_npc_cd2.h:53
s16 mMaxLmtX_HEAD
Definition d_a_npc_cd2.h:48
s16 mMaxLmtY_BACKBONE
Definition d_a_npc_cd2.h:41
s16 mMinLmtX_HEAD
Definition d_a_npc_cd2.h:50
f32 mWalkAnmPlaySpeed
Definition d_a_npc_cd2.h:55
s16 mMinLmtX_NECK
Definition d_a_npc_cd2.h:46
s16 mMinLmtX_BACKBONE
Definition d_a_npc_cd2.h:42
s16 mMaxLmtX_BACKBONE
Definition d_a_npc_cd2.h:40
Definition d_a_npc_cd2.h:24
s16 field_0x0C[3]
Definition d_a_npc_cd2.h:26
f32 field_0x00[3]
Definition d_a_npc_cd2.h:25
Definition d_a_npc_cd2.h:29
void genMessage(JORMContext *)
daNpcCd2_HIO_Jnt_UnkStruct_s field_0x04
Definition d_a_npc_cd2.h:35
daNpcCd2_HIO_Jnt_c()
Definition d_a_npc_cd2.h:31
virtual ~daNpcCd2_HIO_Jnt_c()
Definition d_a_npc_cd2.h:30
Definition d_a_npc_cd2.h:64
daNpcCd2_HIO_MChild_c()
Definition d_a_npc_cd2.h:66
virtual ~daNpcCd2_HIO_MChild_c()
Definition d_a_npc_cd2.h:65
daNpcCd2_HIO_Jnt_c field_0x004[19]
Definition d_a_npc_cd2.h:68
daNpcCd2_HIO_Child_UnkStruct_s field_0x1D0
Definition d_a_npc_cd2.h:69
Definition d_a_npc_cd2.h:72
daNpcCd2_HIO_WChild_c()
Definition d_a_npc_cd2.h:74
daNpcCd2_HIO_Child_UnkStruct_s field_0x1FC
Definition d_a_npc_cd2.h:77
virtual ~daNpcCd2_HIO_WChild_c()
Definition d_a_npc_cd2.h:73
daNpcCd2_HIO_Jnt_c field_0x004[21]
Definition d_a_npc_cd2.h:76
Definition d_a_npc_cd2.h:80
daNpcCd2_HIO_WChild_c field_0x20c4[14]
Definition d_a_npc_cd2.h:87
void genMessage(JORMContext *)
virtual ~daNpcCd2_HIO_c()
Definition d_a_npc_cd2.h:82
daNpcCd2_HIO_MChild_c field_0x0004[16]
Definition d_a_npc_cd2.h:86
Definition f_op_actor_mng.h:95
Definition c_phase.h:19