Skip to content

Commit 9b50fd5

Browse files
authored
d_a_npc_tk equivalent (#2483)
1 parent 288a08b commit 9b50fd5

File tree

18 files changed

+3290
-1742
lines changed

18 files changed

+3290
-1742
lines changed

config/GZ2E01/rels/d_a_npc_tk/symbols.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ setBck__10daNPC_TK_cFiUcff = .text:0x00000178; // type:function size:0xA4 scope:
88
checkBck__10daNPC_TK_cFi = .text:0x0000021C; // type:function size:0x5C scope:global
99
draw__10daNPC_TK_cFv = .text:0x00000278; // type:function size:0xE0 scope:global
1010
__dt__4cXyzFv = .text:0x00000358; // type:function size:0x3C scope:global
11-
daNPC_TK_Draw__FP10daNPC_TK_c = .text:0x00000394; // type:function size:0x20 scope:global
11+
daNPC_TK_Draw__FP10daNPC_TK_c = .text:0x00000394; // type:function size:0x20 scope:local
1212
checkBeforeBg__10daNPC_TK_cFv = .text:0x000003B4; // type:function size:0x1A4 scope:global
1313
setActionMode__10daNPC_TK_cFi = .text:0x00000558; // type:function size:0x7C scope:global
1414
setAddCalcSpeedXZ__10daNPC_TK_cFR4cXyzRC4cXyzfff = .text:0x000005D4; // type:function size:0x390 scope:global
@@ -18,8 +18,8 @@ setMasterShoulder__10daNPC_TK_cFP4cXyz = .text:0x00000A80; // type:function size
1818
setAwayAction__10daNPC_TK_cFi = .text:0x00000B28; // type:function size:0xAC scope:global
1919
setFlySE__10daNPC_TK_cFv = .text:0x00000BD4; // type:function size:0x188 scope:global
2020
checkRangeOfTake__FP10fopAc_ac_cP10fopAc_ac_c = .text:0x00000D5C; // type:function size:0x124 scope:global
21-
s_obj_sub__FPvPv = .text:0x00000E80; // type:function size:0x68 scope:global
22-
s_hanjo__FPvPv = .text:0x00000EE8; // type:function size:0x4C scope:global
21+
s_obj_sub__FPvPv = .text:0x00000E80; // type:function size:0x68 scope:local
22+
s_hanjo__FPvPv = .text:0x00000EE8; // type:function size:0x4C scope:local
2323
executeFly__10daNPC_TK_cFv = .text:0x00000F34; // type:function size:0x4A4 scope:global
2424
initPerchDemo__10daNPC_TK_cFi = .text:0x000013D8; // type:function size:0x464 scope:global
2525
executePerchDemo__10daNPC_TK_cFi = .text:0x0000183C; // type:function size:0xAFC scope:global
@@ -53,24 +53,24 @@ action__10daNPC_TK_cFv = .text:0x00009F64; // type:function size:0x348 scope:glo
5353
mtx_set__10daNPC_TK_cFv = .text:0x0000A2AC; // type:function size:0x110 scope:global
5454
cc_set__10daNPC_TK_cFv = .text:0x0000A3BC; // type:function size:0xF0 scope:global
5555
execute__10daNPC_TK_cFv = .text:0x0000A4AC; // type:function size:0x124 scope:global
56-
daNPC_TK_Execute__FP10daNPC_TK_c = .text:0x0000A5D0; // type:function size:0x20 scope:global
57-
daNPC_TK_IsDelete__FP10daNPC_TK_c = .text:0x0000A5F0; // type:function size:0x8 scope:global
56+
daNPC_TK_Execute__FP10daNPC_TK_c = .text:0x0000A5D0; // type:function size:0x20 scope:local
57+
daNPC_TK_IsDelete__FP10daNPC_TK_c = .text:0x0000A5F0; // type:function size:0x8 scope:local
5858
_delete__10daNPC_TK_cFv = .text:0x0000A5F8; // type:function size:0x74 scope:global
59-
daNPC_TK_Delete__FP10daNPC_TK_c = .text:0x0000A66C; // type:function size:0x20 scope:global
59+
daNPC_TK_Delete__FP10daNPC_TK_c = .text:0x0000A66C; // type:function size:0x20 scope:local
6060
ctrlJoint__10daNPC_TK_cFP8J3DJointP8J3DModel = .text:0x0000A68C; // type:function size:0x1D0 scope:global
6161
JointCallBack__10daNPC_TK_cFP8J3DJointi = .text:0x0000A85C; // type:function size:0x4C scope:global
6262
CreateHeap__10daNPC_TK_cFv = .text:0x0000A8A8; // type:function size:0x13C scope:global
63-
useHeapInit__FP10fopAc_ac_c = .text:0x0000A9E4; // type:function size:0x20 scope:global
63+
useHeapInit__FP10fopAc_ac_c = .text:0x0000A9E4; // type:function size:0x20 scope:local
6464
create__10daNPC_TK_cFv = .text:0x0000AA04; // type:function size:0x2BC scope:global
6565
__dt__8cM3dGSphFv = .text:0x0000ACC0; // type:function size:0x48 scope:global
6666
__dt__8cM3dGAabFv = .text:0x0000AD08; // type:function size:0x48 scope:global
6767
__dt__12dBgS_ObjAcchFv = .text:0x0000AD50; // type:function size:0x70 scope:global
6868
__ct__4cXyzFv = .text:0x0000ADC0; // type:function size:0x4 scope:global
69-
daNPC_TK_Create__FP10daNPC_TK_c = .text:0x0000ADC4; // type:function size:0x20 scope:global
69+
daNPC_TK_Create__FP10daNPC_TK_c = .text:0x0000ADC4; // type:function size:0x20 scope:local
7070
__dt__14daNPC_TK_HIO_cFv = .text:0x0000ADE4; // type:function size:0x48 scope:global
7171
__sinit_d_a_npc_tk_cpp = .text:0x0000AE2C; // type:function size:0x3C scope:local
72-
@36@__dt__12dBgS_ObjAcchFv = .text:0x0000AE68; // type:function size:0x8 scope:local
73-
@20@__dt__12dBgS_ObjAcchFv = .text:0x0000AE70; // type:function size:0x8 scope:local
72+
@36@__dt__12dBgS_ObjAcchFv = .text:0x0000AE68; // type:function size:0x8 scope:global
73+
@20@__dt__12dBgS_ObjAcchFv = .text:0x0000AE70; // type:function size:0x8 scope:global
7474
checkNowWolf__9daPy_py_cFv = .text:0x0000AE78; // type:function size:0x18 scope:global
7575
_ctors = .ctors:0x00000000; // type:label scope:global
7676
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,7 @@ def MatchingFor(*versions) -> bool:
18331833
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_sq"),
18341834
ActorRel(NonMatching, "d_a_npc_the"),
18351835
ActorRel(NonMatching, "d_a_npc_theB"),
1836-
ActorRel(NonMatching, "d_a_npc_tk"),
1836+
ActorRel(Equivalent, "d_a_npc_tk"), # weak function order
18371837
ActorRel(NonMatching, "d_a_npc_tkc"),
18381838
ActorRel(NonMatching, "d_a_npc_tkj2"),
18391839
ActorRel(NonMatching, "d_a_npc_tks"),

include/d/actor/d_a_b_gg.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,11 @@ class daB_GG_c : public fopEn_enemy_c {
175175

176176
STATIC_ASSERT(sizeof(daB_GG_c) == 0x116c);
177177

178-
class daB_GG_HIO_c {
178+
class daB_GG_HIO_c : public JORReflexible {
179179
public:
180180
/* 805DE40C */ daB_GG_HIO_c();
181181
/* 805EC9C4 */ virtual ~daB_GG_HIO_c() {}
182+
void genMessage(JORMContext*) {}
182183

183184
/* 0x04 */ s8 id;
184185
/* 0x08 */ f32 base_size;

include/d/actor/d_a_ni.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ class ni_class : public fopEn_enemy_c {
6161
public:
6262
bool checkGold() { return mColor == COLOR_GOLD; }
6363

64+
void setMtx(MtxP mtx) {
65+
cXyz newPos;
66+
field_0xb08 = 1;
67+
mDoMtx_stack_c::copy(mtx);
68+
mDoMtx_stack_c::multVecZero(&newPos);
69+
current.pos = newPos;
70+
old.pos = current.pos;
71+
speed.y = 0.0f;
72+
speedF = 0.0f;
73+
mpMorf->getModel()->setBaseTRMtx(mtx);
74+
}
75+
6476
/* 0x5AC */ request_of_phase_process_class mPhase;
6577
/* 0x5B4 */ u8 field_0x5b4;
6678
/* 0x5B5 */ u8 mType;

include/d/actor/d_a_npc_hanjo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ class daNpc_Hanjo_c : public daNpcT_c {
165165
/* 80A00514 */ int checkRemoveJoint(int param_1) { return param_1 == 8; }
166166
/* 80A00524 */ s32 getFootLJointNo() { return 22; }
167167
/* 80A0052C */ s32 getFootRJointNo() { return 26; }
168+
MtxP getArmLMtx() { return mpMorf[0]->getModel()->getAnmMtx(11); }
168169

169170
int getFlowNodeNo() {
170171
u16 nodeNo = home.angle.x;

include/d/actor/d_a_npc_moir.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,13 @@ class daNpcMoiR_c : public fopAc_ac_c {
5151
/* 80A82878 */ void drawOtherMdls();
5252
/* 80A82900 */ bool drawDbgInfo();
5353

54+
MtxP getHandRMtx() { return mpMorf->getModel()->getAnmMtx(17); }
55+
5456
static u8 mEvtSeqList[48];
5557

5658
private:
57-
/* 0x568 */ u8 field_0x568[0xe0c - 0x568];
59+
/* 0x568 */ mDoExt_McaMorfSO* mpMorf;
60+
/* 0x56C */ u8 field_0x56c[0xe0c - 0x56c];
5861
};
5962

6063
STATIC_ASSERT(sizeof(daNpcMoiR_c) == 0xe0c);

include/d/actor/d_a_npc_tk.h

Lines changed: 125 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
#define D_A_NPC_TK_H
33

44
#include "d/actor/d_a_npc.h"
5+
#include "d/d_cc_uty.h"
56
#include "d/d_path.h"
67

78
struct cXyz;
9+
class daNpc_Hanjo_c;
810
class fopAc_ac_c;
911
class J3DJoint;
1012
class J3DModel;
@@ -20,33 +22,40 @@ class J3DModel;
2022
class daNPC_TK_c : public fopAc_ac_c {
2123
public:
2224
/* 80B01498 */ void setBck(int, u8, f32, f32);
23-
/* 80B0153C */ void checkBck(int);
24-
/* 80B01598 */ void draw();
25-
/* 80B016D4 */ void checkBeforeBg();
25+
/* 80B0153C */ bool checkBck(int);
26+
/* 80B01598 */ int draw();
27+
/* 80B016D4 */ int checkBeforeBg();
2628
/* 80B01878 */ void setActionMode(int);
27-
/* 80B018F4 */ void setAddCalcSpeedXZ(cXyz&, cXyz const&, f32, f32, f32);
28-
/* 80B01C84 */ void chaseTargetPos(cXyz, f32, f32, s16);
29-
/* 80B01D84 */ void getMasterPointer();
29+
/* 80B018F4 */ f32 setAddCalcSpeedXZ(cXyz&, cXyz const&, f32, f32, f32);
30+
/* 80B01C84 */ cXyz chaseTargetPos(cXyz, f32, f32, s16);
31+
/* 80B01D84 */
32+
fopAc_ac_c* getMasterPointer();
3033
/* 80B01DA0 */ void setMasterShoulder(cXyz*);
3134
/* 80B01E48 */ void setAwayAction(int);
3235
/* 80B01EF4 */ void setFlySE();
3336
/* 80B02254 */ void executeFly();
3437
/* 80B026F8 */ void initPerchDemo(int);
35-
/* 80B02B5C */ void executePerchDemo(int);
38+
/* 80B02B5C */
39+
bool executePerchDemo(int);
3640
/* 80B03658 */ void executePerch();
3741
/* 80B03754 */ void executeHandOn();
38-
/* 80B039A8 */ void checkWaterSurface(f32);
42+
/* 80B039A8 */
43+
bool checkWaterSurface(f32);
3944
/* 80B03A70 */ void executeAttack();
4045
/* 80B048BC */ void executeAway();
4146
/* 80B04BF8 */ void setCarryActorMtx();
42-
/* 80B04F64 */ void getTakePosY();
43-
/* 80B04FA8 */ void getTakeOffPosY();
47+
/* 80B04F64 */
48+
f32 getTakePosY();
49+
/* 80B04FA8 */
50+
f32 getTakeOffPosY();
4451
/* 80B04FEC */ void executeBack();
45-
/* 80B05BD0 */ void getHanjoHandPos();
52+
/* 80B05BD0 */
53+
cXyz getHanjoHandPos();
4654
/* 80B05C7C */ void executeStayHanjo();
4755
/* 80B05EC8 */ void executeAttackLink();
4856
/* 80B0686C */ void executeBackHanjo();
49-
/* 80B07114 */ void checkAttackDemo();
57+
/* 80B07114 */
58+
bool checkAttackDemo();
5059
/* 80B072CC */ void executeAttackDemo();
5160
/* 80B07610 */ void executeBackHanjoDemo();
5261
/* 80B08168 */ void executeWolfEvent();
@@ -62,12 +71,13 @@ class daNPC_TK_c : public fopAc_ac_c {
6271
/* 80B0B284 */ void action();
6372
/* 80B0B5CC */ void mtx_set();
6473
/* 80B0B6DC */ void cc_set();
65-
/* 80B0B7CC */ void execute();
66-
/* 80B0B918 */ void _delete();
67-
/* 80B0B9AC */ void ctrlJoint(J3DJoint*, J3DModel*);
68-
/* 80B0BB7C */ void JointCallBack(J3DJoint*, int);
69-
/* 80B0BBC8 */ void CreateHeap();
70-
/* 80B0BD24 */ void create();
74+
/* 80B0B7CC */ int execute();
75+
/* 80B0B918 */ int _delete();
76+
/* 80B0B9AC */
77+
int ctrlJoint(J3DJoint*, J3DModel*);
78+
/* 80B0BB7C */ static int JointCallBack(J3DJoint*, int);
79+
/* 80B0BBC8 */ int CreateHeap();
80+
/* 80B0BD24 */ int create();
7181

7282
void setBump() { mFlags |= 4; }
7383
void setEventWolf() { mFlags |= 0x80; }
@@ -77,7 +87,7 @@ class daNPC_TK_c : public fopAc_ac_c {
7787

7888
void setHawkPath(u8 i_pathNo) {
7989
if (i_pathNo != 0xFF) {
80-
field_0x6c8 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
90+
mpPath1 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
8191
}
8292
}
8393

@@ -86,26 +96,112 @@ class daNPC_TK_c : public fopAc_ac_c {
8696
void setBackHanjo() { mFlags |= 0x20; }
8797
void setHanjoHand() { mFlags |= 0x40; }
8898
void setQuickHanjoHand() { mFlags |= 0x200; }
89-
BOOL isHanjoHand() { return field_0x6ad != 0; }
99+
BOOL isHanjoHand() { return mIsHanjoHand != 0; }
90100

91101
private:
92-
/* 0x568 */ u8 field_0x568[0x6ad - 0x568];
93-
/* 0x6AD */ u8 field_0x6ad;
94-
/* 0x568 */ u8 field_0x6ae[0x6BE - 0x6ae];
102+
/* 0x568 */ request_of_phase_process_class mPhase;
103+
/* 0x570 */ mDoExt_McaMorfSO* mpMorf;
104+
/* 0x574 */ Z2Creature mSound;
105+
/* 0x604 */ cXyz field_0x604;
106+
/* 0x610 */ cXyz field_0x610;
107+
/* 0x61C */ cXyz field_0x61c;
108+
/* 0x628 */ cXyz field_0x628;
109+
/* 0x634 */ fopAc_ac_c* field_0x634;
110+
/* 0x638 */ daNpc_Hanjo_c* mpMaster;
111+
/* 0x63C */ cXyz field_0x63c[5];
112+
/* 0x678 */ f32 field_0x678;
113+
/* 0x67D */ f32 field_0x67c;
114+
/* 0x67E */ f32 field_0x680;
115+
/* 0x67E */ f32 field_0x684;
116+
/* 0x688 */ s32 field_0x688;
117+
/* 0x68C */ s32 mActionType;
118+
/* 0x690 */ s32 field_0x690;
119+
/* 0x694 */ s32 field_0x694;
120+
/* 0x698 */ s32 field_0x698;
121+
/* 0x69C */ s16 field_0x69c;
122+
/* 0x69E */ s16 field_0x69e;
123+
/* 0x6A0 */ s16 field_0x6a0;
124+
/* 0x6A2 */ s16 field_0x6a2;
125+
/* 0x6A4 */ s16 field_0x6a4;
126+
/* 0x6A5 */ s16 field_0x6a6;
127+
/* 0x6A8 */ s16 field_0x6a8;
128+
/* 0x6AA */ s16 field_0x6aa;
129+
/* 0x6AC */ u8 mCarryType;
130+
/* 0x6AD */ u8 mIsHanjoHand;
131+
/* 0x6AE */ u8 field_0x6ae;
132+
/* 0x6B0 */ s32 field_0x6b0;
133+
/* 0x6B4 */ s32 field_0x6b4;
134+
/* 0x6B8 */ s32 field_0x6b8;
135+
/* 0x6BC */ bool mIsExecutingAction;
136+
/* 0x6BD */ u8 field_0x6bd;
95137
/* 0x6BE */ u16 mFlags;
96-
/* 0x6C0 */ u8 field_0x6c0[0x6C8 - 0x6C0];
97-
/* 0x6C8 */ dPath* field_0x6c8;
98-
/* 0x6CC */ u8 field_0x6cc[0x71a - 0x6CC];
138+
/* 0x6C0 */ u8 field_0x6c0;
139+
/* 0x6C1 */ u8 field_0x6c1;
140+
/* 0x6C2 */ u8 field_0x6c2;
141+
/* 0x6C3 */ u8 field_0x6c3;
142+
/* 0x6C4 */ u8 field_0x6c4;
143+
/* 0x6C5 */ u8 field_0x6c5;
144+
/* 0x6C6 */ u8 field_0x6c6;
145+
/* 0x6C7 */ u8 field_0x6c7;
146+
/* 0x6C8 */ dPath* mpPath1;
147+
/* 0x6CC */ s8 mPathStep2;
148+
/* 0x6D0 */ dPathCurve field_0x6d0;
149+
/* 0x6DC */ dPath* mWolfPathData;
150+
/* 0x6E0 */ f32 field_0x6e0;
151+
/* 0x6E4 */ f32 field_0x6e4;
152+
/* 0x6E8 */ u8 field_0x6e8;
153+
/* 0x6E9 */ u8 field_0x6e9;
154+
/* 0x6EA */ u8 field_0x6ea;
155+
/* 0x6EB */ u8 field_0x6eb;
156+
/* 0x6EC */ fopAc_ac_c* field_0x6ec;
157+
/* 0x6F0 */ cXyz field_0x6f0;
158+
/* 0x6FC */ cXyz field_0x6fc;
159+
/* 0x708 */ f32 field_0x708;
160+
/* 0x70C */ s32 field_0x70c;
161+
/* 0x710 */ s16 field_0x710;
162+
/* 0x714 */ f32 field_0x714;
163+
/* 0x718 */ u8 field_0x718;
164+
/* 0x719 */ u8 field_0x719;
99165
/* 0x71A */ u8 field_0x71a;
100-
/* 0x6CC */ u8 field_0x71b[0xB44 - 0x71b];
166+
/* 0x71B */ u8 field_0x71b[0x724 - 0x71b];
167+
/* 0x724 */ dMsgFlow_c mMsgFlow;
168+
/* 0x770 */ dBgS_AcchCir mCircle;
169+
/* 0x7B0 */ dBgS_ObjAcch mAcch;
170+
/* 0x988 */ dCcD_Stts mStts;
171+
/* 0x9C4 */ dCcD_Sph mSphere;
172+
/* 0xAFC */ dCcU_AtInfo mAtInfo;
173+
/* 0xB20 */ u32 field_0xb20;
174+
/* 0xB24 */ u32 field_0xb24;
175+
/* 0xB28 */ u32 field_0xb28[4];
176+
/* 0x71A */ u32 field_0xb38;
177+
/* 0xB3C */ s32 field_0xb3c;
178+
/* 0xB40 */ u8 field_0xb40;
101179
};
102180

103181
STATIC_ASSERT(sizeof(daNPC_TK_c) == 0xB44);
104182

105-
class daNPC_TK_HIO_c {
183+
class daNPC_TK_HIO_c : public JORReflexible {
106184
public:
107185
daNPC_TK_HIO_c();
108-
~daNPC_TK_HIO_c();
186+
virtual ~daNPC_TK_HIO_c() {}
187+
188+
void genMessage(JORMContext*) {}
189+
190+
s8 field_0x4;
191+
f32 field_0x8;
192+
f32 field_0xc;
193+
f32 field_0x10;
194+
f32 field_0x14;
195+
f32 field_0x18;
196+
f32 field_0x1c;
197+
f32 field_0x20;
198+
f32 field_0x24;
199+
f32 field_0x28;
200+
f32 mFlySpeed;
201+
f32 field_0x30;
202+
f32 field_0x34;
203+
f32 field_0x38;
204+
u8 field_0x3c;
109205
};
110206

111207

include/d/actor/d_a_obj_pumpkin.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,22 @@ class daObj_Pumpkin_c : public fopAc_ac_c {
3232
/* 80CB7E98 */ void setHamonPrtcl();
3333
/* 80CB7EF4 */ void crash();
3434

35+
void setMtx(MtxP mtx) {
36+
cXyz newPos;
37+
field_0xbb3 = 1;
38+
mDoMtx_stack_c::copy(mtx);
39+
mDoMtx_stack_c::multVecZero(&newPos);
40+
current.pos = newPos;
41+
old.pos = current.pos;
42+
mpModel->setBaseTRMtx(mtx);
43+
}
44+
3545
private:
36-
/* 0x568 */ u8 field_0x568[0xbbc - 0x568];
46+
/* 0x568 */ u8 field_0x568[0x574 - 0x568];
47+
/* 0x574 */ J3DModel* mpModel;
48+
/* 0x578 */ u8 field_0x578[0xbb3 - 0x578];
49+
/* 0xB7C */ u8 field_0xbb3;
50+
/* 0xB7E */ u8 field_0xbb4[0xbbc - 0xbb4];
3751
};
3852

3953
STATIC_ASSERT(sizeof(daObj_Pumpkin_c) == 0xbbc);

include/d/actor/d_a_player.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1156,7 +1156,7 @@ class daPy_py_c : public fopAc_ac_c {
11561156
}
11571157

11581158
void onFishingRelease() {
1159-
this->mEndResetFlg0 |= 0x4000000;
1159+
onEndResetFlg0(ERFLG0_UNK_4000000);
11601160
}
11611161

11621162
static daMidna_c* m_midnaActor;
@@ -1165,6 +1165,10 @@ class daPy_py_c : public fopAc_ac_c {
11651165
void setGiantPuzzleEnd() { mSpecialMode = 0; }
11661166

11671167
BOOL checkAutoJumpStart() const { return checkResetFlg0(RFLG0_UNK_100); }
1168+
1169+
void onForceGrabRebound() {
1170+
onEndResetFlg2(ERFLG2_UNK_8);
1171+
}
11681172
};
11691173

11701174
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4);

0 commit comments

Comments
 (0)