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:
34
35 int getBckName(int);
36 void setBck(int, u8, f32, f32);
37 bool checkBck(int);
38 int draw();
40 f32 checkGroundHeight(cXyz, f32*);
42 void checkMoveHeight();
43 void checkSizeBg();
45 void demo_skip(int);
46 static int DemoSkipCallBack(void*, int);
47 void setActionMode(int, int);
48 void setMidnaTagPos();
49 void setMidnaRideOn();
50 void setPlayerRideOn();
51 void setRideOff();
53 int setSceneChange(int);
54 void createBalloonScore();
55 void startBalloonScore();
56 void endBalloonScore();
58 void checkHeight();
59 bool checkYaguraPos(cXyz);
60 bool checkWallHitFall(int);
61 bool checkAttackStart();
62 s16 getValueY(f32);
63 s16 getValueX(f32);
64 s16 getValueAbsX(f32);
65 void flySpeedCalcLockOn();
66 void flySpeedCalc(s16, int);
68 void setFlyAway();
69 void setFlyAnime();
70 void executeFly();
71 void executeStagger();
72 void executeWait();
73 bool calcAttackMove(int);
74 void executeAttack();
75 void calcCircleCamera(int);
76 void executeEvent();
77 void initPerchDemo();
78 bool executePerchDemo();
80 void executePerch();
81 void executeEvent2();
82 void initFirstDemo();
83 bool executeFirstDemo();
84 void executePerch2();
87 void executeLanding();
88 void moveDemoFly();
89 void setFlyEffect();
90 void setDashEffect();
91 void setDamageEffect();
92 void setDashBlurEffect(int);
93 void setWallHitEffect(cXyz, int);
94 void setSibukiEffect();
96 void setWaterFallEffect();
97 void setFlySound();
98 void action();
99 void mtx_set();
100 void cc_set();
101 int execute();
102 int _delete();
103 int ctrlJoint(J3DJoint*, J3DModel*);
104 static int JointCallBack(J3DJoint*, int);
105 int CreateHeap();
106 int create();
107
108 void setEvent() {
109 mIsFlying = false;
111 mMode = 0;
112 }
113
114 void setEvent2() {
115 mIsFlying = false;
117 mMode = 0;
118 }
119
120 void setKagoPath(u8 i_pathNo) {
121 if (i_pathNo != 0xFF) {
122 mpPath2 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
123 }
124 }
125
126 void onWaterFall() {
127 mIsWaterfall = TRUE;
128 }
129
130 bool isAttack() {
131 return mIsAttack != 0;
132 }
133
134 MtxP getLegR3Mtx() { return mLegR3Mtx; }
135 MtxP getMidnaLocaterMtx() { return mAnm_p->getModel()->getAnmMtx(4); }
136 s8 getPathDir() { return mPathDir; }
137 u8 isFlying() { return mIsFlying; }
139 void setLockActor(fopAc_ac_c* actor) { mpLockActor = actor; }
140 void setEatYm() { field_0x6d8 |= (u8) 4; }
141 MtxP getMouthMtx() { return mAnm_p->getModel()->getAnmMtx(7); }
142
143private:
149 /* 0x620 */ Mtx mLegR3Mtx;
150 /* 0x650 */ cXyz mWallHitEffPos[3];
151 /* 0x674 */ cXyz field_0x674;
152 /* 0x680 */ cXyz field_0x680;
153 /* 0x68C */ cXyz mDemoCamCenter;
154 /* 0x698 */ cXyz mDemoCamEye;
155 /* 0x6A4 */ cXyz field_0x6a4;
156 /* 0x6B0 */ cXyz mPrevCamEye;
157 /* 0x6BC */ s16 field_0x6bc;
158 /* 0x6BE */ csXyz field_0x6be;
159 /* 0x6C4 */ f32 field_0x6c4;
160 /* 0x6C8 */ s16 field_0x6c8;
161 /* 0x6CA */ s16 field_0x6ca;
162 /* 0x6CC */ f32 field_0x6cc;
163 /* 0x6D0 */ f32 field_0x6d0;
164 /* 0x6D4 */ f32 mDemoCamFovy;
165 /* 0x6D8 */ u8 field_0x6d8;
166 /* 0x6D9 */ u8 field_0x6d9;
167 /* 0x6DA */ s16 field_0x6da;
168 /* 0x6DC */ u8 field_0x6dc;
169 /* 0x6DD */ u8 mIsAttack;
170 /* 0x6DE */ u8 field_0x6de;
171 /* 0x6DF */ u8 field_0x6df;
172 /* 0x6E0 */ u8 field_0x6e0;
173 /* 0x6E1 */ u8 mIsFlying;
174 /* 0x6E2 */ u8 field_0x6e2[0x6e3 - 0x6e2];
175 /* 0x6E3 */ u8 field_0x6e3;
176 /* 0x6E4 */ u8 field_0x6e4;
177 /* 0x6E5 */ u8 field_0x6e5;
178 /* 0x6E6 */ u8 field_0x6e6;
179 /* 0x6E7 */ u8 mType;
180 /* 0x6E8 */ u8 field_0x6e8;
181 /* 0x6E8 */ u8 field_0x6e9;
182 /* 0x6EA */ u8 mIsWaterfall;
183 /* 0x6EB */ u8 mBalloonMenuMode;
184 /* 0x6EC */ u8 field_0x6ec[0x6ed - 0x6ec];
185 /* 0x6ED */ u8 unk_0x6ed;
186 /* 0x6F0 */ f32 mStickX;
187 /* 0x6F4 */ f32 mStickY;
188 /* 0x6F8 */ f32 mFlySpeed;
189 /* 0x6FC */ f32 field_0x6fc;
190 /* 0x700 */ f32 mGroundFlyHeight;
191 /* 0x704 */ f32 mGroundHeight;
192 /* 0x708 */ f32 mRoofHeight;
193 /* 0x70C */ f32 field_0x70c;
194 /* 0x710 */ s16 field_0x710;
195 /* 0x712 */ s16 field_0x712;
196 /* 0x714 */ s16 field_0x714;
197 /* 0x716 */ s16 field_0x716;
198 /* 0x718 */ s16 mHeadRotZ;
199 /* 0x71A */ s16 mHeadRotY;
200 /* 0x71C */ int mWaterSplashTimer;
201 /* 0x720 */ int mWallHitInvulnTimer;
202 /* 0x724 */ u8 field_0x724[0x728 - 0x724];
203 /* 0x728 */ int field_0x728;
204 /* 0x72C */ int field_0x72c;
205 /* 0x730 */ int mDashCooldownTime;
206 /* 0x734 */ int mDashTime;
207 /* 0x738 */ int mGndSpecialCode;
208 /* 0x73C */ int mSceneType;
209 /* 0x740 */ int mAction;
210 /* 0x744 */ int mMode;
211 /* 0x748 */ int mDemoMode;
212 /* 0x74C */ int field_0x74c;
213 /* 0x750 */ int field_0x750;
214 /* 0x754 */ int field_0x754;
215 /* 0x758 */ int field_0x758;
216 /* 0x75C */ char* mArcName;
217 /* 0x760 */ char* mDemoName;
218 /* 0x764 */ u32 mShadowId;
219 /* 0x768 */ dPath* mpPath1;
220 /* 0x76C */ dPath* mpPath2;
221 /* 0x770 */ s8 mPathCurrentPointNo;
222 /* 0x771 */ s8 field_0x771;
223 /* 0x772 */ s8 mPathStep;
224 /* 0x773 */ s8 mPathDir;
225 /* 0x774 */ u8 field_0x774[0x778 - 0x774];
228 /* 0x990 */ dCcD_Stts mStts;
229 /* 0x9CC */ dCcD_Sph mSph;
230 /* 0xB04 */ dCcU_AtInfo mAtInfo;
231 /* 0xB28 */ u8 field_0xb28[0xb30 - 0xb28];
232 /* 0xB30 */ u32 field_0xb30;
233 /* 0xB34 */ u32 field_0xb34;
234 /* 0xB38 */ u32 field_0xb38;
235 /* 0xB3C */ u32 field_0xb3c;
236 /* 0xB40 */ u32 field_0xb40;
237 /* 0xB44 */ u32 mSibukiEmitterIDs[3];
238 /* 0xB50 */ u32 mDashSibukiEmitterID;
239 /* 0xB54 */ u8 mIsHioSet;
240 /* 0xB58 */ dMsgFlow_c mMsgFlow;
241};
242
243STATIC_ASSERT(sizeof(daKago_c) == 0xBA4);
244
245#endif /* D_A_KAGO_H */
Definition Z2Creature.h:37
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:15
Definition d_bg_s_acch.h:244
Definition d_cc_d.h:487
Definition d_cc_d.h:273
Definition d_msg_flow.h:49
Player-controlled Kargarok.
Definition d_a_kago.h:19
int mGndSpecialCode
Definition d_a_kago.h:207
dBgS_ObjAcch mObjAcch
Definition d_a_kago.h:227
void createBalloonScore()
Definition d_a_kago.cpp:700
Mtx mLegR3Mtx
Definition d_a_kago.h:149
u8 field_0x6e5
Definition d_a_kago.h:177
s16 mHeadRotZ
Definition d_a_kago.h:198
s8 mPathStep
Definition d_a_kago.h:223
int mWallHitInvulnTimer
Definition d_a_kago.h:201
int mSceneType
Definition d_a_kago.h:208
int mDashCooldownTime
Definition d_a_kago.h:205
bool calcAttackMove(int)
Definition d_a_kago.cpp:1514
dPath * mpPath1
Definition d_a_kago.h:219
bool checkAttackStart()
Definition d_a_kago.cpp:822
int field_0x754
Definition d_a_kago.h:214
fpc_ProcID mBalloon2DId
Definition d_a_kago.h:148
int draw()
Definition d_a_kago.cpp:190
u8 unk_0x6ed
Definition d_a_kago.h:185
request_of_phase_process_class mPhase
Definition d_a_kago.h:144
void setBck(int, u8, f32, f32)
Definition d_a_kago.cpp:177
int CreateHeap()
Definition d_a_kago.cpp:3743
dPath * mpPath2
Definition d_a_kago.h:220
bool checkFlySceneChange()
Definition d_a_kago.cpp:1062
f32 checkRoofHeight(cXyz)
Definition d_a_kago.cpp:395
dMsgFlow_c mMsgFlow
Definition d_a_kago.h:240
bool checkBck(int)
Definition d_a_kago.cpp:182
bool executePerchDemo()
Definition d_a_kago.cpp:1886
f32 mRoofHeight
Definition d_a_kago.h:192
int _delete()
Definition d_a_kago.cpp:3696
dBgS_AcchCir mAcchCir
Definition d_a_kago.h:226
s16 getBeforeGroundHeight(u8)
Definition d_a_kago.cpp:510
u8 field_0x6dc
Definition d_a_kago.h:168
u8 field_0x6e9
Definition d_a_kago.h:181
u8 field_0x6e8
Definition d_a_kago.h:180
char * mArcName
Definition d_a_kago.h:216
void executePerch2()
Definition d_a_kago.cpp:2790
bool checkWallHitFall(int)
Definition d_a_kago.cpp:767
int create()
Definition d_a_kago.cpp:3776
f32 field_0x6fc
Definition d_a_kago.h:189
csXyz field_0x6be
Definition d_a_kago.h:158
int mAction
Definition d_a_kago.h:209
f32 mFlySpeed
Definition d_a_kago.h:188
f32 mStickY
Definition d_a_kago.h:187
char * mDemoName
Definition d_a_kago.h:217
u32 field_0xb30
Definition d_a_kago.h:232
void executeAttack()
Definition d_a_kago.cpp:1551
int field_0x72c
Definition d_a_kago.h:204
u32 field_0xb34
Definition d_a_kago.h:233
int setSceneChange(int)
Definition d_a_kago.cpp:668
void flySpeedCalc(s16, int)
Definition d_a_kago.cpp:896
u32 mDashSibukiEmitterID
Definition d_a_kago.h:238
s16 mHeadRotY
Definition d_a_kago.h:199
void executeLandingBoartHouse()
Definition d_a_kago.cpp:2975
Z2CreatureEnemy mSound
Definition d_a_kago.h:146
u8 mIsFlying
Definition d_a_kago.h:173
int mDashTime
Definition d_a_kago.h:206
void action()
Definition d_a_kago.cpp:3516
fopAc_ac_c * mpLockActor
Definition d_a_kago.h:147
u8 field_0x6e0
Definition d_a_kago.h:172
u8 mIsHioSet
Definition d_a_kago.h:239
void checkSizeBg()
Definition d_a_kago.cpp:448
u8 mIsAttack
Definition d_a_kago.h:169
void executeEvent()
Definition d_a_kago.cpp:1717
u32 mShadowId
Definition d_a_kago.h:218
cXyz field_0x6a4
Definition d_a_kago.h:155
void setActionMode(int, int)
Definition d_a_kago.cpp:597
cXyz mWallHitEffPos[3]
Definition d_a_kago.h:150
u8 field_0x6ec[0x6ed - 0x6ec]
Definition d_a_kago.h:184
void checkHeight()
Definition d_a_kago.cpp:744
void setRideOff()
Definition d_a_kago.cpp:625
void onWaterFall()
Definition d_a_kago.h:126
s16 field_0x6bc
Definition d_a_kago.h:157
MtxP getLegR3Mtx()
Definition d_a_kago.h:134
void executeLanding()
Definition d_a_kago.cpp:3110
void setDashBlurEffect(int)
Definition d_a_kago.cpp:3350
void setEatYm()
Definition d_a_kago.h:140
int getBckName(int)
Definition d_a_kago.cpp:156
void setWallHitEffect(cXyz, int)
Definition d_a_kago.cpp:3384
s16 getValueAbsX(f32)
Definition d_a_kago.cpp:865
s16 field_0x712
Definition d_a_kago.h:195
void setEvent2()
Definition d_a_kago.h:114
daKago_Action_e
Definition d_a_kago.h:21
@ ACTION_DEMO_FLY_e
Definition d_a_kago.h:31
@ ACTION_ATTACK_e
Definition d_a_kago.h:27
@ ACTION_DEMO_FLY2_e
Definition d_a_kago.h:32
@ ACTION_PERCH2_e
Definition d_a_kago.h:29
@ ACTION_LANDING_e
Definition d_a_kago.h:30
@ ACTION_STAGGER_e
Definition d_a_kago.h:23
@ ACTION_EVENT2_e
Definition d_a_kago.h:28
@ ACTION_WAIT_e
Definition d_a_kago.h:26
@ ACTION_EVENT_e
Definition d_a_kago.h:24
@ ACTION_PERCH_e
Definition d_a_kago.h:25
@ ACTION_FLY_e
Definition d_a_kago.h:22
int mDemoMode
Definition d_a_kago.h:211
s16 field_0x714
Definition d_a_kago.h:196
u8 field_0xb28[0xb30 - 0xb28]
Definition d_a_kago.h:231
bool executeFirstDemo()
Definition d_a_kago.cpp:2488
dCcD_Stts mStts
Definition d_a_kago.h:228
int field_0x758
Definition d_a_kago.h:215
void setMidnaRideOn()
Definition d_a_kago.cpp:613
u8 field_0x724[0x728 - 0x724]
Definition d_a_kago.h:202
void setEvent()
Definition d_a_kago.h:108
s16 field_0x716
Definition d_a_kago.h:197
void executeStagger()
Definition d_a_kago.cpp:1254
void initFirstDemo()
Definition d_a_kago.cpp:2337
cXyz mDemoCamCenter
Definition d_a_kago.h:153
s8 searchNearPassPoint()
Definition d_a_kago.cpp:635
u8 field_0x6d8
Definition d_a_kago.h:165
void setSibukiEffect()
Definition d_a_kago.cpp:3401
void initPerchDemo()
Definition d_a_kago.cpp:1741
void mtx_set()
Definition d_a_kago.cpp:3619
int executeBalloonMenu()
Definition d_a_kago.cpp:219
s8 field_0x771
Definition d_a_kago.h:222
void executeWait()
Definition d_a_kago.cpp:1431
u32 field_0xb40
Definition d_a_kago.h:236
int mWaterSplashTimer
Definition d_a_kago.h:200
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_kago.cpp:3716
void endBalloonScore()
Definition d_a_kago.cpp:719
void startBalloonScore()
Definition d_a_kago.cpp:707
u8 field_0x6e4
Definition d_a_kago.h:176
dCcU_AtInfo mAtInfo
Definition d_a_kago.h:230
f32 mDemoCamFovy
Definition d_a_kago.h:164
static int DemoSkipCallBack(void *, int)
Definition d_a_kago.cpp:588
u32 mSibukiEmitterIDs[3]
Definition d_a_kago.h:237
void setKagoPath(u8 i_pathNo)
Definition d_a_kago.h:120
void setMidnaTagPos()
Definition d_a_kago.cpp:603
cXyz mPrevCamEye
Definition d_a_kago.h:156
cXyz field_0x680
Definition d_a_kago.h:152
bool isAttack()
Definition d_a_kago.h:130
int mMode
Definition d_a_kago.h:210
u8 field_0x6e2[0x6e3 - 0x6e2]
Definition d_a_kago.h:174
s16 field_0x710
Definition d_a_kago.h:194
u8 mIsWaterfall
Definition d_a_kago.h:182
f32 field_0x70c
Definition d_a_kago.h:193
u8 mBalloonMenuMode
Definition d_a_kago.h:183
u8 field_0x774[0x778 - 0x774]
Definition d_a_kago.h:225
void executeEvent2()
Definition d_a_kago.cpp:2321
fopAc_ac_c * getLockActor()
Definition d_a_kago.h:138
f32 mGroundHeight
Definition d_a_kago.h:191
s16 field_0x6c8
Definition d_a_kago.h:160
s8 mPathDir
Definition d_a_kago.h:224
u8 field_0x6de
Definition d_a_kago.h:170
u8 mType
Definition d_a_kago.h:179
void setDashSibukiEffect()
Definition d_a_kago.cpp:3423
u8 isFlying()
Definition d_a_kago.h:137
bool PerchDemoAwayForward()
Definition d_a_kago.cpp:2109
s16 field_0x6ca
Definition d_a_kago.h:161
void demo_skip(int)
Definition d_a_kago.cpp:514
int field_0x74c
Definition d_a_kago.h:212
f32 field_0x6c4
Definition d_a_kago.h:159
bool checkYaguraPos(cXyz)
Definition d_a_kago.cpp:752
void setLockActor(fopAc_ac_c *actor)
Definition d_a_kago.h:139
f32 mGroundFlyHeight
Definition d_a_kago.h:190
void setPlayerRideOn()
Definition d_a_kago.cpp:621
void cc_set()
Definition d_a_kago.cpp:3633
f32 checkGroundHeight(cXyz, f32 *)
Definition d_a_kago.cpp:281
int field_0x728
Definition d_a_kago.h:203
f32 field_0x6d0
Definition d_a_kago.h:163
f32 checkNextPath(cXyz)
Definition d_a_kago.cpp:736
dCcD_Sph mSph
Definition d_a_kago.h:229
s8 mPathCurrentPointNo
Definition d_a_kago.h:221
int execute()
Definition d_a_kago.cpp:3647
f32 mStickX
Definition d_a_kago.h:186
void setFlyEffect()
Definition d_a_kago.cpp:3289
void setFlyAway()
Definition d_a_kago.cpp:1086
s8 getPathDir()
Definition d_a_kago.h:136
void flySpeedCalcLockOn()
Definition d_a_kago.cpp:869
void setDashEffect()
Definition d_a_kago.cpp:3310
void setFlySound()
Definition d_a_kago.cpp:3467
MtxP getMouthMtx()
Definition d_a_kago.h:141
void setWaterFallEffect()
Definition d_a_kago.cpp:3430
void moveDemoFly()
Definition d_a_kago.cpp:3121
int field_0x750
Definition d_a_kago.h:213
void executeFly()
Definition d_a_kago.cpp:1114
void setDamageEffect()
Definition d_a_kago.cpp:3331
void checkMoveHeight()
Definition d_a_kago.cpp:441
void setFlyAnime()
Definition d_a_kago.cpp:1098
mDoExt_McaMorfSO * mAnm_p
Definition d_a_kago.h:145
u8 field_0x6d9
Definition d_a_kago.h:166
static int JointCallBack(J3DJoint *, int)
Definition d_a_kago.cpp:3731
void executeLandingLakeHairia()
Definition d_a_kago.cpp:2800
void calcCircleCamera(int)
Definition d_a_kago.cpp:1682
u8 field_0x6df
Definition d_a_kago.h:171
s16 getValueY(f32)
Definition d_a_kago.cpp:836
cXyz field_0x674
Definition d_a_kago.h:151
MtxP getMidnaLocaterMtx()
Definition d_a_kago.h:135
s16 getValueX(f32)
Definition d_a_kago.cpp:861
void executePerch()
Definition d_a_kago.cpp:2311
u8 field_0x6e6
Definition d_a_kago.h:178
f32 field_0x6cc
Definition d_a_kago.h:162
u8 field_0x6e3
Definition d_a_kago.h:175
u32 field_0xb38
Definition d_a_kago.h:234
u32 field_0xb3c
Definition d_a_kago.h:235
cXyz mDemoCamEye
Definition d_a_kago.h:154
s16 field_0x6da
Definition d_a_kago.h:167
Definition f_op_actor.h:271
Definition m_Do_ext.h:408
J3DModel * getModel()
Definition m_Do_ext.h:427
STATIC_ASSERT(sizeof(daKago_c)==0xBA4)
dPath * dPath_GetRoomPath(int path_index, int room_no)
Definition d_path.cpp:50
s8 fopAcM_GetRoomNo(const fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:124
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:19