Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_kago.h
Go to the documentation of this file.
1#ifndef D_A_KAGO_H
2#define D_A_KAGO_H
3
4#include "d/d_bg_s_acch.h"
5#include "d/d_cc_d.h"
6#include "d/d_cc_uty.h"
7#include "d/d_msg_flow.h"
8#include "d/d_path.h"
10
19class daKago_c : public fopAc_ac_c {
20public:
21 int getBckName(int);
22 void setBck(int, u8, f32, f32);
23 bool checkBck(int);
24 int draw();
28 void checkMoveHeight();
29 void checkSizeBg();
31 void demo_skip(int);
32 static int DemoSkipCallBack(void*, int);
33 void setActionMode(int, int);
34 void setMidnaTagPos();
35 void setMidnaRideOn();
36 void setPlayerRideOn();
37 void setRideOff();
39 int setSceneChange(int);
40 void createBalloonScore();
41 void startBalloonScore();
42 void endBalloonScore();
44 void checkHeight();
45 bool checkYaguraPos(cXyz);
46 bool checkWallHitFall(int);
47 bool checkAttackStart();
51 void flySpeedCalcLockOn();
52 void flySpeedCalc(s16, int);
54 void setFlyAway();
55 void setFlyAnime();
56 void executeFly();
57 void executeStagger();
58 void executeWait();
59 bool calcAttackMove(int);
60 void executeAttack();
61 void calcCircleCamera(int);
62 void executeEvent();
63 void initPerchDemo();
64 bool executePerchDemo();
66 void executePerch();
67 void executeEvent2();
68 void initFirstDemo();
69 bool executeFirstDemo();
70 void executePerch2();
73 void executeLanding();
74 void moveDemoFly();
75 void setFlyEffect();
76 void setDashEffect();
77 void setDamageEffect();
78 void setDashBlurEffect(int);
79 void setWallHitEffect(cXyz, int);
80 void setSibukiEffect();
82 void setWaterFallEffect();
83 void setFlySound();
84 void action();
85 void mtx_set();
86 void cc_set();
87 int execute();
88 int _delete();
90 static int JointCallBack(J3DJoint*, int);
91 int CreateHeap();
92 int create();
93
94 void setEvent() {
95 mIsFlying = false;
97 field_0x744 = 0;
98 }
99
100 void setEvent2() {
101 mIsFlying = false;
102 mCurrentAction = 6;
103 field_0x744 = 0;
104 }
105
106 void setKagoPath(u8 i_pathNo) {
107 if (i_pathNo != 0xFF) {
108 mpPath2 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
109 }
110 }
111
112 void onWaterFall() {
113 field_0x6ea = 1;
114 }
115
116 bool isAttack() {
117 return field_0x6dd != 0;
118 }
119
122 s8 getPathDir() { return mPathDir; }
123 bool isFlying() { return mIsFlying; }
125 void setLockActor(fopAc_ac_c* actor) { mpLockActor = actor; }
126 void setEatYm() { field_0x6d8 |= 4; }
128
129private:
135 /* 0x620 */ Mtx mLegR3Mtx;
136 /* 0x650 */ cXyz field_0x650[3];
137 /* 0x674 */ cXyz field_0x674;
138 /* 0x680 */ cXyz field_0x680;
139 /* 0x68C */ cXyz field_0x68c;
140 /* 0x698 */ cXyz field_0x698;
141 /* 0x6A4 */ cXyz field_0x6a4;
142 /* 0x6B0 */ cXyz field_0x6b0;
143 /* 0x6BC */ s16 field_0x6bc;
144 /* 0x6BE */ csXyz field_0x6be;
145 /* 0x6C4 */ f32 field_0x6c4;
146 /* 0x6C8 */ s16 field_0x6c8;
147 /* 0x6CA */ s16 field_0x6ca;
148 /* 0x6CC */ f32 field_0x6cc;
149 /* 0x6D0 */ f32 field_0x6d0;
150 /* 0x6D4 */ f32 field_0x6d4;
151 /* 0x6D8 */ u8 field_0x6d8;
152 /* 0x6D9 */ u8 field_0x6d9;
153 /* 0x6DA */ s16 field_0x6da;
154 /* 0x6DC */ u8 field_0x6dc;
155 /* 0x6DD */ u8 field_0x6dd;
156 /* 0x6DE */ u8 field_0x6de;
157 /* 0x6DF */ u8 field_0x6df;
158 /* 0x6E0 */ u8 field_0x6e0;
159 /* 0x6E1 */ bool mIsFlying;
160 /* 0x6E2 */ u8 field_0x6e2[0x6e3 - 0x6e2];
161 /* 0x6E3 */ u8 field_0x6e3;
162 /* 0x6E4 */ u8 field_0x6e4;
163 /* 0x6E5 */ u8 field_0x6e5;
164 /* 0x6E6 */ u8 field_0x6e6;
165 /* 0x6E7 */ u8 field_0x6e7;
166 /* 0x6E8 */ u8 field_0x6e8;
167 /* 0x6E8 */ u8 field_0x6e9;
168 /* 0x6EA */ u8 field_0x6ea;
169 /* 0x6EB */ u8 field_0x6eb;
170 /* 0x6EC */ u8 field_0x6ec[0x6ed - 0x6ec];
171 /* 0x6ED */ u8 field_0x6ed;
172 /* 0x6F0 */ f32 field_0x6f0;
173 /* 0x6F4 */ f32 field_0x6f4;
174 /* 0x6F8 */ f32 field_0x6f8;
175 /* 0x6FC */ f32 field_0x6fc;
176 /* 0x700 */ f32 field_0x700;
177 /* 0x704 */ f32 mGroundHeight;
178 /* 0x708 */ f32 mRoofHeight;
179 /* 0x70C */ f32 field_0x70c;
180 /* 0x710 */ s16 field_0x710;
181 /* 0x712 */ s16 field_0x712;
182 /* 0x714 */ s16 field_0x714;
183 /* 0x716 */ s16 field_0x716;
184 /* 0x718 */ s16 field_0x718;
185 /* 0x71A */ s16 field_0x71a;
186 /* 0x71C */ s32 field_0x71c;
187 /* 0x720 */ s32 field_0x720;
188 /* 0x724 */ u8 field_0x724[0x728 - 0x724];
189 /* 0x728 */ s32 field_0x728;
190 /* 0x72C */ s32 field_0x72c;
192 /* 0x734 */ s32 mDashTime;
193 /* 0x738 */ s32 field_0x738;
194 /* 0x73C */ s32 field_0x73c;
195 /* 0x740 */ s32 mCurrentAction;
196 /* 0x744 */ s32 field_0x744;
197 /* 0x748 */ s32 field_0x748;
198 /* 0x74C */ s32 field_0x74c;
199 /* 0x750 */ s32 field_0x750;
200 /* 0x754 */ s32 field_0x754;
201 /* 0x758 */ s32 field_0x758;
202 /* 0x75C */ char* field_0x75c;
203 /* 0x760 */ char* field_0x760;
204 /* 0x764 */ s32 field_0x764;
205 /* 0x768 */ dPath* mpPath1;
206 /* 0x76C */ dPath* mpPath2;
207 /* 0x770 */ s8 mPathIdx;
208 /* 0x771 */ s8 field_0x771;
209 /* 0x772 */ s8 mPathIdxOffset;
210 /* 0x773 */ s8 mPathDir;
211 /* 0x774 */ u8 field_0x774[0x778 - 0x774];
214 /* 0x990 */ dCcD_Stts mStts;
215 /* 0x9CC */ dCcD_Sph mSph;
216 /* 0xB04 */ dCcU_AtInfo mAtInfo;
217 /* 0xB28 */ u8 field_0xb28[0xb30 - 0xb28];
218 /* 0xB30 */ u32 field_0xb30;
219 /* 0xB34 */ u32 field_0xb34;
220 /* 0xB38 */ u32 field_0xb38;
221 /* 0xB3C */ u32 field_0xb3c;
222 /* 0xB40 */ u32 field_0xb40;
223 /* 0xB44 */ u32 field_0xb44[3];
224 /* 0xB50 */ u32 field_0xb50;
225 /* 0xB54 */ u8 field_0xb54;
226 /* 0xB58 */ dMsgFlow_c mMsgFlow;
227};
228
229STATIC_ASSERT(sizeof(daKago_c) == 0xBA4);
230
231#endif /* D_A_KAGO_H */
Definition J3DJoint.h:63
Definition J3DModel.h:43
MtxP getAnmMtx(int jointNo)
Definition J3DModel.h:105
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:473
Definition d_cc_d.h:269
Definition d_msg_flow.h:49
Player-controlled Kargarok.
Definition d_a_kago.h:19
dBgS_ObjAcch mObjAcch
Definition d_a_kago.h:213
void createBalloonScore()
Definition d_a_kago.cpp:692
Mtx mLegR3Mtx
Definition d_a_kago.h:135
u8 field_0x6e5
Definition d_a_kago.h:163
u8 field_0x6dd
Definition d_a_kago.h:155
char * field_0x760
Definition d_a_kago.h:203
bool calcAttackMove(int)
Definition d_a_kago.cpp:1491
dPath * mpPath1
Definition d_a_kago.h:205
bool checkAttackStart()
Definition d_a_kago.cpp:813
fpc_ProcID mBalloon2DId
Definition d_a_kago.h:134
int draw()
Definition d_a_kago.cpp:189
f32 field_0x6f4
Definition d_a_kago.h:173
request_of_phase_process_class mPhase
Definition d_a_kago.h:130
void setBck(int, u8, f32, f32)
Definition d_a_kago.cpp:176
int CreateHeap()
Definition d_a_kago.cpp:3738
dPath * mpPath2
Definition d_a_kago.h:206
bool checkFlySceneChange()
Definition d_a_kago.cpp:1050
f32 checkRoofHeight(cXyz)
Definition d_a_kago.cpp:391
dMsgFlow_c mMsgFlow
Definition d_a_kago.h:226
bool checkBck(int)
Definition d_a_kago.cpp:181
bool executePerchDemo()
Definition d_a_kago.cpp:1860
mDoExt_McaMorfSO * mpMorf
Definition d_a_kago.h:131
f32 mRoofHeight
Definition d_a_kago.h:178
int _delete()
Definition d_a_kago.cpp:3691
s8 mPathIdxOffset
Definition d_a_kago.h:209
dBgS_AcchCir mAcchCir
Definition d_a_kago.h:212
s16 getBeforeGroundHeight(u8)
Definition d_a_kago.cpp:503
u8 field_0x6dc
Definition d_a_kago.h:154
u8 field_0x6e9
Definition d_a_kago.h:167
u8 field_0x6e8
Definition d_a_kago.h:166
void executePerch2()
Definition d_a_kago.cpp:2785
bool checkWallHitFall(int)
Definition d_a_kago.cpp:758
int create()
Definition d_a_kago.cpp:3772
f32 field_0x6fc
Definition d_a_kago.h:175
csXyz field_0x6be
Definition d_a_kago.h:144
u32 field_0xb30
Definition d_a_kago.h:218
void executeAttack()
Definition d_a_kago.cpp:1527
u32 field_0xb34
Definition d_a_kago.h:219
int setSceneChange(int)
Definition d_a_kago.cpp:656
void flySpeedCalc(s16, int)
Definition d_a_kago.cpp:889
void executeLandingBoartHouse()
Definition d_a_kago.cpp:2973
Z2CreatureEnemy mSound
Definition d_a_kago.h:132
void action()
Definition d_a_kago.cpp:3515
fopAc_ac_c * mpLockActor
Definition d_a_kago.h:133
s32 field_0x73c
Definition d_a_kago.h:194
u32 field_0xb50
Definition d_a_kago.h:224
u8 field_0x6e0
Definition d_a_kago.h:158
void checkSizeBg()
Definition d_a_kago.cpp:444
void executeEvent()
Definition d_a_kago.cpp:1690
cXyz field_0x6a4
Definition d_a_kago.h:141
void setActionMode(int, int)
Definition d_a_kago.cpp:589
s32 field_0x764
Definition d_a_kago.h:204
u8 field_0x6ec[0x6ed - 0x6ec]
Definition d_a_kago.h:170
s32 field_0x72c
Definition d_a_kago.h:190
void checkHeight()
Definition d_a_kago.cpp:736
void setRideOff()
Definition d_a_kago.cpp:617
void onWaterFall()
Definition d_a_kago.h:112
s16 field_0x6bc
Definition d_a_kago.h:143
MtxP getLegR3Mtx()
Definition d_a_kago.h:120
void executeLanding()
Definition d_a_kago.cpp:3114
void setDashBlurEffect(int)
Definition d_a_kago.cpp:3357
void setEatYm()
Definition d_a_kago.h:126
int getBckName(int)
Definition d_a_kago.cpp:145
f32 field_0x6f8
Definition d_a_kago.h:174
cXyz field_0x6b0
Definition d_a_kago.h:142
void setWallHitEffect(cXyz, int)
Definition d_a_kago.cpp:3388
s16 getValueAbsX(f32)
Definition d_a_kago.cpp:858
s16 field_0x712
Definition d_a_kago.h:181
void setEvent2()
Definition d_a_kago.h:100
char * field_0x75c
Definition d_a_kago.h:202
s16 field_0x714
Definition d_a_kago.h:182
s32 field_0x720
Definition d_a_kago.h:187
u8 field_0xb28[0xb30 - 0xb28]
Definition d_a_kago.h:217
s32 field_0x748
Definition d_a_kago.h:197
bool executeFirstDemo()
Definition d_a_kago.cpp:2475
dCcD_Stts mStts
Definition d_a_kago.h:214
void setMidnaRideOn()
Definition d_a_kago.cpp:605
s32 field_0x744
Definition d_a_kago.h:196
bool isFlying()
Definition d_a_kago.h:123
u8 field_0x724[0x728 - 0x724]
Definition d_a_kago.h:188
void setEvent()
Definition d_a_kago.h:94
s16 field_0x716
Definition d_a_kago.h:183
void executeStagger()
Definition d_a_kago.cpp:1228
void initFirstDemo()
Definition d_a_kago.cpp:2321
s8 searchNearPassPoint()
Definition d_a_kago.cpp:626
u8 field_0x6d8
Definition d_a_kago.h:151
void setSibukiEffect()
Definition d_a_kago.cpp:3404
void initPerchDemo()
Definition d_a_kago.cpp:1714
void mtx_set()
Definition d_a_kago.cpp:3617
int executeBalloonMenu()
Definition d_a_kago.cpp:215
s8 field_0x771
Definition d_a_kago.h:208
void executeWait()
Definition d_a_kago.cpp:1410
u32 field_0xb40
Definition d_a_kago.h:222
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_kago.cpp:3711
void endBalloonScore()
Definition d_a_kago.cpp:711
void startBalloonScore()
Definition d_a_kago.cpp:699
u8 field_0x6e4
Definition d_a_kago.h:162
cXyz field_0x68c
Definition d_a_kago.h:139
u8 field_0x6e7
Definition d_a_kago.h:165
s32 field_0x750
Definition d_a_kago.h:199
dCcU_AtInfo mAtInfo
Definition d_a_kago.h:216
s32 mDashCooldownTime
Definition d_a_kago.h:191
u8 field_0x6ed
Definition d_a_kago.h:171
static int DemoSkipCallBack(void *, int)
Definition d_a_kago.cpp:581
s32 field_0x758
Definition d_a_kago.h:201
void setKagoPath(u8 i_pathNo)
Definition d_a_kago.h:106
void setMidnaTagPos()
Definition d_a_kago.cpp:595
f32 field_0x6d4
Definition d_a_kago.h:150
cXyz field_0x680
Definition d_a_kago.h:138
bool isAttack()
Definition d_a_kago.h:116
u8 field_0x6e2[0x6e3 - 0x6e2]
Definition d_a_kago.h:160
s16 field_0x710
Definition d_a_kago.h:180
s16 field_0x718
Definition d_a_kago.h:184
f32 field_0x70c
Definition d_a_kago.h:179
u8 field_0x774[0x778 - 0x774]
Definition d_a_kago.h:211
void executeEvent2()
Definition d_a_kago.cpp:2305
fopAc_ac_c * getLockActor()
Definition d_a_kago.h:124
f32 field_0x700
Definition d_a_kago.h:176
f32 mGroundHeight
Definition d_a_kago.h:177
s16 field_0x6c8
Definition d_a_kago.h:146
s8 mPathDir
Definition d_a_kago.h:210
cXyz field_0x650[3]
Definition d_a_kago.h:136
u8 field_0x6de
Definition d_a_kago.h:156
bool mIsFlying
Definition d_a_kago.h:159
void setDashSibukiEffect()
Definition d_a_kago.cpp:3426
bool PerchDemoAwayForward()
Definition d_a_kago.cpp:2089
s16 field_0x6ca
Definition d_a_kago.h:147
void demo_skip(int)
Definition d_a_kago.cpp:507
s16 field_0x71a
Definition d_a_kago.h:185
f32 field_0x6c4
Definition d_a_kago.h:145
s8 mPathIdx
Definition d_a_kago.h:207
bool checkYaguraPos(cXyz)
Definition d_a_kago.cpp:744
void setLockActor(fopAc_ac_c *actor)
Definition d_a_kago.h:125
u8 field_0xb54
Definition d_a_kago.h:225
void setPlayerRideOn()
Definition d_a_kago.cpp:613
void cc_set()
Definition d_a_kago.cpp:3631
f32 checkGroundHeight(cXyz, f32 *)
Definition d_a_kago.cpp:276
f32 field_0x6d0
Definition d_a_kago.h:149
u32 field_0xb44[3]
Definition d_a_kago.h:223
f32 checkNextPath(cXyz)
Definition d_a_kago.cpp:728
s32 mDashTime
Definition d_a_kago.h:192
cXyz field_0x698
Definition d_a_kago.h:140
dCcD_Sph mSph
Definition d_a_kago.h:215
int execute()
Definition d_a_kago.cpp:3645
void setFlyEffect()
Definition d_a_kago.cpp:3296
void setFlyAway()
Definition d_a_kago.cpp:1074
s8 getPathDir()
Definition d_a_kago.h:122
void flySpeedCalcLockOn()
Definition d_a_kago.cpp:862
u8 field_0x6ea
Definition d_a_kago.h:168
void setDashEffect()
Definition d_a_kago.cpp:3317
void setFlySound()
Definition d_a_kago.cpp:3468
MtxP getMouthMtx()
Definition d_a_kago.h:127
void setWaterFallEffect()
Definition d_a_kago.cpp:3433
u8 field_0x6eb
Definition d_a_kago.h:169
void moveDemoFly()
Definition d_a_kago.cpp:3125
void executeFly()
Definition d_a_kago.cpp:1100
void setDamageEffect()
Definition d_a_kago.cpp:3338
void checkMoveHeight()
Definition d_a_kago.cpp:437
void setFlyAnime()
Definition d_a_kago.cpp:1084
s32 field_0x74c
Definition d_a_kago.h:198
u8 field_0x6d9
Definition d_a_kago.h:152
static int JointCallBack(J3DJoint *, int)
Definition d_a_kago.cpp:3727
s32 field_0x71c
Definition d_a_kago.h:186
void executeLandingLakeHairia()
Definition d_a_kago.cpp:2795
s32 mCurrentAction
Definition d_a_kago.h:195
void calcCircleCamera(int)
Definition d_a_kago.cpp:1656
s32 field_0x738
Definition d_a_kago.h:193
u8 field_0x6df
Definition d_a_kago.h:157
s16 getValueY(f32)
Definition d_a_kago.cpp:830
cXyz field_0x674
Definition d_a_kago.h:137
MtxP getMidnaLocaterMtx()
Definition d_a_kago.h:121
s16 getValueX(f32)
Definition d_a_kago.cpp:854
void executePerch()
Definition d_a_kago.cpp:2295
u8 field_0x6e6
Definition d_a_kago.h:164
f32 field_0x6cc
Definition d_a_kago.h:148
u8 field_0x6e3
Definition d_a_kago.h:161
s32 field_0x754
Definition d_a_kago.h:200
u32 field_0xb38
Definition d_a_kago.h:220
u32 field_0xb3c
Definition d_a_kago.h:221
f32 field_0x6f0
Definition d_a_kago.h:172
s32 field_0x728
Definition d_a_kago.h:189
s16 field_0x6da
Definition d_a_kago.h:153
Definition f_op_actor.h:230
Definition m_Do_ext.h:331
J3DModel * getModel()
Definition m_Do_ext.h:350
STATIC_ASSERT(sizeof(daKago_c)==0xBA4)
dPath * dPath_GetRoomPath(int path_index, int room_no)
Definition d_path.cpp:19
f32 Mtx[3][4]
Definition mtx.h:25
f32(* MtxP)[4]
Definition mtx.h:38
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
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
s8 fopAcM_GetRoomNo(const fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:144
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition c_xyz.h:7
Definition d_cc_uty.h:20
Definition d_path.h:18
Definition c_phase.h:17