Skip to content

Commit c4ec1a5

Browse files
authored
d_a_kago almost matching (#2541)
1 parent db1cab5 commit c4ec1a5

File tree

10 files changed

+3841
-1636
lines changed

10 files changed

+3841
-1636
lines changed

config/GZ2E01/rels/d_a_kago/symbols.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,6 @@ __vt__12dBgS_ObjAcch = .data:0x000001D8; // type:object size:0x24 scope:global
246246
__vt__8cM3dGPla = .data:0x000001FC; // type:object size:0xC scope:global
247247
__vt__12daKago_HIO_c = .data:0x00000208; // type:object size:0xC scope:global
248248
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
249-
lbl_265_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
249+
l_HIOInit = .bss:0x00000008; // type:object size:0x1 data:byte
250250
@3924 = .bss:0x0000000C; // type:object size:0xC scope:local
251251
l_HIO = .bss:0x00000018; // type:object size:0x5C scope:global data:byte

config/ShieldD/rels/d_a_kagoD/symbols.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,5 +313,5 @@ lbl_256_data_530 = .data:0x00000530; // type:object size:0x24
313313
@125862 = .data:0x00000738; // type:object size:0xC scope:local
314314
@125863 = .data:0x0000075C; // type:object size:0x11 scope:local data:string
315315
lbl_256_data_76D = .data:0x0000076D; // type:object size:0xB7
316-
lbl_256_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
316+
l_HIOInit = .bss:0x00000000; // type:object size:0x1 data:byte
317317
l_HIO = .bss:0x00000004; // type:object size:0x5C scope:global data:byte

include/d/actor/d_a_balloon_2D.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,8 @@ class daBalloon2D_c : public fopAc_ac_c, public request_of_phase_process_class {
2828
c_list() { mBalloon = NULL; }
2929
void set(daBalloon2D_c* i_this) { mBalloon = i_this; }
3030

31-
#ifdef NONMATCHING
3231
/* 806534CC */ virtual void draw();
3332
/* 8065544C */ virtual ~c_list();
34-
#else
35-
void draw();
36-
~c_list();
37-
void* vtable;
38-
#endif
3933

4034
daBalloon2D_c* mBalloon;
4135
};
@@ -69,9 +63,7 @@ class daBalloon2D_c : public fopAc_ac_c, public request_of_phase_process_class {
6963
/* 80654730 */ void drawAddScore();
7064
/* 80654E8C */ void setHIO(bool);
7165
/* 80655494 */
72-
#ifdef NONMATCHING
7366
virtual
74-
#endif
7567
~daBalloon2D_c();
7668

7769
void show() { mIsVisible = 1; }
@@ -87,10 +79,6 @@ class daBalloon2D_c : public fopAc_ac_c, public request_of_phase_process_class {
8779
u8 field_0xf;
8880
};
8981

90-
#ifdef NONMATCHING
91-
#else
92-
/* 0x570 */ u32 vtable;
93-
#endif
9482
/* 0x574 */ J2DScreen* mScreen;
9583
/* 0x578 */ CPaneMgr* field_0x578;
9684
/* 0x57C */ CPaneMgr* field_0x57c;

include/d/actor/d_a_kago.h

Lines changed: 167 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,72 @@
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
*/
1519
class daKago_c : public fopAc_ac_c {
1620
public:
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

117129
private:
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

138229
STATIC_ASSERT(sizeof(daKago_c) == 0xBA4);
139230

140-
class daKago_HIO_c {
231+
class daKago_HIO_c : public JORReflexible {
141232
public:
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 */

include/d/actor/d_a_midna.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,14 @@ class daMidna_c : public fopAc_ac_c {
369369

370370
void onForceMorfCancel() { onEndResetStateFlg0(ERFLG0_FORCE_MORF_CANCEL); }
371371

372+
void setCargoActor(fopAc_ac_c* i_actor) {
373+
mpKago = (daKago_c*)i_actor;
374+
}
375+
376+
void offCargoActor() {
377+
mpKago = NULL;
378+
}
379+
372380
static daMidna_texData_s const m_texDataTable[21];
373381
static daMidna_anmData_s const m_anmDataTable[53];
374382

include/d/actor/d_a_obj_riverrock.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class daObjRIVERROCK_c : public dBgS_MoveBgActor {
4545
/* 80CBD8E0 */ int Draw();
4646
/* 80CBD964 */ int Delete();
4747

48-
private:
4948
/* 0x5A0 */ ActionEnum mAction;
5049
/* 0x5A4 */ BreakSubAction mBreakSubAction;
5150
/* 0x5A8 */ u8 field_0x5a8;

include/d/actor/d_a_player.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,6 +1102,8 @@ class daPy_py_c : public fopAc_ac_c {
11021102

11031103
static bool checkPeepEndSceneChange() { return getLastSceneMode() == 7; }
11041104

1105+
static bool checkWolfCargoCarrySceneChange() { return getLastSceneMode() == 10; }
1106+
11051107
static int getLastSceneDamage() { return (dComIfGs_getLastSceneMode() >> 4) & 0x7F; }
11061108
static u8 getLastSceneSwordAtUpTime() { return (dComIfGs_getLastSceneMode() >> 11) & 0xFF; }
11071109

include/d/actor/d_a_tag_TWgate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "d/d_msg_flow.h"
55
#include "f_op/f_op_actor_mng.h"
6-
#include "SSystem\SComponent\c_phase.h"
6+
#include "SSystem/SComponent/c_phase.h"
77

88
class daTagTWGate_c;
99
typedef void (daTagTWGate_c::*actionFunc)();

0 commit comments

Comments
 (0)