11#ifndef D_A_KAGO_H
22#define D_A_KAGO_H
33
4- #include " f_op/f_op_actor_mng.h"
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"
58#include " d/d_path.h"
9+ #include " f_op/f_op_actor_mng.h"
610
711/* *
812 * @ingroup actors-unsorted
913 * @class daKago_c
10- * @brief Basket
14+ * @brief Player-controlled Kargarok
1115 *
1216 * @details
1317 *
1418 */
1519class daKago_c : public fopAc_ac_c {
1620public:
17- /* 80849660 */ void getBckName (int );
21+ /* 80849660 */ int getBckName (int );
1822 /* 808496F0 */ void setBck (int , u8 , f32 , f32 );
19- /* 80849798 */ void checkBck (int );
20- /* 808497F8 */ void draw ();
21- /* 80849980 */ void executeBalloonMenu ();
22- /* 80849BA8 */ void checkGroundHeight (cXyz, f32 *);
23- /* 8084A070 */ void checkRoofHeight (cXyz);
23+ /* 80849798 */ bool checkBck (int );
24+ /* 808497F8 */ int draw ();
25+ /* 80849980 */ int executeBalloonMenu ();
26+ /* 80849BA8 */ f32 checkGroundHeight (cXyz, f32 *);
27+ /* 8084A070 */ f32 checkRoofHeight (cXyz);
2428 /* 8084A210 */ void checkMoveHeight ();
2529 /* 8084A2A8 */ void checkSizeBg ();
26- /* 8084A6DC */ bool getBeforeGroundHeight (u8 );
30+ /* 8084A6DC */ s16 getBeforeGroundHeight (u8 );
2731 /* 8084A6E4 */ void demo_skip (int );
28- /* 8084AA64 */ void DemoSkipCallBack (void *, int );
32+ /* 8084AA64 */ static int DemoSkipCallBack (void *, int );
2933 /* 8084AA98 */ void setActionMode (int , int );
3034 /* 8084AAAC */ void setMidnaTagPos ();
3135 /* 8084AB40 */ void setMidnaRideOn ();
3236 /* 8084AB8C */ void setPlayerRideOn ();
3337 /* 8084ABC8 */ void setRideOff ();
34- /* 8084AC2C */ void searchNearPassPoint ();
35- /* 8084AE78 */ void setSceneChange (int );
38+ /* 8084AC2C */ s8 searchNearPassPoint ();
39+ /* 8084AE78 */ int setSceneChange (int );
3640 /* 8084AF40 */ void createBalloonScore ();
3741 /* 8084AFB0 */ void startBalloonScore ();
3842 /* 8084B024 */ void endBalloonScore ();
3943 /* 8084B088 */ f32 checkNextPath (cXyz);
4044 /* 8084B108 */ void checkHeight ();
41- /* 8084B134 */ void checkYaguraPos (cXyz);
42- /* 8084B1E0 */ void checkWallHitFall (int );
43- /* 8084B56C */ void checkAttackStart ();
44- /* 8084B5DC */ void getValueY (f32 );
45- /* 8084B6F4 */ void getValueX (f32 );
46- /* 8084B718 */ void getValueAbsX (f32 );
45+ /* 8084B134 */ bool checkYaguraPos (cXyz);
46+ /* 8084B1E0 */ bool checkWallHitFall (int );
47+ /* 8084B56C */ bool checkAttackStart ();
48+ /* 8084B5DC */ s16 getValueY (f32 );
49+ /* 8084B6F4 */ s16 getValueX (f32 );
50+ /* 8084B718 */ s16 getValueAbsX (f32 );
4751 /* 8084B744 */ void flySpeedCalcLockOn ();
4852 /* 8084B96C */ void flySpeedCalc (s16, int );
49- /* 8084C078 */ void checkFlySceneChange ();
53+ /* 8084C078 */ bool checkFlySceneChange ();
5054 /* 8084C178 */ void setFlyAway ();
5155 /* 8084C204 */ void setFlyAnime ();
5256 /* 8084C2CC */ void executeFly ();
5357 /* 8084C8FC */ void executeStagger ();
5458 /* 8084D108 */ void executeWait ();
55- /* 8084D354 */ void calcAttackMove (int );
59+ /* 8084D354 */ bool calcAttackMove (int );
5660 /* 8084D50C */ void executeAttack ();
5761 /* 8084DA18 */ void calcCircleCamera (int );
5862 /* 8084DBFC */ void executeEvent ();
5963 /* 8084DD18 */ void initPerchDemo ();
60- /* 8084E2D4 */ void executePerchDemo ();
61- /* 8084F09C */ void PerchDemoAwayForward ();
64+ /* 8084E2D4 */ bool executePerchDemo ();
65+ /* 8084F09C */ bool PerchDemoAwayForward ();
6266 /* 8084FA58 */ void executePerch ();
6367 /* 8084FAA8 */ void executeEvent2 ();
6468 /* 8084FB50 */ void initFirstDemo ();
65- /* 80850384 */ void executeFirstDemo ();
69+ /* 80850384 */ bool executeFirstDemo ();
6670 /* 808513E4 */ void executePerch2 ();
6771 /* 80851434 */ void executeLandingLakeHairia ();
6872 /* 80851DEC */ void executeLandingBoartHouse ();
@@ -80,67 +84,179 @@ class daKago_c : public fopAc_ac_c {
8084 /* 80853BCC */ void action ();
8185 /* 80853EF0 */ void mtx_set ();
8286 /* 80853FB0 */ void cc_set ();
83- /* 80854058 */ void execute ();
84- /* 80854190 */ void _delete ();
85- /* 80854220 */ void ctrlJoint (J3DJoint*, J3DModel*);
86- /* 808542DC */ void JointCallBack (J3DJoint*, int );
87- /* 80854328 */ void CreateHeap ();
88- /* 808544D8 */ void create ();
87+ /* 80854058 */ int execute ();
88+ /* 80854190 */ int _delete ();
89+ /* 80854220 */ int ctrlJoint (J3DJoint*, J3DModel*);
90+ /* 808542DC */ static int JointCallBack (J3DJoint*, int );
91+ /* 80854328 */ int CreateHeap ();
92+ /* 808544D8 */ int create ();
8993
9094 void setEvent () {
91- mIsFlying = 0 ;
92- field_0x740 = 2 ;
95+ mIsFlying = false ;
96+ mCurrentAction = 2 ;
9397 field_0x744 = 0 ;
9498 }
9599
96100 void setEvent2 () {
97- mIsFlying = 0 ;
98- field_0x740 = 6 ;
101+ mIsFlying = false ;
102+ mCurrentAction = 6 ;
99103 field_0x744 = 0 ;
100104 }
101105
102106 void setKagoPath (u8 i_pathNo) {
103107 if (i_pathNo != 0xFF ) {
104- field_0x76c = dPath_GetRoomPath (i_pathNo, fopAcM_GetRoomNo (this ));
108+ mpPath2 = dPath_GetRoomPath (i_pathNo, fopAcM_GetRoomNo (this ));
105109 }
106110 }
107111
112+ void onWaterFall () {
113+ field_0x6ea = 1 ;
114+ }
115+
116+ bool isAttack () {
117+ return field_0x6dd != 0 ;
118+ }
119+
108120 MtxP getLegR3Mtx () { return mLegR3Mtx ; }
109121 MtxP getMidnaLocaterMtx () { return mpMorf->getModel ()->getAnmMtx (4 ); }
110122 s8 getPathDir () { return mPathDir ; }
111- u8 isFlying () { return mIsFlying ; }
123+ bool isFlying () { return mIsFlying ; }
112124 fopAc_ac_c* getLockActor () { return mpLockActor; }
113125 void setLockActor (fopAc_ac_c* actor) { mpLockActor = actor; }
114126 void setEatYm () { field_0x6d8 |= 4 ; }
115127 MtxP getMouthMtx () { return mpMorf->getModel ()->getAnmMtx (7 ); }
116128
117129private:
118- /* 0x568 */ u8 field_0x568[ 8 ] ;
130+ /* 0x568 */ request_of_phase_process_class mPhase ;
119131 /* 0x570 */ mDoExt_McaMorfSO * mpMorf;
120- /* 0x574 */ u8 field_0x574[ 0x618 - 0x574 ] ;
132+ /* 0x574 */ Z2CreatureEnemy mSound ;
121133 /* 0x618 */ fopAc_ac_c* mpLockActor;
122- /* 0x61c */ u8 field_0x61c[ 0x620 - 0x61c ] ;
134+ /* 0x61C */ fpc_ProcID mBalloon2DId ;
123135 /* 0x620 */ Mtx mLegR3Mtx ;
124- /* 0x650 */ u8 field_0x650[0x6d8 - 0x650 ];
125- /* 0x6d8 */ u8 field_0x6d8;
126- /* 0x6d9 */ u8 field_0x6d9[0x6E1 - 0x6d9 ];
127- /* 0x6E1 */ u8 mIsFlying ;
128- /* 0x6E2 */ u8 field_0x6E2[0x740 - 0x6E2 ];
129- /* 0x740 */ int field_0x740;
130- /* 0x744 */ int field_0x744;
131- /* 0x748 */ u8 field_0x748[0x76C - 0x748 ];
132- /* 0x76C */ dPath* field_0x76c;
133- /* 0x770 */ u8 field_0x770[0x773 - 0x770 ];
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;
191+ /* 0x730 */ s32 mDashCooldownTime ;
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 ;
134210 /* 0x773 */ s8 mPathDir ;
135- /* 0x774 */ u8 field_0x774[0xBA4 - 0x774 ];
211+ /* 0x774 */ u8 field_0x774[0x778 - 0x774 ];
212+ /* 0x778 */ dBgS_AcchCir mAcchCir ;
213+ /* 0x7B8 */ dBgS_ObjAcch mObjAcch ;
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 ;
136227};
137228
138229STATIC_ASSERT (sizeof (daKago_c) == 0xBA4);
139230
140- class daKago_HIO_c {
231+ class daKago_HIO_c : public JORReflexible {
141232public:
142233 /* 808495AC */ daKago_HIO_c();
143- /* 80854A4C */ ~daKago_HIO_c ();
234+ /* 80854A4C */ virtual ~daKago_HIO_c () {}
235+
236+ void genMessage (JORMContext* ctx);
237+
238+ /* 0x04 */ s8 mChild ;
239+ /* 0x08 */ f32 mRevoconUpDown ;
240+ /* 0x0C */ f32 mRevoconUpDownMax ;
241+ /* 0x10 */ f32 mRevoconLeftRight ;
242+ /* 0x14 */ f32 mRevoconLeftRightMax ;
243+ /* 0x18 */ f32 mBasicSize ;
244+ /* 0x1C */ f32 mFlightSpeed ;
245+ /* 0x20 */ f32 mFlightGroundAltitude ;
246+ /* 0x24 */ f32 mFlightCeilingAltitude ;
247+ /* 0x28 */ f32 mShadowDensity ;
248+ /* 0x2C */ f32 mDescentRateIncrement ;
249+ /* 0x30 */ f32 mAscentRateDecel ;
250+ /* 0x34 */ f32 mDashTime ;
251+ /* 0x38 */ f32 mDashTimeMultiplier ;
252+ /* 0x3C */ f32 mWallHitInvulnTime ;
253+ /* 0x40 */ f32 mDashCooldownTime ;
254+ /* 0x44 */ f32 mZOffset ;
255+ /* 0x48 */ f32 mZOffsetHori ;
256+ /* 0x4C */ u8 mAngleTrackingMode ;
257+ /* 0x50 */ f32 mYOffsetFromWaterSurface ;
258+ /* 0x54 */ f32 mWaterSplashTime ;
259+ /* 0x58 */ f32 mSplashGenTimeDuringDash ;
144260};
145261
146262#endif /* D_A_KAGO_H */
0 commit comments