Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_b_tn.h
Go to the documentation of this file.
1#ifndef D_A_B_TN_H
2#define D_A_B_TN_H
3
4#include "f_op/f_op_actor.h"
5#include "d/d_bg_s_acch.h"
6#include "d/d_cc_uty.h"
7#include "d/d_cc_d.h"
8
18class daB_TN_c : public fopEn_enemy_c {
19public:
21 /* 0x0 */ ACT_ROOMDEMO,
22 /* 0x1 */ ACT_OPENING,
23 /* 0x2 */ ACT_WAITH,
24 /* 0x3 */ ACT_CHASEH,
25 /* 0x4 */ ACT_ATTACKH,
27 /* 0x6 */ ACT_GUARDH,
28 /* 0x7 */ ACT_DAMAGEH,
29 /* 0x8 */ ACT_CHANGEDEMO,
30 /* 0x9 */ ACT_CHASEL,
31 /* 0xA */ ACT_ATTACKL,
33 /* 0xC */ ACT_GUARDL,
34 /* 0xD */ ACT_DAMAGEL,
35 /* 0xE */ ACT_ENDING,
36 /* 0xF */ ACT_YOROKE,
37 };
38
40 /* 0x0 */ ACTION2_0_e,
41 /* 0x1 */ ACTION2_1_e,
42 /* 0x2 */ ACTION2_2_e,
43 /* 0x3 */ ACTION2_3_e,
44 /* 0x4 */ ACTION2_4_e,
45 /* 0x5 */ ACTION2_5_e,
46 /* 0x6 */ ACTION2_6_e,
47 /* 0x7 */ ACTION2_7_e,
48 /* 0x8 */ ACTION2_8_e,
49 /* 0x9 */ ACTION2_9_e,
50 /* 0xA */ ACTION2_10_e,
51 /* 0xB */ ACTION2_11_e,
52 /* 0xC */ ACTION2_12_e,
53 /* 0xD */ ACTION2_13_e,
54 /* 0xE */ ACTION2_14_e,
55 /* 0xF */ ACTION2_15_e,
56 /* 0x10 */ ACTION2_16_e,
57 /* 0x11 */ ACTION2_17_e,
58
59 /* 0x14 */ ACTION2_20_e = 0x14,
60 /* 0x40 */ ACTION2_70_e = 0x40,
61 /* 0x46 */ ACTION2_76_e = 0x46,
62 /* 0x64 */ ACTION2_100_e = 100,
63 /* 0x65 */ ACTION2_101_e,
64 /* 0x66 */ ACTION2_102_e,
65 /* 0x67 */ ACTION2_103_e,
66 /* 0x68 */ ACTION2_104_e,
67 /* 0x69 */ ACTION2_105_e,
68 /* 0x6A */ ACTION2_106_e,
69 /* 0x6B */ ACTION2_107_e,
70 };
71
73 static int JointCallBack(J3DJoint*, int);
74 void calcNeckAngle();
75 void calcWaistAngle();
76 int draw();
77 void setBreakPart(int);
78 void setBreakHeadPart(int);
79 void setPartLandEffect(int, int);
80 void calcShieldMove();
81 void calcSwordMoveA();
82 void calcSwordMoveB();
83 void calcOtherPartMove(int);
84 void calcPartMove();
85 void setBck(int, u8, f32, f32);
86 int checkBck(int);
87 void setActionMode(int, int);
88 void setSwordAtBit(int);
89 void setSwordAtBreak(int);
90 void setBodyShield();
93 void setDamage(dCcD_Sph*, int);
95 void damage_check();
96 int checkMoveArea();
97 bool checkMoveAngle();
98 void setAttackBlurEffect(int);
99 void setArmorBreakEffect(int);
100 void demo_skip(int);
101 static int DemoSkipCallBack(void*, int);
102 void executeRoomDemo();
103 void executeOpening();
104 void executeWaitH();
105 void setAwaitSound();
106 void executeChaseH();
107 void checkStartAttackH();
108 void executeAttackH();
110 void executeGuardH();
111 void executeDamageH();
112 void executeChangeDemo();
114 void setWalkDir();
115 void initChaseL(int);
116 bool checkAttackAble();
117 bool checkNextMove();
118 void executeChaseL();
119 void executeAttackL();
121 void executeGuardL();
122 void executeDamageL();
123 void executeYoroke();
124 void executeEnding();
125 void executeZakoEnding();
126 void action();
127 void mtx_set();
128 void cc_set();
129 int execute();
130 int _delete();
131 int CreateHeap();
132 int create();
133
134private:
137 /* 0x05BC */ J3DModel* mpPartModels[16];
140 /* 0x0604 */ mDoExt_brkAnm* mpBrkAnms[16];
141 /* 0x0644 */ mDoExt_brkAnm* mpBrkAnm;
144 /* 0x06F0 */ int mActionMode1;
145 /* 0x06F4 */ int mActionMode2;
146 /* 0x06F8 */ u32 mShadowKey;
147 /* 0x06FC */ int field_0x6fc;
148 /* 0x0700 */ int field_0x700;
149 /* 0x0704 */ cXyz mCamEye;
150 /* 0x0710 */ cXyz mCamCenter;
151 /* 0x071C */ f32 mCamFovY;
152 /* 0x0720 */ s16 field_0x720;
153 /* 0x0724 */ f32 field_0x724;
154 /* 0x0728 */ f32 mMaterialColor;
155 /* 0x072C */ Mtx mNewTRMtx;
156 /* 0x075C */ cXyz mPositions[16];
157 /* 0x081C */ cXyz mPositionsCopy[16];
158 /* 0x08DC */ cXyz field_0x8dc[16];
159 /* 0x099C */ csXyz field_0x99c[16];
160 /* 0x09FC */ u16 mStates[16];
161 /* 0x0A1C */ u16 field_0xa1c[16];
162 /* 0x0A3C */ s16 field_0xa3c[16];
163 /* 0x0A5C */ s16 field_0xa5c;
164 /* 0x0A60 */ int mTimer9;
165 /* 0x0A64 */ s16 field_0xa64;
166 /* 0x0A66 */ s16 field_0xa66;
168 /* 0x0A6C */ int mTimer1;
169 /* 0x0A70 */ int mTimer3;
170 /* 0x0A74 */ int mTimer6;
171 /* 0x0A78 */ int mNextBreakPart;
172 /* 0x0A7C */ int mTimer4;
173 /* 0x0A80 */ int mTimer5;
174 /* 0x0A84 */ int mTimer7;
175 /* 0x0A88 */ int mVibrationTimer;
176 /* 0x0A8C */ int mWalkDir;
177 /* 0x0A90 */ u8 mUpdateModelTimer;
178 /* 0x0A91 */ bool field_0xa91;
179 /* 0x0A92 */ u8 mNextActionMode2;
180 /* 0x0A93 */ bool mUpdateNeckAngle;
181 /* 0x0A94 */ bool mUpdateWaistAngle;
182 /* 0x0A96 */ s16 mNeckAngle;
183 /* 0x0A98 */ s16 mWaistAngle;
184 /* 0x0A9A */ bool field_0xa9a;
185 /* 0x0A9B */ u8 mActionMode2Copy;
186 /* 0x0A9C */ u8 field_0xa9c;
187 /* 0x0A9D */ u8 field_0xa9d;
188 /* 0x0A9E */ bool mDisappear;
189 /* 0x0A9F */ bool mCutFlag;
190 /* 0x0AA0 */ bool mSphCSmallFlag;
191 /* 0x0AA1 */ bool mChkCoHitOK;
192 /* 0x0AA2 */ u8 field_0xaa2;
193 /* 0x0AA3 */ u8 mBrkAnmFrame;
194 /* 0x0AA4 */ u8 mSwitchNo;
195 /* 0x0AA5 */ u8 mType;
196 /* 0x0AA6 */ u8 mType2;
197 /* 0x0AA7 */ u8 mTimer10;
198 /* 0x0AA8 */ bool field_0xaa8;
199 /* 0x0AA9 */ u8 mTimer12;
200 /* 0x0AAA */ u8 mTimer13;
201 /* 0x0AAB */ u8 mCutJumpStatus;
202 /* 0x0AAC */ bool mInactive;
203 /* 0x0AAD */ bool mStayNo2Flag;
204 /* 0x0AAE */ u8 mBlendStatus;
205 /* 0x0AB0 */ f32 mBlend;
206 /* 0x0AB4 */ char* mArcName;
207 /* 0x0AB8 */ dBgS_AcchCir mAcchCir;
208 /* 0x0AF8 */ dBgS_ObjAcch mAcch;
209 /* 0x0CD0 */ dBgS_AcchCir mAcchCirArr[16];
210 /* 0x10D0 */ dBgS_ObjAcch mAcchArr[16];
211 /* 0x2E50 */ dCcD_Stts mStts1;
212 /* 0x2E8C */ dCcD_Stts mStts2;
213 /* 0x2EC8 */ dCcD_Sph mSphA[3];
214 /* 0x3270 */ dCcD_Sph mSphB[3];
215 /* 0x3618 */ dCcD_Sph mSphC;
216 /* 0x3750 */ dCcD_Sph mSwordSphs[4];
217 /* 0x3C30 */ dCcD_Cps mCps;
218 /* 0x3D74 */ dCcD_Sph mSphD;
219 /* 0x3EAC */ cXyz mCpsPos;
220 /* 0x3EB8 */ dCcU_AtInfo mAtInfo;
221 /* 0x3EDC */ dCcD_Stts mSttsArr[16];
222 /* 0x429C */ dCcD_Sph mSphArr[16];
223 /* 0x561C */ u32 mParticleKeys[4];
224 /* 0x562C */ u8 mHioInit;
225};
226
227STATIC_ASSERT(sizeof(daB_TN_c) == 0x5630);
228
229#endif /* D_A_B_TN_H */
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition Z2Creature.h:37
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:15
Definition d_bg_s_acch.h:247
Definition d_cc_d.h:441
Definition d_cc_d.h:473
Definition d_cc_d.h:269
Darknut.
Definition d_a_b_tn.h:18
void executeGuardH()
Definition d_a_b_tn.cpp:2563
void executeRoomDemo()
Definition d_a_b_tn.cpp:1676
void setBreakPart(int)
Definition d_a_b_tn.cpp:420
u8 mHioInit
Definition d_a_b_tn.h:224
int field_0x700
Definition d_a_b_tn.h:148
void executeWaitH()
Definition d_a_b_tn.cpp:2022
void setBodyShield()
Definition d_a_b_tn.cpp:962
void executeChaseH()
Definition d_a_b_tn.cpp:2054
u8 field_0xaa2
Definition d_a_b_tn.h:192
void setActionMode(int, int)
Definition d_a_b_tn.cpp:913
u8 mSwitchNo
Definition d_a_b_tn.h:194
void setAttackBlurEffect(int)
Definition d_a_b_tn.cpp:1555
cXyz mCpsPos
Definition d_a_b_tn.h:219
bool checkNormalAttackAble()
Definition d_a_b_tn.cpp:1065
cXyz mPositions[16]
Definition d_a_b_tn.h:156
int mTimer9
Definition d_a_b_tn.h:164
request_of_phase_process_class mPhaseReq2
Definition d_a_b_tn.h:136
int mWalkDir
Definition d_a_b_tn.h:176
f32 field_0x724
Definition d_a_b_tn.h:153
void action()
Definition d_a_b_tn.cpp:4433
int mActionMode1
Definition d_a_b_tn.h:144
void executeDamageL()
Definition d_a_b_tn.cpp:4042
dCcD_Sph mSphA[3]
Definition d_a_b_tn.h:213
u32 mParticleKeys[4]
Definition d_a_b_tn.h:223
void executeZakoEnding()
Definition d_a_b_tn.cpp:4359
int mTimer5
Definition d_a_b_tn.h:173
void executeAttackL()
Definition d_a_b_tn.cpp:3657
mDoExt_McaMorfSO * mpModelMorf2
Definition d_a_b_tn.h:139
f32 mMaterialColor
Definition d_a_b_tn.h:154
u8 mBlendStatus
Definition d_a_b_tn.h:204
dCcU_AtInfo mAtInfo
Definition d_a_b_tn.h:220
cXyz mCamEye
Definition d_a_b_tn.h:149
mDoExt_McaMorfSO * mpModelMorf1
Definition d_a_b_tn.h:138
u8 field_0xa9c
Definition d_a_b_tn.h:186
void calcOtherPartMove(int)
Definition d_a_b_tn.cpp:738
bool field_0xa9a
Definition d_a_b_tn.h:184
s16 field_0x720
Definition d_a_b_tn.h:152
cXyz mPositionsCopy[16]
Definition d_a_b_tn.h:157
void executeAttackShieldH()
Definition d_a_b_tn.cpp:2528
u8 mType2
Definition d_a_b_tn.h:196
bool mDisappear
Definition d_a_b_tn.h:188
void damage_check()
Definition d_a_b_tn.cpp:1230
void calcPartMove()
Definition d_a_b_tn.cpp:866
void mtx_set()
Definition d_a_b_tn.cpp:4583
int mVibrationTimer
Definition d_a_b_tn.h:175
cXyz field_0x8dc[16]
Definition d_a_b_tn.h:158
Z2CreatureEnemy mSound
Definition d_a_b_tn.h:143
void executeChaseL()
Definition d_a_b_tn.cpp:3370
void executeOpening()
Definition d_a_b_tn.cpp:1825
void executeZakoChangeDemo()
Definition d_a_b_tn.cpp:2931
int mTimer7
Definition d_a_b_tn.h:174
bool mUpdateNeckAngle
Definition d_a_b_tn.h:180
f32 mBlend
Definition d_a_b_tn.h:205
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_b_tn.cpp:276
void setArmorBreakEffect(int)
Definition d_a_b_tn.cpp:1576
u8 mTimer12
Definition d_a_b_tn.h:199
u8 mBrkAnmFrame
Definition d_a_b_tn.h:193
void setSwordAtBreak(int)
Definition d_a_b_tn.cpp:947
dBgS_ObjAcch mAcch
Definition d_a_b_tn.h:208
void setBck(int, u8, f32, f32)
Definition d_a_b_tn.cpp:904
int create()
Definition d_a_b_tn.cpp:5030
static int JointCallBack(J3DJoint *, int)
Definition d_a_b_tn.cpp:291
void calcWaistAngle()
Definition d_a_b_tn.cpp:324
void executeChangeDemo()
Definition d_a_b_tn.cpp:2678
int mTimer4
Definition d_a_b_tn.h:172
f32 mCamFovY
Definition d_a_b_tn.h:151
void executeEnding()
Definition d_a_b_tn.cpp:4179
void initChaseL(int)
Definition d_a_b_tn.cpp:3110
int mTimer6
Definition d_a_b_tn.h:170
dBgS_ObjAcch mAcchArr[16]
Definition d_a_b_tn.h:210
bool mSphCSmallFlag
Definition d_a_b_tn.h:190
dCcD_Stts mSttsArr[16]
Definition d_a_b_tn.h:221
bool mInactive
Definition d_a_b_tn.h:202
char * mArcName
Definition d_a_b_tn.h:206
u8 mTimer10
Definition d_a_b_tn.h:197
daB_TN_ACTION1
Definition d_a_b_tn.h:20
@ ACT_ROOMDEMO
Definition d_a_b_tn.h:21
@ ACT_DAMAGEH
Definition d_a_b_tn.h:28
@ ACT_CHASEH
Definition d_a_b_tn.h:24
@ ACT_GUARDL
Definition d_a_b_tn.h:33
@ ACT_ENDING
Definition d_a_b_tn.h:35
@ ACT_WAITH
Definition d_a_b_tn.h:23
@ ACT_OPENING
Definition d_a_b_tn.h:22
@ ACT_GUARDH
Definition d_a_b_tn.h:27
@ ACT_ATTACKSHIELDL
Definition d_a_b_tn.h:32
@ ACT_ATTACKL
Definition d_a_b_tn.h:31
@ ACT_ATTACKH
Definition d_a_b_tn.h:25
@ ACT_DAMAGEL
Definition d_a_b_tn.h:34
@ ACT_YOROKE
Definition d_a_b_tn.h:36
@ ACT_CHASEL
Definition d_a_b_tn.h:30
@ ACT_CHANGEDEMO
Definition d_a_b_tn.h:29
@ ACT_ATTACKSHIELDH
Definition d_a_b_tn.h:26
int draw()
Definition d_a_b_tn.cpp:350
void setWalkDir()
Definition d_a_b_tn.cpp:3054
void calcShieldMove()
Definition d_a_b_tn.cpp:536
dCcD_Sph mSphD
Definition d_a_b_tn.h:218
static int DemoSkipCallBack(void *, int)
Definition d_a_b_tn.cpp:1667
void executeAttackShieldL()
Definition d_a_b_tn.cpp:3877
s16 field_0xa64
Definition d_a_b_tn.h:165
dCcD_Cps mCps
Definition d_a_b_tn.h:217
int execute()
Definition d_a_b_tn.cpp:4831
int mNextBreakPart
Definition d_a_b_tn.h:171
bool field_0xa91
Definition d_a_b_tn.h:178
void setSwordAtBit(int)
Definition d_a_b_tn.cpp:919
u32 mShadowKey
Definition d_a_b_tn.h:146
void checkStartAttackH()
Definition d_a_b_tn.cpp:2363
bool checkAttackAble()
Definition d_a_b_tn.cpp:3195
csXyz field_0x99c[16]
Definition d_a_b_tn.h:159
J3DModel * mpPartModels[16]
Definition d_a_b_tn.h:137
bool mCutFlag
Definition d_a_b_tn.h:189
bool field_0xaa8
Definition d_a_b_tn.h:198
bool checkNextMove()
Definition d_a_b_tn.cpp:3205
s16 mNeckAngle
Definition d_a_b_tn.h:182
dCcD_Sph mSphC
Definition d_a_b_tn.h:215
dCcD_Stts mStts1
Definition d_a_b_tn.h:211
int _delete()
Definition d_a_b_tn.cpp:4912
void setAwaitSound()
Definition d_a_b_tn.cpp:2044
bool mUpdateWaistAngle
Definition d_a_b_tn.h:181
u16 field_0xa1c[16]
Definition d_a_b_tn.h:161
u32 getCutType()
Definition d_a_b_tn.cpp:1088
s16 field_0xa5c
Definition d_a_b_tn.h:163
mDoExt_brkAnm * mpBrkAnms[16]
Definition d_a_b_tn.h:140
void calcSwordMoveB()
Definition d_a_b_tn.cpp:687
void calcNeckAngle()
Definition d_a_b_tn.cpp:303
bool checkMoveAngle()
Definition d_a_b_tn.cpp:1550
void cc_set()
Definition d_a_b_tn.cpp:4658
u8 field_0xa9d
Definition d_a_b_tn.h:187
daB_TN_ACTION2
Definition d_a_b_tn.h:39
@ ACTION2_13_e
Definition d_a_b_tn.h:53
@ ACTION2_11_e
Definition d_a_b_tn.h:51
@ ACTION2_10_e
Definition d_a_b_tn.h:50
@ ACTION2_107_e
Definition d_a_b_tn.h:69
@ ACTION2_100_e
Definition d_a_b_tn.h:62
@ ACTION2_105_e
Definition d_a_b_tn.h:67
@ ACTION2_6_e
Definition d_a_b_tn.h:46
@ ACTION2_70_e
Definition d_a_b_tn.h:60
@ ACTION2_102_e
Definition d_a_b_tn.h:64
@ ACTION2_3_e
Definition d_a_b_tn.h:43
@ ACTION2_0_e
Definition d_a_b_tn.h:40
@ ACTION2_106_e
Definition d_a_b_tn.h:68
@ ACTION2_17_e
Definition d_a_b_tn.h:57
@ ACTION2_9_e
Definition d_a_b_tn.h:49
@ ACTION2_7_e
Definition d_a_b_tn.h:47
@ ACTION2_15_e
Definition d_a_b_tn.h:55
@ ACTION2_16_e
Definition d_a_b_tn.h:56
@ ACTION2_8_e
Definition d_a_b_tn.h:48
@ ACTION2_76_e
Definition d_a_b_tn.h:61
@ ACTION2_4_e
Definition d_a_b_tn.h:44
@ ACTION2_5_e
Definition d_a_b_tn.h:45
@ ACTION2_20_e
Definition d_a_b_tn.h:59
@ ACTION2_14_e
Definition d_a_b_tn.h:54
@ ACTION2_2_e
Definition d_a_b_tn.h:42
@ ACTION2_101_e
Definition d_a_b_tn.h:63
@ ACTION2_104_e
Definition d_a_b_tn.h:66
@ ACTION2_12_e
Definition d_a_b_tn.h:52
@ ACTION2_103_e
Definition d_a_b_tn.h:65
@ ACTION2_1_e
Definition d_a_b_tn.h:41
int CreateHeap()
Definition d_a_b_tn.cpp:4930
Mtx mNewTRMtx
Definition d_a_b_tn.h:155
void calcSwordMoveA()
Definition d_a_b_tn.cpp:605
void setPartLandEffect(int, int)
Definition d_a_b_tn.cpp:495
dCcD_Sph mSwordSphs[4]
Definition d_a_b_tn.h:216
u8 mCutJumpStatus
Definition d_a_b_tn.h:201
u8 mType
Definition d_a_b_tn.h:195
void executeDamageH()
Definition d_a_b_tn.cpp:2605
int field_0x6fc
Definition d_a_b_tn.h:147
u8 mTimer13
Definition d_a_b_tn.h:200
int mActionMode2
Definition d_a_b_tn.h:145
int checkBck(int)
Definition d_a_b_tn.cpp:909
dBgS_AcchCir mAcchCir
Definition d_a_b_tn.h:207
s16 field_0xa3c[16]
Definition d_a_b_tn.h:162
dCcD_Sph mSphArr[16]
Definition d_a_b_tn.h:222
void executeAttackH()
Definition d_a_b_tn.cpp:2413
s16 mInvincibilityTimer
Definition d_a_b_tn.h:167
cXyz mCamCenter
Definition d_a_b_tn.h:150
u8 mUpdateModelTimer
Definition d_a_b_tn.h:177
void executeYoroke()
Definition d_a_b_tn.cpp:4123
s16 field_0xa66
Definition d_a_b_tn.h:166
u8 mActionMode2Copy
Definition d_a_b_tn.h:185
dBgS_AcchCir mAcchCirArr[16]
Definition d_a_b_tn.h:209
void executeGuardL()
Definition d_a_b_tn.cpp:3930
bool mChkCoHitOK
Definition d_a_b_tn.h:191
J3DModel * swordEffectModel
Definition d_a_b_tn.h:142
void setBreakHeadPart(int)
Definition d_a_b_tn.cpp:458
int mTimer3
Definition d_a_b_tn.h:169
void setShieldEffect(dCcD_Sph *)
Definition d_a_b_tn.cpp:1225
u8 mNextActionMode2
Definition d_a_b_tn.h:179
bool mStayNo2Flag
Definition d_a_b_tn.h:203
void setDamage(dCcD_Sph *, int)
Definition d_a_b_tn.cpp:1144
void demo_skip(int)
Definition d_a_b_tn.cpp:1633
dCcD_Stts mStts2
Definition d_a_b_tn.h:212
request_of_phase_process_class mPhaseReq1
Definition d_a_b_tn.h:135
dCcD_Sph mSphB[3]
Definition d_a_b_tn.h:214
mDoExt_brkAnm * mpBrkAnm
Definition d_a_b_tn.h:141
u16 mStates[16]
Definition d_a_b_tn.h:160
int checkMoveArea()
Definition d_a_b_tn.cpp:1530
int mTimer1
Definition d_a_b_tn.h:168
s16 mWaistAngle
Definition d_a_b_tn.h:183
Definition f_op_actor.h:285
Definition m_Do_ext.h:331
Definition m_Do_ext.h:94
STATIC_ASSERT(sizeof(daB_TN_c)==0x5630)
f32 Mtx[3][4]
Definition mtx.h:25
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition c_xyz.h:7
Definition d_cc_uty.h:20
Definition c_phase.h:17