Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_b_dr.h
Go to the documentation of this file.
1#ifndef D_A_B_DR_H
2#define D_A_B_DR_H
3
6#include "d/d_cc_d.h"
7#include "d/d_msg_flow.h"
8#include "d/d_bg_s_acch.h"
9#include "m_Do/m_Do_hostIO.h"
10
19class daB_DR_c : public fopEn_enemy_c {
20public:
21 /* 805BAF80 */ int ctrlJoint(J3DJoint*, J3DModel*);
22 /* 805BB120 */ static int JointCallBack(J3DJoint*, int);
23 /* 805BB16C */ int draw();
24 /* 805BB408 */ void setBck(int, u8, f32, f32);
25 /* 805BB4B4 */ void setActionMode(int, int);
26 /* 805BB4CC */ void mGlider_WindPosSet();
27 /* 805BB540 */ void mBoot_c_tranceSet(bool);
28 /* 805BB64C */ void mStatusONOFF(int);
29 /* 805BB6E8 */ void setSe();
30 /* 805BBFC0 */ void setDeathLightEffect();
31 /* 805BC0B8 */ void chkPartCreate(bool);
32 /* 805BC248 */ void mHabatakiAnmSet(int);
33 /* 805BC57C */ void mGlider_AniSet(bool);
34 /* 805BC8B4 */ void mGliderAtAniSet();
35 /* 805BCA10 */ void tail_hit_check();
36 /* 805BCAD4 */ void week_hit_check();
37 /* 805BCBD0 */ void mTimerClr();
38 /* 805BCBF4 */ void mCountClr();
39 /* 805BCC18 */ void mAllClr();
40 /* 805BCC4C */ void mHeadAngleSet();
41 /* 805BCD7C */ bool flapMove(bool);
42 /* 805BCEA4 */ bool revolutionMove();
43 /* 805BD05C */ bool mPlayerHighCheck();
44 /* 805BD15C */ bool mBgFallGroundCheck();
45 /* 805BD3E4 */ void normalHoverMove();
46 /* 805BD5FC */ void executeWait();
47 /* 805BD98C */ void executeFlyWait();
48 /* 805BDBC4 */ void executeTailHit();
49 /* 805BE9B4 */ void executeWeekHit();
50 /* 805BF4C8 */ void mBreathSet();
51 /* 805BF768 */ bool mBreathHighSet(bool);
52 /* 805BFA6C */ bool mFeintBreath();
53 /* 805BFD88 */ void executeBreathAttack();
54 /* 805C062C */ void executeWindAttack();
55 /* 805C0CAC */ bool mGliderMoveSub(f32);
56 /* 805C0EF8 */ void executeGliderAttack();
57 /* 805C1E0C */ void executePillarSearch();
58 /* 805C24BC */ void executePillarWait();
59 /* 805C2BE8 */ bool startDemoCheck();
60 /* 805C2CD0 */ void executeDamageDemo();
61 /* 805C3558 */ void executeMiddleDemo();
62 /* 805C36A4 */ void executeDead();
63 /* 805C382C */ void executeBullet();
64 /* 805C39D8 */ void executeParts();
65 /* 805C3CB0 */ void action();
66 /* 805C40E0 */ void action_fire();
67 /* 805C4130 */ void action_parts();
68 /* 805C41A4 */ void mtx_set();
69 /* 805C4684 */ void parts_mtx_set();
70 /* 805C46E0 */ void cc_set();
71 /* 805C4E14 */ void down_cc_set();
72 /* 805C4FB4 */ void demo_skip(int);
73 /* 805C50BC */ static int DemoSkipCallBack(void*, int);
74 /* 805C50F0 */ int execute();
75 /* 805C55B0 */ int _delete();
76 /* 805C56A4 */ int CreateHeap();
77 /* 805C5974 */ int create();
78 /* 805C62B0 */ daB_DR_c();
79
81
82 void onTarget() { mTarget = true; }
83 bool isBack() { return arg0; }
84
85private:
88 /* 0x05B8 */ J3DModel* mpPartModel;
89 /* 0x05BC */ mDoExt_brkAnm* mpCoreBrk;
90 /* 0x05C0 */ Z2CreatureEnemy mSound;
92 /* 0x0708 */ int mActionMode;
93 /* 0x070C */ int mMoveMode;
94 /* 0x0710 */ int mAnm;
95 /* 0x0714 */ u8 field_0x714[0x0718 - 0x0714];
96 /* 0x0718 */ int field_0x718;
97 /* 0x071C */ u32 mShadowKey;
98 /* 0x0720 */ f32 mTargetHeight;
99 /* 0x0724 */ f32 field_0x724;
100 /* 0x0728 */ f32 field_0x728;
101 /* 0x072C */ f32 field_0x72c;
102 /* 0x0730 */ f32 field_0x730;
103 /* 0x0734 */ f32 field_0x734;
104 /* 0x0738 */ f32 field_0x738;
105 /* 0x073C */ f32 field_0x73c;
106 /* 0x0740 */ f32 field_0x740;
107 /* 0x0744 */ f32 field_0x744;
108 /* 0x0748 */ f32 field_0x748;
109 /* 0x074C */ s16 field_0x74c;
110 /* 0x074E */ s16 field_0x74e;
111 /* 0x0750 */ s16 field_0x750;
112 /* 0x0752 */ s16 field_0x752;
113 /* 0x0754 */ s16 field_0x754;
114 /* 0x0756 */ s16 field_0x756;
115 /* 0x0758 */ csXyz mHeadAngle;
116 /* 0x0760 */ cXyz field_0x760;
117 /* 0x076C */ cXyz mBoot_c_trance;
118 /* 0x0778 */ cXyz field_0x778;
119 /* 0x0784 */ cXyz field_0x784;
120 /* 0x0790 */ cXyz field_0x790;
121 /* 0x079C */ cXyz mGlider_WindPos;
122 /* 0x07A8 */ cXyz field_0x7a8;
123 /* 0x07B4 */ cXyz field_0x7b4;
124 /* 0x07C0 */ int mTimer[4];
125 /* 0x07D0 */ u8 field_0x7d0;
126 /* 0x07D1 */ u8 field_0x7d1;
127 /* 0x07D2 */ u8 mBreakPartsNo;
128 /* 0x07D3 */ u8 field_0x7d3;
129 /* 0x07D4 */ u8 field_0x7d4;
130 /* 0x07D5 */ u8 field_0x7d5;
131 /* 0x07D6 */ u8 field_0x7d6;
132 /* 0x07D7 */ u8 field_0x7d7;
133 /* 0x07D8 */ u8 field_0x7d8;
134 /* 0x07D9 */ u8 mTarget;
135 /* 0x07DA */ u8 field_0x7da;
136 /* 0x07DB */ u8 field_0x7db;
137 /* 0x07DC */ u8 field_0x7dc;
138 /* 0x07E0 */ int field_0x7e0;
139 /* 0x07E4 */ u8 mCount[4];
140 /* 0x07E8 */ u8 field_0x7e8;
141 /* 0x07E9 */ u8 field_0x7e9;
142 /* 0x07EA */ u8 arg0;
143 /* 0x07EB */ u8 mPartNo;
144 /* 0x07EC */ u8 bitSw;
145 /* 0x07ED */ u8 bitSw2;
146 /* 0x07EE */ u8 bitSw3;
147 /* 0x07F0 */ dBgS_AcchCir mAcchCir;
148 /* 0x0830 */ dBgS_ObjAcch mAcch;
150 /* 0x0A44 */ dCcD_Cyl mWeekCc;
151 /* 0x0B80 */ dCcD_Sph mFootAtCc[2];
152 /* 0x0DF0 */ dCcD_Sph field_0xdf0;
153 /* 0x0F28 */ dCcD_Sph mBreathAtCc;
154 /* 0x1060 */ dCcD_Sph mWindAtCc;
155 /* 0x1198 */ dCcD_Sph mWindAtCc2;
156 /* 0x12D0 */ dCcD_Sph mWindAtCc3;
157 /* 0x1408 */ dCcD_Sph mTailCc;
158 /* 0x1540 */ dCcD_Cyl mPillarCc;
159 /* 0x167C */ dCcD_Sph mDownSphCc[9];
160 /* 0x2174 */ dCcD_Cyl mDownCc[5];
161 /* 0x27A0 */ u8 field_0x27A0[0x27A8 - 0x27A0];
163 /* 0x27AC */ u8 field_0x27AC[0x27BE - 0x27AC];
164 /* 0x27BE */ u8 field_0x27be;
165 /* 0x27BF */ u8 field_0x27bf[0x27C4 - 0x27BF];
166 /* 0x27C4 */ cXyz mDemoCamEye;
167 /* 0x27D0 */ cXyz mDemoCamCenter;
168 /* 0x27DC */ u32 field_0x27dc[4];
169 /* 0x27EC */ u32 field_0x27ec[4];
170 /* 0x27FC */ u32 field_0x27fc[4];
171 /* 0x280C */ u32 field_0x280c;
172 /* 0x2810 */ u8 mInitHIO;
173 /* 0x2814 */ dMsgFlow_c mMsgFlow;
174};
175
176STATIC_ASSERT(sizeof(daB_DR_c) == 0x2860);
177
178
180public:
181 /* 805BAE6C */ daB_DR_HIO_c();
182 /* 805C6B94 */ virtual ~daB_DR_HIO_c() {}
183
185
186 /* 0x04 */ s8 field_0x4;
187 /* 0x08 */ f32 model_size;
188 /* 0x0C */ f32 fall_accel;
189 /* 0x10 */ f32 fall_accel_max;
191 /* 0x18 */ f32 unk_0x18;
196 /* 0x2C */ f32 unk_0x2c;
206 /* 0x46 */ s16 no_attack_time;
207 /* 0x48 */ s16 unk_0x48;
209 /* 0x4C */ s16 unk_0x4c;
219 /* 0x60 */ s16 feint_angle;
220 /* 0x62 */ s16 unk_0x62;
221 /* 0x64 */ u8 display_range;
223};
224
225#endif /* D_A_B_DR_H */
Definition JORMContext.h:96
Definition JORReflexible.h:43
Definition Z2Creature.h:37
Definition d_cc_d.h:435
Definition d_msg_flow.h:35
Definition d_a_b_dr.h:179
f32 glide_wind_power
Definition d_a_b_dr.h:194
f32 unk_0x2c
Definition d_a_b_dr.h:196
virtual ~daB_DR_HIO_c()
Definition d_a_b_dr.h:182
s16 after_breath_chance_time
Definition d_a_b_dr.h:211
daB_DR_HIO_c()
Definition d_a_b_dr.cpp:207
s16 body_search2_speed
Definition d_a_b_dr.h:216
s16 breath_continue_time
Definition d_a_b_dr.h:201
s16 breath_feint2_time
Definition d_a_b_dr.h:204
s16 neck_search_speed_max
Definition d_a_b_dr.h:214
s16 body_search_feint_speed_max
Definition d_a_b_dr.h:218
s16 center_wind_time
Definition d_a_b_dr.h:200
f32 wind_large_attack_lockon_range
Definition d_a_b_dr.h:190
f32 breath_move_speed_max
Definition d_a_b_dr.h:197
s16 tail_hit_chance_time
Definition d_a_b_dr.h:199
f32 fall_accel_max
Definition d_a_b_dr.h:189
s16 unk_0x48
Definition d_a_b_dr.h:207
f32 model_size
Definition d_a_b_dr.h:187
f32 wind_attack_power
Definition d_a_b_dr.h:193
f32 breath_move_speed_min
Definition d_a_b_dr.h:198
s16 no_attack_no_armor_time
Definition d_a_b_dr.h:208
s16 feint_angle
Definition d_a_b_dr.h:219
s16 no_attack_time
Definition d_a_b_dr.h:206
s16 breath_feint1_time
Definition d_a_b_dr.h:203
s16 unk_0x4c
Definition d_a_b_dr.h:209
s16 breath_continue_no_armor_time
Definition d_a_b_dr.h:202
s16 back_hit_chance_time
Definition d_a_b_dr.h:210
void genMessage(JORMContext *)
s16 body_search_speed_max
Definition d_a_b_dr.h:217
f32 wind_small_attack_power
Definition d_a_b_dr.h:192
u8 breath_feint2_OFF
Definition d_a_b_dr.h:222
u8 display_range
Definition d_a_b_dr.h:221
s16 neck_search_speed
Definition d_a_b_dr.h:212
f32 unk_0x18
Definition d_a_b_dr.h:191
s8 field_0x4
Definition d_a_b_dr.h:186
s16 body_search_speed
Definition d_a_b_dr.h:215
s16 breath_feint3_time
Definition d_a_b_dr.h:205
s16 unk_0x62
Definition d_a_b_dr.h:220
f32 breath_attack_threshold
Definition d_a_b_dr.h:195
s16 neck_search2_speed
Definition d_a_b_dr.h:213
f32 fall_accel
Definition d_a_b_dr.h:188
Argorok.
Definition d_a_b_dr.h:19
u8 field_0x7d7
Definition d_a_b_dr.h:132
dCcD_Sph mWindAtCc2
Definition d_a_b_dr.h:155
void mHeadAngleSet()
Definition d_a_b_dr.cpp:1017
u8 bitSw
Definition d_a_b_dr.h:144
s16 field_0x752
Definition d_a_b_dr.h:112
bool mBreathHighSet(bool)
Definition d_a_b_dr.cpp:2005
void down_cc_set()
Definition d_a_b_dr.cpp:3763
dCcD_Sph mFootAtCc[2]
Definition d_a_b_dr.h:151
dCcD_Sph mWindAtCc3
Definition d_a_b_dr.h:156
u8 field_0x27bf[0x27C4 - 0x27BF]
Definition d_a_b_dr.h:165
s16 field_0x74c
Definition d_a_b_dr.h:109
void executeBullet()
Definition d_a_b_dr.cpp:3311
cXyz field_0x7b4
Definition d_a_b_dr.h:123
u8 mPartNo
Definition d_a_b_dr.h:143
u8 field_0x27A0[0x27A8 - 0x27A0]
Definition d_a_b_dr.h:161
Z2CreatureEnemy mSound2
Definition d_a_b_dr.h:91
int create()
Definition d_a_b_dr.cpp:4053
void executeGliderAttack()
Definition d_a_b_dr.cpp:2519
void action_fire()
Definition d_a_b_dr.cpp:3552
u8 field_0x7d1
Definition d_a_b_dr.h:126
void executeWait()
Definition d_a_b_dr.cpp:1236
u8 field_0x27be
Definition d_a_b_dr.h:164
void executeWindAttack()
Definition d_a_b_dr.cpp:2360
Z2CreatureEnemy * field_0x27a8
Definition d_a_b_dr.h:162
Z2CreatureEnemy mSound
Definition d_a_b_dr.h:90
u8 field_0x7dc
Definition d_a_b_dr.h:137
dBgS_ObjAcch mAcch
Definition d_a_b_dr.h:148
int CreateHeap()
Definition d_a_b_dr.cpp:4003
dCcD_Sph mDownSphCc[9]
Definition d_a_b_dr.h:159
void executeParts()
Definition d_a_b_dr.cpp:3355
void mTimerClr()
Definition d_a_b_dr.cpp:997
static int JointCallBack(J3DJoint *, int)
Definition d_a_b_dr.cpp:292
void setSe()
Definition d_a_b_dr.cpp:519
void executeMiddleDemo()
Definition d_a_b_dr.cpp:3240
void mGlider_WindPosSet()
Definition d_a_b_dr.cpp:461
f32 field_0x738
Definition d_a_b_dr.h:104
u8 field_0x7d6
Definition d_a_b_dr.h:131
u8 field_0x7e8
Definition d_a_b_dr.h:140
void mBoot_c_tranceSet(bool)
Definition d_a_b_dr.cpp:473
u8 field_0x7e9
Definition d_a_b_dr.h:141
void onTarget()
Definition d_a_b_dr.h:82
s16 field_0x74e
Definition d_a_b_dr.h:110
int _delete()
Definition d_a_b_dr.cpp:3971
u8 bitSw2
Definition d_a_b_dr.h:145
void executeDamageDemo()
Definition d_a_b_dr.cpp:3044
u32 field_0x280c
Definition d_a_b_dr.h:171
request_of_phase_process_class mPhase
Definition d_a_b_dr.h:86
u32 field_0x27fc[4]
Definition d_a_b_dr.h:170
u8 field_0x27AC[0x27BE - 0x27AC]
Definition d_a_b_dr.h:163
cXyz field_0x784
Definition d_a_b_dr.h:119
f32 field_0x728
Definition d_a_b_dr.h:100
f32 field_0x73c
Definition d_a_b_dr.h:105
dMsgFlow_c mMsgFlow
Definition d_a_b_dr.h:173
int mActionMode
Definition d_a_b_dr.h:92
dCcD_Cyl mPillarCc
Definition d_a_b_dr.h:158
bool mPlayerHighCheck()
Definition d_a_b_dr.cpp:1138
u8 mInitHIO
Definition d_a_b_dr.h:172
void executeFlyWait()
Definition d_a_b_dr.cpp:1301
int field_0x7e0
Definition d_a_b_dr.h:138
cXyz mBoot_c_trance
Definition d_a_b_dr.h:117
bool flapMove(bool)
Definition d_a_b_dr.cpp:1057
dCcD_Stts mColliderStts
Definition d_a_b_dr.h:149
s16 field_0x756
Definition d_a_b_dr.h:114
bool mBgFallGroundCheck()
Definition d_a_b_dr.cpp:1160
dCcD_Cyl mWeekCc
Definition d_a_b_dr.h:150
static int DemoSkipCallBack(void *, int)
Definition d_a_b_dr.cpp:3842
s16 field_0x750
Definition d_a_b_dr.h:111
u8 field_0x7d4
Definition d_a_b_dr.h:129
int execute()
Definition d_a_b_dr.cpp:3852
u8 mBreakPartsNo
Definition d_a_b_dr.h:127
dCcD_Sph mBreathAtCc
Definition d_a_b_dr.h:153
void executeWeekHit()
Definition d_a_b_dr.cpp:1726
mDoExt_brkAnm * mpCoreBrk
Definition d_a_b_dr.h:89
u8 field_0x7d5
Definition d_a_b_dr.h:130
mDoExt_McaMorfSO * mpModelMorf
Definition d_a_b_dr.h:87
int field_0x718
Definition d_a_b_dr.h:96
void setActionMode(int, int)
Definition d_a_b_dr.cpp:453
dBgS_AcchCir mAcchCir
Definition d_a_b_dr.h:147
cXyz field_0x760
Definition d_a_b_dr.h:116
cXyz field_0x7a8
Definition d_a_b_dr.h:122
int mTimer[4]
Definition d_a_b_dr.h:124
f32 field_0x724
Definition d_a_b_dr.h:99
void chkPartCreate(bool)
Definition d_a_b_dr.cpp:712
void mtx_set()
Definition d_a_b_dr.cpp:3567
void executeDead()
Definition d_a_b_dr.cpp:3272
cXyz mGlider_WindPos
Definition d_a_b_dr.h:121
void action_parts()
Definition d_a_b_dr.cpp:3559
u8 field_0x714[0x0718 - 0x0714]
Definition d_a_b_dr.h:95
int draw()
Definition d_a_b_dr.cpp:306
f32 field_0x744
Definition d_a_b_dr.h:107
u8 field_0x7d0
Definition d_a_b_dr.h:125
cXyz mDemoCamCenter
Definition d_a_b_dr.h:167
csXyz mHeadAngle
Definition d_a_b_dr.h:115
f32 field_0x72c
Definition d_a_b_dr.h:101
MtxP getMtx()
Definition d_a_b_dr.h:80
cXyz field_0x778
Definition d_a_b_dr.h:118
void executePillarSearch()
Definition d_a_b_dr.cpp:2824
u8 bitSw3
Definition d_a_b_dr.h:146
void demo_skip(int)
Definition d_a_b_dr.cpp:3823
dCcD_Cyl mDownCc[5]
Definition d_a_b_dr.h:160
daB_DR_c()
Definition d_a_b_dr.cpp:4302
bool revolutionMove()
Definition d_a_b_dr.cpp:1092
void tail_hit_check()
Definition d_a_b_dr.cpp:961
bool startDemoCheck()
Definition d_a_b_dr.cpp:3025
void mStatusONOFF(int)
Definition d_a_b_dr.cpp:495
void mGliderAtAniSet()
Definition d_a_b_dr.cpp:935
dCcD_Sph mWindAtCc
Definition d_a_b_dr.h:154
f32 field_0x734
Definition d_a_b_dr.h:103
f32 mTargetHeight
Definition d_a_b_dr.h:98
f32 field_0x748
Definition d_a_b_dr.h:108
int mAnm
Definition d_a_b_dr.h:94
cXyz field_0x790
Definition d_a_b_dr.h:120
void mGlider_AniSet(bool)
Definition d_a_b_dr.cpp:883
u8 field_0x7d8
Definition d_a_b_dr.h:133
void setBck(int, u8, f32, f32)
Definition d_a_b_dr.cpp:447
void mAllClr()
Definition d_a_b_dr.cpp:1011
f32 field_0x730
Definition d_a_b_dr.h:102
u8 field_0x7d3
Definition d_a_b_dr.h:128
u8 field_0x7da
Definition d_a_b_dr.h:135
u32 field_0x27ec[4]
Definition d_a_b_dr.h:169
void executePillarWait()
Definition d_a_b_dr.cpp:2904
void parts_mtx_set()
Definition d_a_b_dr.cpp:3630
void setDeathLightEffect()
Definition d_a_b_dr.cpp:702
s16 field_0x754
Definition d_a_b_dr.h:113
u32 mShadowKey
Definition d_a_b_dr.h:97
void executeBreathAttack()
Definition d_a_b_dr.cpp:2123
f32 field_0x740
Definition d_a_b_dr.h:106
void week_hit_check()
Definition d_a_b_dr.cpp:978
int mMoveMode
Definition d_a_b_dr.h:93
void mHabatakiAnmSet(int)
Definition d_a_b_dr.cpp:828
u8 arg0
Definition d_a_b_dr.h:142
void normalHoverMove()
Definition d_a_b_dr.cpp:1214
u8 field_0x7db
Definition d_a_b_dr.h:136
dCcD_Sph field_0xdf0
Definition d_a_b_dr.h:152
dCcD_Sph mTailCc
Definition d_a_b_dr.h:157
u32 field_0x27dc[4]
Definition d_a_b_dr.h:168
J3DModel * mpPartModel
Definition d_a_b_dr.h:88
bool mGliderMoveSub(f32)
Definition d_a_b_dr.cpp:2486
void action()
Definition d_a_b_dr.cpp:3427
void executeTailHit()
Definition d_a_b_dr.cpp:1372
void mCountClr()
Definition d_a_b_dr.cpp:1004
void mBreathSet()
Definition d_a_b_dr.cpp:1962
bool isBack()
Definition d_a_b_dr.h:83
bool mFeintBreath()
Definition d_a_b_dr.cpp:2054
u8 mTarget
Definition d_a_b_dr.h:134
cXyz mDemoCamEye
Definition d_a_b_dr.h:166
u8 mCount[4]
Definition d_a_b_dr.h:139
void cc_set()
Definition d_a_b_dr.cpp:3638
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_b_dr.cpp:257
Definition f_op_actor.h:255
Definition m_Do_ext.h:84
STATIC_ASSERT(sizeof(daB_DR_c)==0x2860)
f32(* MtxP)[4]
Definition mtx.h:35
Definition d_a_hozelda.cpp:239
Definition d_a_hozelda.cpp:146
MtxP getAnmMtx(int jointNo)
Definition J3DModel.h:102
Definition d_a_hozelda.cpp:20
Definition d_a_hozelda.cpp:161
Definition d_a_npc_fguard.cpp:98
Definition d_a_npc_fguard.cpp:94
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc_fguard.cpp:70
Definition d_a_npc_fguard.cpp:23
J3DModel * getModel()
Definition m_Do_ext.h:334
Definition d_a_hozelda.cpp:14
signed char s8
Definition types.h:4
unsigned long u32
Definition types.h:9
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
unsigned char u8
Definition types.h:5