Skip to content

Commit 50fe755

Browse files
committed
DLL 29 interface
1 parent 2f6c047 commit 50fe755

File tree

3 files changed

+78
-48
lines changed

3 files changed

+78
-48
lines changed

include/dlls/engine/29_gplay.h

+56-11
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22
#define _DLLS_29_H
33

44
#include <PR/ultratypes.h>
5+
#include "sys/math.h"
56
#include "dll_def.h"
67

78
// size: 0x10
89
typedef struct {
9-
f32 x;
10-
f32 y;
11-
f32 z;
12-
u8 unk0xC;
13-
u8 unk0xD;
14-
u8 unk0xE[2];
10+
/*0x0*/ Vec3f vec;
11+
/*0xC*/ u8 unk0xC;
12+
/*0xD*/ s8 unk0xD;
13+
/*0xE*/ u8 unk0xE[2];
1514
} GplayStruct5;
1615

1716
// size: 0x14
@@ -139,10 +138,56 @@ typedef struct {
139138
GplayStruct4 unk0x17ac;
140139
} GplayStruct7;
141140

142-
// DLL_INTERFACE_BEGIN(29_gplay)
143-
144-
// DLL_INTERFACE_END()
145-
146-
typedef struct DLLInst_Unknown DLLInst_29_gplay;
141+
DLL_INTERFACE_BEGIN(29_gplay)
142+
/*0*/ void (*func_110)(s8 param1);
143+
/*1*/ void (*func_198)(s8 param1, u8 *param2);
144+
/*2*/ s32 (*func_3E4)(s8 param1, u8 param2);
145+
/*3*/ void (*func_638)(s8 param1, s8 param2);
146+
/*4*/ void (*func_6AC)();
147+
/*5*/ void (*func_94C)(s32 param1);
148+
/*6*/ void (*func_958)(Vec3f *param1, s16 param2, s32 param3, s32 param4);
149+
/*7*/ void (*func_AE0)();
150+
/*8*/ void (*func_B3C)(Vec3f *param1, s16 param2, s32 param3);
151+
/*9*/ void (*func_CBC)();
152+
/*10*/ void (*func_D20)();
153+
/*11*/ s32 (*func_D70)();
154+
/*12*/ void (*func_8D8)();
155+
/*13*/ u32 (*func_79C)();
156+
/*14*/ GplayStruct4 *(*func_930)();
157+
/*15*/ u8 (*func_143C)(s32 param1);
158+
/*16*/ void (*func_139C)(s32 param1, s32 param2);
159+
/*17*/ void (*func_1378)(s32 param1, s32 param2);
160+
/*18*/ u8 (*func_14F0)(s32 param1, s32 param2);
161+
/*19*/ void (*func_16C4)(s32 param1, s32 param2, s32 param3);
162+
/*20*/ u16 (*func_1590)(s32 param1);
163+
/*21*/ void (*func_15B8)(s32 param1);
164+
/*22*/ u32 (*func_163C)(s32 param1);
165+
/*23*/ void (*func_1680)(s32 param1);
166+
/*24*/ void (*func_1014)(u32 param1, f32 param2);
167+
/*25*/ s32 (*func_109C)(u32 param1);
168+
/*26*/ f32 (*func_10F4)(u32 param1);
169+
/*27*/ void (*func_115C)();
170+
/*28*/ u8 (*func_E90)();
171+
/*29*/ void (*func_EAC)(u8 character);
172+
/*30*/ void *(*func_1254)();
173+
/*31*/ s16 (*func_121C)();
174+
/*32*/ void (*func_1238)(s32 param1);
175+
/*33*/ GplayStruct7 *(*func_E74)();
176+
/*34*/ GplayStruct10 *(*func_ED4)();
177+
/*35*/ GplayStruct5 *(*func_F04)();
178+
/*36*/ GplayStruct11 *(*func_F30)();
179+
/*37*/ GplayStruct6 *(*func_F60)();
180+
/*38*/ GplayStruct12 *(*func_FA8)();
181+
/*39*/ GplayStruct13 *(*func_FE8)();
182+
/*40*/ GplayStruct14 *(*func_1974)();
183+
/*41*/ GplayStruct14 *(*func_19B8)();
184+
/*42*/ u32 (*func_1270)();
185+
/*43*/ u32 (*func_19FC)(u8 param1);
186+
/*44*/ void (*func_1A48)(u8 param1);
187+
/*45*/ s32 (*func_1A90)(u8 param1);
188+
/*46*/ void (*func_1AF8)(u8 param1, u8 param2);
189+
/*47*/ u32 (*func_1B78)(u8 param1);
190+
/*48*/ void (*func_1BC4)(u8 param1);
191+
DLL_INTERFACE_END()
147192

148193
#endif //_DLLS_29_H

src/dlls/engine/29_gplay/gplay.c

+10-10
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ void gplay_func_198(s8 param1, u8 *param2) {
142142

143143
for (i = 0; i < 120; i++) {
144144
if (data_0[i] != 0) {
145-
gDLL_29_gplay->exports->func[16].withTwoArgs(i, 1);
145+
gDLL_29_gplay->exports->func_139C(i, 1);
146146
}
147147
}
148148

@@ -309,9 +309,9 @@ void gplay_func_958(Vec3f *param1, s16 param2, s32 param3, s32 param4) {
309309
bss_10.unk0.unk0x16F4[bss_10.unk0.unk0.unk0.character].unk0x10 &= ~1;
310310
}
311311

312-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].x = param1->x;
313-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].y = param1->y;
314-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].z = param1->z;
312+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.x = param1->x;
313+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.y = param1->y;
314+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.z = param1->z;
315315
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].unk0xC = (u8)(param2 >> 8);
316316
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].unk0xD = param4;
317317

@@ -344,9 +344,9 @@ void gplay_func_B3C(Vec3f *param1, s16 param2, s32 param3) {
344344
bss_4->unk0x16F4[bss_4->unk0.unk0.character].unk0x10 &= ~1;
345345
}
346346

347-
bss_4->unk0x16d4[bss_4->unk0.unk0.character].x = param1->x;
348-
bss_4->unk0x16d4[bss_4->unk0.unk0.character].y = param1->y;
349-
bss_4->unk0x16d4[bss_4->unk0.unk0.character].z = param1->z;
347+
bss_4->unk0x16d4[bss_4->unk0.unk0.character].vec.x = param1->x;
348+
bss_4->unk0x16d4[bss_4->unk0.unk0.character].vec.y = param1->y;
349+
bss_4->unk0x16d4[bss_4->unk0.unk0.character].vec.z = param1->z;
350350
bss_4->unk0x16d4[bss_4->unk0.unk0.character].unk0xC = (u8)(param2 >> 8);
351351
bss_4->unk0x16d4[bss_10.unk0.unk0.unk0.character].unk0xD = param3;
352352
}
@@ -378,9 +378,9 @@ static void gplay_func_D94() {
378378
func_8001442C();
379379

380380
func_800142A0(
381-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].x,
382-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].y,
383-
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].z);
381+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.x,
382+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.y,
383+
bss_10.unk0.unk0x16d4[bss_10.unk0.unk0.unk0.character].vec.z);
384384

385385
if (func_8000F44C() != 4) {
386386
set_menu_page(1);

src/main.c

+12-27
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ void func_80013D80(void)
366366
set_menu_page(8);
367367
}
368368

369-
gDLL_29_gplay->exports->func[27].asVoid();
369+
gDLL_29_gplay->exports->func_115C();
370370

371371
} else {
372372
update_obj_models();
@@ -459,23 +459,11 @@ void func_80014074(void)
459459
}
460460
}
461461

462-
typedef struct
463-
{
464-
s32 unk0;
465-
s32 unk4;
466-
s32 unk8;
467-
s8 unkC;
468-
s8 unkD;
469-
} GPlay00;
470-
471-
void func_80048054(s32, s32, GPlay00 *, s32 *, s32 *, s8 *); /* extern */
462+
void func_80048054(s32, s32, f32 *, f32 *, f32 *, s8 *); /* extern */
472463

473464
void func_800141A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
474465
{
475-
GPlay00 * sp24;
476-
s32 * temp_t4;
477-
s8 * temp_t5;
478-
GPlay00 * temp_v0;
466+
GplayStruct5 *temp_v0;
479467

480468
func_8001440C(0);
481469

@@ -486,15 +474,12 @@ void func_800141A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
486474
clear_PlayerPosBuffer();
487475

488476
gDLL_30->exports->func[0].asVoid();
489-
gDLL_29_gplay->exports->func[29].withOneArg((u8)arg2);
477+
gDLL_29_gplay->exports->func_EAC(arg2);
490478

491-
temp_v0 = gDLL_29_gplay->exports->func[35].asVoidS32();
492-
temp_t4 = &temp_v0->unk8;
493-
temp_t5 = &temp_v0->unkD;
494-
sp24 = temp_v0;
479+
temp_v0 = gDLL_29_gplay->exports->func_F04();
495480

496-
func_80048054(arg0, arg1, temp_v0, &temp_v0->unk4, temp_t4, temp_t5);
497-
gDLL_29_gplay->exports->func[6].withFourArgs(sp24, 0, 0, sp24->unkD);
481+
func_80048054(arg0, arg1, &temp_v0->vec.x, &temp_v0->vec.y, &temp_v0->vec.z, &temp_v0->unk0xD);
482+
gDLL_29_gplay->exports->func_958(&temp_v0->vec, 0, 0, temp_v0->unk0xD);
498483

499484
ossceduler_stack = 1;
500485
D_8008C968 = arg3;
@@ -516,10 +501,10 @@ void func_800142F0(f32 x, f32 y, f32 z, s32 arg3)
516501

517502
func_8001440C(0);
518503

519-
gDLL_29_gplay->exports->func[1].withTwoArgs(-1, 0);
520-
gDLL_29_gplay->exports->func[29].withOneArg((u8)arg3);
521-
gDLL_29_gplay->exports->func[6].withFourArgs(&pos, 0, 0, 0);
522-
gDLL_29_gplay->exports->func[7].asVoid();
504+
gDLL_29_gplay->exports->func_198(-1, 0);
505+
gDLL_29_gplay->exports->func_EAC(arg3);
506+
gDLL_29_gplay->exports->func_958(&pos, 0, 0, 0);
507+
gDLL_29_gplay->exports->func_AE0();
523508
}
524509

525510
void func_800143A4(void) {
@@ -656,7 +641,7 @@ void init_bittable(void)
656641
{
657642
queue_alloc_load_file(&gFile_BITTABLE, 0x37);
658643
gSizeBittable = get_file_size(BITTABLE_BIN) >> 1;
659-
charStats_pointer = gDLL_29_gplay->exports->func[0x21].asVoidS32();
644+
charStats_pointer = gDLL_29_gplay->exports->func_E74();
660645
}
661646

662647
#pragma GLOBAL_ASM("asm/nonmatchings/main/mainSetBits.s")

0 commit comments

Comments
 (0)