More function matching in code_80057C60 (#149)

This commit is contained in:
ChiefFruitcake
2022-01-24 22:22:43 -05:00
committed by GitHub
parent 78681aa5ba
commit f0e40cb746
25 changed files with 603 additions and 1921 deletions
+263 -567
View File
@@ -9,48 +9,6 @@
#include "code_80040E50.h"
#include "math_util.h"
void func_8001C3C4(s32);
void func_80041D34(void);
void func_8004E638(s32);
void func_8004E78C(s32);
void func_8004E800(s32);
void func_8004E998(s32);
void func_8004EB30(s32);
void func_8004EB38(s32);
void func_8004ED40(s32);
void func_8004EE54(s32);
void func_8004F020(s32);
void func_8004F3E4(s32);
void func_8004FA78(s32);
void func_80050320(void);
void func_800514BC(void);
void func_800517C8(void);
void func_80051EBC(void);
void func_80051EF8(void);
void func_80051F9C(void);
void func_80052044(void);
void func_80052080(void);
void func_80052C60(void);
void func_800532A4(s32);
void func_80054BE8(s32);
void func_80055F48(s32);
void func_80056160(s32);
void func_800744CC(void);
void func_80077640(void);
void func_80078C70(s32);
void func_8007A948(s32);
void func_8007AA44(s32);
void func_8007BB9C(s32);
void func_8007C2F8(s32);
void func_80081210(void);
void func_80086604(void);
void func_80086D80(void);
void func_800892E0(s32);
void func_8008C1D8(s32*);
void func_8008C1E0(s32*, s32*);
void func_8008C204(void);
void func_802A3730(struct UnkStruct_800DC5EC*);
// UI Code?
void func_80057C60(void) {
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
@@ -3178,204 +3136,105 @@ void func_8005D290(void) {
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D290.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005D6C0(Player *player) {
Player *temp_v1;
Player *temp_v1_2;
Player *temp_v1_3;
f32 *temp_v1_4;
s32 temp_v0;
s32 temp_v0_2;
s32 temp_v0_3;
s32 temp_v0_4;
Player *phi_v1;
s32 phi_v0;
Player *phi_v1_2;
s32 phi_v0_2;
Player *phi_v1_3;
s32 phi_v0_3;
f32 *phi_v1_4;
s32 phi_v0_4;
phi_v1 = player;
phi_v0 = 0;
phi_v0_2 = 0;
phi_v0_3 = 0;
do {
temp_v0 = phi_v0 + 1;
temp_v1 = phi_v1 + 0x48;
temp_v1->unk_22C = 0;
temp_v1->unk22E = 0;
temp_v1->unk222 = 0;
phi_v1 = temp_v1;
phi_v0 = temp_v0;
} while (temp_v0 < 0xA);
phi_v1_2 = player;
do {
temp_v0_2 = phi_v0_2 + 1;
temp_v1_2 = phi_v1_2 + 0x48;
temp_v1_2->unkA9C = 0;
temp_v1_2->unkA9E = 0;
temp_v1_2->unkA92 = 0;
phi_v1_2 = temp_v1_2;
phi_v0_2 = temp_v0_2;
} while (temp_v0_2 < 0xA);
phi_v1_3 = player;
do {
temp_v0_3 = phi_v0_3 + 1;
temp_v1_3 = phi_v1_3 + 0x48;
temp_v1_3->unk4FC = 0;
temp_v1_3->unk4FE = 0;
temp_v1_3->unk4F2 = 0;
phi_v1_3 = temp_v1_3;
phi_v0_3 = temp_v0_3;
} while (temp_v0_3 < 0xA);
player->unk814 = 0;
player->unk816 = 0;
player->unk80A = 0;
player->unk85C = 0;
player->unk85E = 0;
player->unk852 = 0;
phi_v1_4 = &player->unk_090;
phi_v0_4 = 2;
do {
temp_v0_4 = phi_v0_4 + 4;
phi_v1_4->unk85C = 0;
phi_v1_4->unk85E = 0;
phi_v1_4->unk852 = 0;
phi_v1_4->unk8A4 = 0;
phi_v1_4->unk8A6 = 0;
phi_v1_4->unk89A = 0;
phi_v1_4->unk8EC = 0;
phi_v1_4->unk8EE = 0;
phi_v1_4->unk8E2 = 0;
temp_v1_4 = phi_v1_4 + 0x120;
temp_v1_4->unk6F4 = 0;
temp_v1_4->unk6F6 = 0;
temp_v1_4->unk6EA = 0;
phi_v1_4 = temp_v1_4;
phi_v0_4 = temp_v0_4;
} while (temp_v0_4 != 0xA);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D6C0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005D794(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, s8 arg5, s8 arg6) {
arg1->unk0 = arg2;
arg1->unk4 = arg3;
arg1->unk8 = arg4;
arg1->unk20 = -arg0->unk2E;
arg1->unk14 = arg5;
arg1->unk10 = arg6;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D794.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005D7D8(void *arg0, s8 arg1, f32 arg2) {
arg0->unk1C = 1;
arg0->unk12 = arg1;
arg0->unk1E = 0;
arg0->unkC = arg2;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D7D8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005D800(void *arg0, s32 arg1, s16 arg2) {
arg0->unk38 = (arg1 >> 0x10) & 0xFF;
arg0->unk3A = (arg1 >> 8) & 0xFF;
arg0->unk3C = arg1 & 0xFF;
arg0->unk3E = arg2;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D800.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005D82C(void *arg0, s32 arg1, s16 arg2) {
s16 temp_t3;
s16 temp_t6;
void func_8005D6C0(Player* arg0) {
s32 temp_v0;
arg0 = arg0;
temp_v0 = random_int(0x30);
temp_t3 = ((arg1 >> 8) - temp_v0) & 0xFF;
temp_t6 = (arg1 - temp_v0) & 0xFF;
arg0->unk38 = ((arg1 >> 0x10) - temp_v0) & 0xFF;
arg0->unk3A = temp_t3;
arg0->unk3C = temp_t6;
arg0->unk3E = arg2;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D82C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75
? func_8005D794(Player *, f32, f32, f32, f32, s32, s32); /* extern */
? func_8005D7D8(Player *, ?, ?); /* extern */
? func_8005D800(Player *, ?, ?); /* extern */
void func_8005D898(Player *player, s32 arg1, s8 arg2, s32 arg3) {
Player *temp_s1;
Player *temp_s1_2;
s32 temp_lo;
void *temp_s2;
void *temp_s2_2;
Player *phi_s1;
s32 phi_v0;
s32 phi_v0_2;
void *phi_s2;
if ((s32) player->unk_0C0 >= 0) {
temp_s2 = player + ((s16) arg1 * 0x48);
temp_s1 = temp_s2 + 0x528;
func_8005D794(temp_s1, player->boundingBoxCorners[2].cornerX, player->boundingBoxCorners[2].cornerGroundY + 2.0f, player->boundingBoxCorners[2].cornerZ, (bitwise f32) player->boundingBoxCorners[2].surfaceType, 1);
phi_s1 = temp_s1;
phi_s2 = temp_s2;
} else {
temp_s2_2 = player + ((s16) arg1 * 0x48);
temp_s1_2 = temp_s2_2 + 0x528;
func_8005D794(player, (bitwise f32) temp_s1_2, player->boundingBoxCorners[3].cornerX, player->boundingBoxCorners[3].cornerGroundY + 2.0f, player->boundingBoxCorners[3].cornerZ, (s32) player->boundingBoxCorners[3].surfaceType, 0);
phi_s1 = temp_s1_2;
phi_s2 = temp_s2_2;
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0)
{
arg0->unk_258[temp_v0].unk_01C = 0;
arg0->unk_258[temp_v0].unk_01E = 0;
arg0->unk_258[temp_v0].unk_012 = 0;
}
temp_lo = (s32) player->unk_0C0 / 182;
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0)
{
arg0->unk_258[30 + temp_v0].unk_01C = 0;
arg0->unk_258[30 + temp_v0].unk_01E = 0;
arg0->unk_258[30 + temp_v0].unk_012 = 0;
}
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0)
{
arg0->unk_258[10 + temp_v0].unk_01C = 0;
arg0->unk_258[10 + temp_v0].unk_01E = 0;
arg0->unk_258[10 + temp_v0].unk_012 = 0;
}
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0)
{
arg0->unk_258[20 + temp_v0].unk_01C = 0;
arg0->unk_258[20 + temp_v0].unk_01E = 0;
arg0->unk_258[20 + temp_v0].unk_012 = 0;
}
}
void func_8005D794(Player* arg0, UnkPlayerStruct258* arg1, f32 arg2, f32 arg3, f32 arg4, s8 arg5, s8 arg6) {
arg1->unk_008 = arg4;
arg1->unk_000 = arg2;
arg1->unk_004 = arg3;
arg1->unk_020 = -arg0->unk_02E;
arg1->unk_014 = arg5;
arg1->unk_010 = arg6;
}
void func_8005D7D8(UnkPlayerStruct258* arg0, s8 arg1, f32 arg2) {
arg0->unk_01C = 1;
arg0->unk_012 = arg1;
arg0->unk_01E = 0;
arg0->unk_00C = arg2;
}
void func_8005D800(UnkPlayerStruct258* arg0, s32 arg1, s16 arg2) {
arg0->unk_038 = (u8) (arg1 >> 16);
arg0->unk_03A = (u8) (arg1 >> 8);
arg0->unk_03C = (u8) arg1;
arg0->unk_03E = arg2;
}
void func_8005D82C(UnkPlayerStruct258* arg0, s32 arg1, s16 arg2) {
s32 temp_v0;
temp_v0 = random_int(0x30);
arg0->unk_038 = (u8) ((u8) (arg1 >> 0x10) - temp_v0) ;
arg0->unk_03A = (u8) ((u8) (arg1 >> 8) - temp_v0) ;
arg0->unk_03C = (u8) ((u8) arg1 - temp_v0) ;
arg0->unk_03E = arg2;
}
void func_8005D898(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
s32 temp_lo;
if (player->unk_0C0 >= 0) {
func_8005D794(player, &player->unk_258[10 + arg1], player->boundingBoxCorners[2].cornerX, player->boundingBoxCorners[2].cornerGroundY + 2.0f, player->boundingBoxCorners[2].cornerZ, player->boundingBoxCorners[2].surfaceType, 1);
} else {
func_8005D794(player, &player->unk_258[10 + arg1], player->boundingBoxCorners[3].cornerX, player->boundingBoxCorners[3].cornerGroundY + 2.0f, player->boundingBoxCorners[3].cornerZ, player->boundingBoxCorners[3].surfaceType, 0);
}
temp_lo = player->unk_0C0 / 182;
if ((temp_lo >= 7) || (temp_lo < -6)) {
func_8005D7D8(phi_s1, 1, 0x3EB33333);
func_8005D7D8(&player->unk_258[10 + arg1], 1, 0.35f);
if (player->unk_22A == 0) {
func_8005D800(phi_s1, 0xFFFFFF, 0x70);
func_8005D800(&player->unk_258[10 + arg1], 0xFFFFFF, 0x70);
}
phi_v0 = (s32) player->unk_22A;
if (player->unk_22A == 1) {
func_8005D800(phi_s1, 0xFFFF00, 0x70);
phi_v0 = (s32) player->unk_22A;
func_8005D800(&player->unk_258[10 + arg1], 0xFFFF00, 0x70);
}
phi_v0_2 = phi_v0;
if (phi_v0 >= 2) {
func_8005D800(phi_s1, 0xFF9600, 0x70);
phi_v0_2 = (s32) player->unk_22A;
if (player->unk_22A >= 2) {
func_8005D800(&player->unk_258[10 + arg1], 0xFF9600, 0x70);
}
if (phi_v0_2 >= 2) {
phi_s2->unk568 = 2;
if (player->unk_22A >= 2) {
// Why not put this in previous if statement?
player->unk_258[10 + arg1].unk_040 = 2;
return;
}
phi_s2->unk568 = (s16) phi_v0_2;
player->unk_258[10 + arg1].unk_040 = player->unk_22A;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005D898.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -3396,16 +3255,11 @@ void func_8005DA30(s32 arg0, s16 arg1, s32 arg2, s8 arg3, s8 arg4) {
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005DA30.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_8005DAD8(void *arg0, s16 arg1, s16 arg2, s16 arg3) {
arg0->unk38 = arg1;
arg0->unk3E = arg3;
arg0->unk40 = arg2;
void func_8005DAD8(UnkPlayerStruct258* arg0, s16 arg1, s16 arg2, s16 arg3) {
arg0->unk_038 = arg1;
arg0->unk_03E = arg3;
arg0->unk_040 = arg2;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005DAD8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75
@@ -4776,97 +4630,44 @@ void func_80060BCC(void *arg0, s16 arg1, s32 arg2, ? arg3) {
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80060BCC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8005D794(s32, f32, f32, f32, s32, s32); // extern
? func_8005D7D8(s32, ?, ?); // extern
? func_8005D800(s32, ?, ?); // extern
f32 sins(u16); // extern
f32 coss(u16); // extern
extern f64 D_800EE5A8;
extern f64 D_800EE5B0;
void func_80060F50(Player* arg0, s16 arg1, UNUSED s8 arg2, s8 arg3) {
func_8005D794(arg0, &arg0->unk_258[arg1], 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(&arg0->unk_258[arg1], 5, 4.0f);
void func_80060F50(void *arg0, s16 arg1, ? arg2, s8 arg3) {
s16 temp_v0;
s32 temp_s1;
void *temp_s0;
temp_s0 = arg0 + (arg1 * 0x48);
temp_s1 = temp_s0 + 0x258;
func_8005D794(temp_s1, 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(temp_s1, 5, 0x40800000);
temp_v0 = gCurrentCourseId;
if ((temp_v0 == 2) || (temp_v0 == 0x13)) {
func_8005D800(temp_s1, 0xFF0000, 0xFF);
if ((gCurrentCourseId == COURSE_BOWSER_CASTLE) || (gCurrentCourseId == COURSE_BIG_DONUT)) {
func_8005D800(&arg0->unk_258[arg1], 0xFF0000, 0xFF);
} else {
func_8005D800(temp_s1, 0xFFFFFF, 0xFF);
func_8005D800(&arg0->unk_258[arg1], 0xFFFFFF, 0xFF);
}
temp_s0->unk260 = (coss(temp_s0->unk278) * D_800EE5A8) + arg0->unk1C;
temp_s0->unk258 = (sins(temp_s0->unk278) * D_800EE5B0) + arg0->unk14;
temp_s0->unk25C = D_801652A0[arg3];
arg0->unkDE = arg0->unkDE & 0xFFF7;
arg0->unk_258[arg1].unk_008 = (coss(arg0->unk_258[arg1].unk_020) * D_800EE5A8) + arg0->posZ;
arg0->unk_258[arg1].unk_000 = (sins(arg0->unk_258[arg1].unk_020) * D_800EE5B0) + arg0->posX;
arg0->unk_258[arg1].unk_004 = D_801652A0[arg3];
arg0->unk_0DE &= ~0x0008;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80060F50.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8005D794(s32, f32, f32, f32, s32, s32); // extern
? func_8005D7D8(s32, ?, ?); // extern
? func_8005D800(s32, ?, ?); // extern
void func_80061094(s32 arg0, s16 arg1, ? arg2, ? arg3) {
void *sp2C;
s32 sp28;
s32 temp_a1;
void *temp_v0;
void func_80061094(Player* arg0, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
if (arg1 == 0) {
temp_v0 = arg0 + (arg1 * 0x48);
temp_a1 = temp_v0 + 0x258;
sp28 = temp_a1;
sp2C = temp_v0;
func_8005D794(temp_a1, 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(sp28, 6, 0x40733333);
func_8005D800(sp28, 0xFFFFFF, 0xFF);
temp_v0->unk290 = 0;
temp_v0->unk292 = 0;
temp_v0->unk294 = 0;
func_8005D794(arg0, &arg0->unk_258[arg1], 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(&arg0->unk_258[arg1], 6, 3.8f);
func_8005D800(&arg0->unk_258[arg1], 0xFFFFFF, 0xFF);
arg0->unk_258[arg1].unk_038 = 0;
arg0->unk_258[arg1].unk_03A = 0;
arg0->unk_258[arg1].unk_03C = 0;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80061094.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8005D794(s32, f32, f32, f32, s32, s32); // extern
? func_8005D7D8(s32, ?, ?); // extern
? func_8005D800(s32, ?, ?); // extern
f32 sins(u16); // extern
f32 coss(u16); // extern
void func_80061130(Player* arg0, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
func_8005D794(arg0, &arg0->unk_258[arg1], 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(&arg0->unk_258[arg1], 7, 0.6f);
func_8005D800(&arg0->unk_258[arg1], 0xFFFFFF, 0xD0);
void func_80061130(void *arg0, s16 arg1, ? arg2, ? arg3) {
s32 sp30;
s32 temp_a1;
void *temp_s0;
temp_s0 = arg0 + (arg1 * 0x48);
temp_a1 = temp_s0 + 0x258;
sp30 = temp_a1;
func_8005D794(temp_a1, 0.0f, 0.0f, 0.0f, 0, 0);
func_8005D7D8(sp30, 7, 0x3F19999A);
func_8005D800(sp30, 0xFFFFFF, 0xD0);
temp_s0->unk260 = (coss(temp_s0->unk278) * 6.0f) + arg0->unk1C;
temp_s0->unk258 = (sins(temp_s0->unk278) * 6.0f) + arg0->unk14;
temp_s0->unk298 = 0;
temp_s0->unk27C = 0.0f;
temp_s0->unk25C = arg0->unk18 - 5.0f;
arg0->unk_258[arg1].unk_008 = (coss(arg0->unk_258[arg1].unk_020) * 6.0f) + arg0->posZ;
arg0->unk_258[arg1].unk_000 = (sins(arg0->unk_258[arg1].unk_020) * 6.0f) + arg0->posX;
arg0->unk_258[arg1].unk_004 = arg0->posY - 5.0f;
arg0->unk_258[arg1].unk_040 = 0;
arg0->unk_258[arg1].unk_024 = 0.0f;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80061130.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -5292,99 +5093,76 @@ void func_80061EF4(void *arg0, s16 arg1, s32 arg2, ? arg3) {
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80061EF4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8005D794(void *, void *, f32, f32, f32, s32, s32); // extern
? func_8005D7D8(void *, ?, ?); // extern
? func_8005D800(void *, ?, ?); // extern
f32 sins(s32); // extern
f32 coss(s32); // extern
void func_800621BC(void *arg0, s16 arg1, s32 arg2, ? arg3) {
s32 sp48;
s32 sp44;
f32 sp3C;
void *sp30;
void func_800621BC(Player *arg0, s16 arg1, s32 arg2, UNUSED s8 arg3) {
s32 temp_v1;
void *temp_a1;
void *temp_a1_2;
void *temp_s0;
void *temp_s0_2;
void *temp_v0;
s32 phi_t0;
f32 phi_f2;
s32 phi_t1;
Player *new_var;
f32 phi_f2;
Player *new_var2;
sp48 = 0xFF;
temp_v1 = random_int(8) & 1;
phi_t0 = 0xFF;
temp_v1 = random_int(8) & 1;
if (temp_v1 == 1) {
sp44 = 1;
sp3C = arg0->unk18;
phi_t1 = 1;
phi_t0 = 0;
phi_f2 = arg0->posY;
}
phi_f2 = sp3C;
phi_t1 = sp44;
if (temp_v1 == 0) {
phi_t0 = 0;
phi_f2 = arg0->unk18;
phi_t1 = 0;
if (1) {
phi_t0 = 0;
}
phi_f2 = arg0->posY;
}
if (phi_t0 == 0) {
if ((arg1 == 0) && ((temp_v0 = arg0 + (arg2 * 0x48), (temp_v0->unkAE6 > 0)) || (temp_v0->unkAE4 == 0))) {
temp_s0 = arg0 + (arg1 * 0x48);
temp_a1 = temp_s0 + 0xAC8;
sp30 = temp_a1;
func_8005D794(arg0, temp_a1, 0.0f, phi_f2, 0.0f, phi_t0, phi_t1);
func_8005D7D8(sp30, 8, 0x3F800000);
func_8005D800(sp30, 0xFFFF20, 0xFF);
temp_s0->unkAE8 = 0;
if (temp_s0->unkAD8 == 1) {
temp_s0->unkAE8 = temp_s0->unkAE8 + 0x888;
if ((arg1 == 0) && ((arg0->unk_258[30 + arg2].unk_01E > 0) || (arg0->unk_258[30 + arg2].unk_01C == 0))) {
func_8005D794(arg0, &arg0->unk_258[30 + arg1], 0.0f, phi_f2, 0.0f, phi_t0, phi_t1);
func_8005D7D8(&arg0->unk_258[30 + arg1], 8, 1.0f);
func_8005D800(&arg0->unk_258[30 + arg1], 0xFFFF20, 0xFF);
arg0->unk_258[30 + arg1].unk_020 = 0;
if (arg0->unk_258[30 + arg1].unk_010 == 1) {
arg0->unk_258[30 + arg1].unk_020 += 2184;
} else {
temp_s0->unkAE8 = temp_s0->unkAE8 - 0x888;
arg0->unk_258[30 + arg1].unk_020 -= 2184;
}
temp_s0->unkAD0 = (coss(((temp_s0->unkAE8 - arg0->unk2E) - arg0->unkC0) & 0xFFFF) * 5.0f) + arg0->unk1C;
temp_s0->unkAC8 = (sins(((temp_s0->unkAE8 - arg0->unk2E) - arg0->unkC0) & 0xFFFF) * 5.0f) + arg0->unk14;
arg0->unk_258[30 + arg1].unk_008 = (coss((arg0->unk_258[30 + arg1].unk_020 - arg0->unk_02E) - arg0->unk_0C0) * 5.0f) + arg0->posZ;
arg0->unk_258[30 + arg1].unk_000 = (sins((arg0->unk_258[30 + arg1].unk_020 - arg0->unk_02E) - arg0->unk_0C0) * 5.0f) + arg0->posX;
return;
}
if ((arg0 + (arg2 * 0x48))->unkAE6 > 0) {
temp_s0_2 = arg0 + (arg1 * 0x48);
temp_a1_2 = temp_s0_2 + 0xAC8;
sp30 = temp_a1_2;
func_8005D794(arg0, temp_a1_2, 0.0f, phi_f2, 0.0f, phi_t0, phi_t1);
func_8005D7D8(sp30, 8, 0x3F800000);
func_8005D800(sp30, 0xFFFF20, 0xFF);
temp_s0_2->unkAE8 = 0;
if (temp_s0_2->unkAD8 == 1) {
temp_s0_2->unkAE8 = temp_s0_2->unkAE8 + 0x888;
new_var2 = arg0;
if (new_var2->unk_258[30 + arg2].unk_01E > 0) {
func_8005D794(new_var2, &new_var2->unk_258[30 + arg1], 0.0f, phi_f2, 0.0f, phi_t0, phi_t1);
func_8005D7D8(&new_var2->unk_258[30 + arg1], 8, 1.0f);
func_8005D800(&new_var2->unk_258[30 + arg1], 0xFFFF20, 0xFF);
new_var2->unk_258[30 + arg1].unk_020 = 0;
if (new_var2->unk_258[30 + arg1].unk_010 == 1) {
new_var2->unk_258[30 + arg1].unk_020 += 2184;
} else {
temp_s0_2->unkAE8 = temp_s0_2->unkAE8 - 0x888;
new_var2->unk_258[30 + arg1].unk_020 -= 2184;
}
temp_s0_2->unkAD0 = (coss(((temp_s0_2->unkAE8 - arg0->unk2E) - arg0->unkC0) & 0xFFFF) * 5.0f) + arg0->unk1C;
temp_s0_2->unkAC8 = (sins(((temp_s0_2->unkAE8 - arg0->unk2E) - arg0->unkC0) & 0xFFFF) * 5.0f) + arg0->unk14;
new_var = new_var2;
new_var->unk_258[30 + arg1].unk_008 = (coss((new_var->unk_258[30 + arg1].unk_020 - new_var->unk_02E) - new_var->unk_0C0) * 5.0f) + new_var->posZ;
new_var->unk_258[30 + arg1].unk_000 = (sins((new_var->unk_258[30 + arg1].unk_020 - new_var->unk_02E) - new_var->unk_0C0) * 5.0f) + new_var->posX;
}
// Duplicate return node #17. Try simplifying control flow for better match
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800621BC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_80062484(void *arg0, void *arg1, s32 arg2) {
arg1->unk1C = 1;
arg1->unk4 = arg0->unk74 + 1.0f;
arg1->unk8 = arg0->unk1C;
arg1->unk0 = arg0->unk14;
arg1->unk12 = 4;
arg1->unk1E = 0;
arg1->unk20 = (arg2 * 0x1998) - arg0->unk2E;
void func_80062484(Player* arg0, UnkPlayerStruct258* arg1, s32 arg2) {
arg1->unk_01C = 1;
arg1->unk_004 = arg0->unk_074 + 1.0f;
arg1->unk_008 = arg0->posZ;
arg1->unk_000 = arg0->posX;
arg1->unk_020 = (arg2 * 0x1998) - arg0->unk_02E;
arg1->unk_012 = 4;
arg1->unk_01E = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062484.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
@@ -5578,146 +5356,94 @@ block_42:
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800624D8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern f32 D_800EE5FC;
void func_800628C0(void *arg0, ? arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk80A = 2;
temp_v0->unk818 = -arg0->unk2E;
temp_v0->unk816 = 0;
temp_v0->unk804 = D_800EE5FC;
void func_800628C0(Player* arg0, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_020 = -arg0->unk_02E;
arg0->unk_258[20 + arg3].unk_012 = 2;
arg0->unk_258[20 + arg3].unk_01E = 0;
arg0->unk_258[20 + arg3].unk_00C = D_800EE5FC;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800628C0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_80062914(void *arg0, ? arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk818 = -arg0->unk2E;
temp_v0->unk80A = 4;
temp_v0->unk816 = 0;
temp_v0->unk804 = 1.0f;
void func_80062914(Player* arg0, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_020 = -arg0->unk_02E;
arg0->unk_258[20 + arg3].unk_012 = 4;
arg0->unk_258[20 + arg3].unk_01E = 0;
arg0->unk_258[20 + arg3].unk_00C = 1.0f;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062914.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern f32 D_800EE600;
void func_80062968(void *arg0, ? arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk80A = 5;
temp_v0->unk818 = -arg0->unk2E;
temp_v0->unk816 = 0;
temp_v0->unk804 = D_800EE600;
void func_80062968(Player* arg0, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_020 = -arg0->unk_02E;
arg0->unk_258[20 + arg3].unk_012 = 5;
arg0->unk_258[20 + arg3].unk_01E = 0;
arg0->unk_258[20 + arg3].unk_00C = D_800EE600;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062968.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern f32 D_800EE604;
void func_800629BC(void *arg0, ? arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk80A = 6;
temp_v0->unk818 = -arg0->unk2E;
temp_v0->unk816 = 0;
temp_v0->unk7FC = 0.0f;
temp_v0->unk804 = D_800EE604;
void func_800629BC(Player* arg0, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_020 = -arg0->unk_02E;
arg0->unk_258[20 + arg3].unk_012 = 6;
arg0->unk_258[20 + arg3].unk_01E = 0;
arg0->unk_258[20 + arg3].unk_00C = D_800EE604;
arg0->unk_258[20 + arg3].unk_004 = 0.0f;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800629BC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern f32 D_800EE608;
void func_80062A18(void *arg0, s8 arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk80A = 3;
(arg0 + (arg1 * 0x48))->unk804 = D_800EE608;
temp_v0->unk816 = 1;
temp_v0->unk818 = 0;
arg0->unkB6 = arg0->unkB6 & 0xFF7F;
temp_v0->unk800 = arg0->unk1C;
temp_v0->unk7F8 = arg0->unk14;
temp_v0->unk7FC = arg0->unk18 + 4.0f;
void func_80062A18(Player* arg0, s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_012 = 3;
arg0->unk_258[20 + arg1 /* arg1 instead of arg3 */].unk_00C = D_800EE608;
arg0->unk_258[20 + arg3].unk_01E = 1;
arg0->unk_258[20 + arg3].unk_020 = 0;
arg0->unk_0B6 &= ~0x0080;
arg0->unk_258[20 + arg3].unk_008 = arg0->posZ;
arg0->unk_258[20 + arg3].unk_000 = arg0->posX;
arg0->unk_258[20 + arg3].unk_004 = (arg0->posY + 4.0f);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062A18.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern f32 D_800EE60C;
void func_80062AA8(void *arg0, ? arg1, ? arg2, s8 arg3) {
void *temp_v0;
temp_v0 = arg0 + (arg3 * 0x48);
temp_v0->unk814 = 1;
temp_v0->unk80A = 5;
temp_v0->unk816 = 0;
temp_v0->unk804 = D_800EE60C;
temp_v0->unk7FC = (arg0->unk18 + arg0->unk70) - 2.5;
void func_80062AA8(Player* arg0, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
arg0->unk_258[20 + arg3].unk_01C = 1;
arg0->unk_258[20 + arg3].unk_012 = 5;
arg0->unk_258[20 + arg3].unk_00C = D_800EE60C;
arg0->unk_258[20 + arg3].unk_01E = 0;
arg0->unk_258[20 + arg3].unk_004 = (arg0->posY + arg0->unk_070) - 2.5;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062AA8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
f32 sins(u16); // extern
f32 coss(u16); // extern
void func_80062B18(f32 *arg0, f32 *arg1, f32 *arg2, f32 arg3, f32 arg4, f32 arg5, u16 arg6, u16 arg7) {
UNUSED f32 pad;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 temp_f20;
f32 temp_f20_2;
f32 temp_f20_3;
// Apply the matrix multiplication:
// Matrix is the Jacobian for cartesian to spherical coordinates?
// Get the change in r, theta, and phi for a change in x, y, z?
//
// | arg0 | | cos(arg6)*cos(arg7) cos(arg6)*sin(arg7) -sin(arg6) | | arg3 |
// | | | | | |
// | arg1 | = | -sin(arg7) cos(arg7) 0 | X | arg4 |
// | | | | | |
// | arg2 | | sin(arg6)*cos(arg7) sin(arg6)*sin(arg7) cos(arg6) | | arg5 |
//
sp28 = sins(arg7);
sp2C = coss(arg6);
sp30 = coss(arg7 & 0xFFFF);
temp_f20 = coss(arg6 & 0xFFFF);
*arg0 = ((arg3 * temp_f20 * sp30) + (arg4 * sp2C * sp28)) - (sins(arg6 & 0xFFFF) * arg5);
temp_f20_2 = sins(arg7 & 0xFFFF);
*arg1 = (coss(arg7 & 0xFFFF) * arg4) - (arg3 * temp_f20_2);
sp28 = sins(arg7 & 0xFFFF);
sp2C = sins(arg6 & 0xFFFF);
sp30 = coss(arg7 & 0xFFFF);
temp_f20_3 = sins(arg6 & 0xFFFF);
*arg2 = (coss(arg6 & 0xFFFF) * arg5) + ((arg3 * temp_f20_3 * sp30) + (arg4 * sp2C * sp28));
sp30 = coss(arg7);
temp_f20 = coss(arg6);
// = arg3 * cos(arg6) * cos(arg7) + arg4 * cos(arg6) * sin(arg7) - arg5 * sin(arg6)
*arg0 = (((arg3 * temp_f20) * sp30) + (arg4 * sp2C) * sp28) - (sins(arg6) * arg5);
temp_f20 = sins(arg7);
// = -arg3 * sin(arg7) + arg4 * cos(arg7)
*arg1 = (coss(arg7) * arg4) - (arg3 * temp_f20);
sp28 = sins(arg7);
sp2C = sins(arg6);
sp30 = coss(arg7);
temp_f20 = sins(arg6);
// = arg3 * sin(arg6) * cos(arg7) + arg4 * sin(arg6) * sin(arg7) + arg5 * cos(arg6)
*arg2 = (coss(arg6) * arg5) + (((arg3 * temp_f20) * sp30) + ((arg4 * sp2C) * sp28));
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80062B18.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -6094,54 +5820,37 @@ UNUSED void func_80063FBC(void *arg0, s16 arg1, ? arg2, ? arg3) {
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80063FBC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80062B18(f32 *, f32 *, f32 *, ?, f32, f32, s32, s32); // extern
extern f64 D_800EE6C8;
extern f64 D_800EE6D0;
void func_80064184(void *arg0, s16 arg1, s8 arg2, ? arg3) {
void func_80064184(Player* arg0, s16 arg1, s8 arg2, UNUSED s8 arg3) {
f32 sp44;
f32 sp40;
f32 sp3C;
f32 *sp38;
void *sp34;
f32 *temp_v1;
f32 temp_f0;
void *temp_v0;
temp_v1 = &D_801652A0[arg2];
temp_f0 = *temp_v1;
sp40 = (temp_f0 - arg0->unk18) - 3.0f;
if (((arg0->unkDE & 1) != 0) && (gCurrentCourseId != 6)) {
sp40 = (temp_f0 - arg0->unk18) + D_800EE6C8;
sp40 = D_801652A0[arg2] - arg0->posY - 3.0f;
if (((arg0->unk_0DE & 1) != 0) && (gCurrentCourseId != COURSE_KOOPA_BEACH)) {
sp40 = D_801652A0[arg2] - arg0->posY + D_800EE6C8;
}
temp_v0 = arg0 + (arg1 * 0x48);
sp38 = temp_v1;
sp34 = temp_v0;
func_80062B18(&sp44, &sp40, &sp3C, 0, sp40, ((-temp_v0->unk276 * (arg0->unk94 / 18.0f) * 216.0f) / 10.0f) + -4.0f, -temp_v0->unk278, arg0->unk206 * -2);
temp_v0->unk258 = arg0->unk14 + sp44;
temp_v0->unk260 = arg0->unk1C + sp3C;
temp_v0->unk276 = temp_v0->unk276 + 1;
temp_v0->unk25C = arg0->unk18 + sp40;
if ((temp_v0->unk276 == 0xC) || (*temp_v1 <= (arg0->unk18 - arg0->unk70))) {
temp_v0->unk274 = 0;
temp_v0->unk276 = 0;
temp_v0->unk26A = 0;
func_80062B18(&sp44, &sp40, &sp3C, 0.0f, sp40, -4.0f + ((-arg0->unk_258[arg1].unk_01E * (arg0->unk_094 / 18.0f) * 216.0f) / 10.0f), -arg0->unk_258[arg1].unk_020, 2 * -arg0->unk_206);
arg0->unk_258[arg1].unk_000 = arg0->posX + sp44;
arg0->unk_258[arg1].unk_008 = arg0->posZ + sp3C;
arg0->unk_258[arg1].unk_004 = arg0->posY + sp40;
++arg0->unk_258[arg1].unk_01E;
if ((arg0->unk_258[arg1].unk_01E == 12) || (D_801652A0[arg2] <= (arg0->posY - arg0->unk_070))) {
arg0->unk_258[arg1].unk_01C = 0;
arg0->unk_258[arg1].unk_01E = 0;
arg0->unk_258[arg1].unk_012 = 0;
}
temp_v0->unk270 = 2.0f;
temp_v0->unk264 = temp_v0->unk264 - D_800EE6D0;
if (temp_v0->unk264 < 0.0f) {
temp_v0->unk264 = 0.0f;
arg0->unk_258[arg1].unk_018 = 2.0f;
arg0->unk_258[arg1].unk_00C -= D_800EE6D0;
if (arg0->unk_258[arg1].unk_00C < 0.0f) {
arg0->unk_258[arg1].unk_00C = 0.0f;
}
temp_v0->unk296 = temp_v0->unk296 - 0x16;
if (temp_v0->unk296 <= 0) {
temp_v0->unk296 = 0;
arg0->unk_258[arg1].unk_03E -= 22;
if (arg0->unk_258[arg1].unk_03E <= 0) {
arg0->unk_258[arg1].unk_03E = 0;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80064184.s")
#endif
void func_800643A8(Player* arg0, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
arg0->unk_258[10 + arg1].unk_008 = (D_800EE6D8 * arg0->unk_258[10 + arg1].unk_01E * coss(arg0->unk_258[10 + arg1].unk_020) + arg0->posZ);
@@ -10455,33 +10164,20 @@ void func_8006B974(UNUSED s32 arg0, s8 playerIndex, s8 balloonIndex) {
}
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8006A7C0(s32, s32, s8, s32, s32); // extern
extern ? gPlayerBalloonStatus;
void func_8006B9CC(s32 arg0, s8 arg1) {
u16 *sp24;
s32 temp_t7;
u16 *temp_v0;
temp_t7 = arg1 * 6;
temp_v0 = temp_t7 + &gPlayerBalloonStatus;
if (*temp_v0 != 0) {
sp24 = temp_v0;
func_8006A7C0(0, 0, arg1, 0);
void func_8006B9CC(Player* arg0, s8 arg1) {
if (gPlayerBalloonStatus[arg1][0] != 0) {
func_8006A7C0(arg0, 0.0f, 0.0f, arg1, 0);
}
if ((temp_t7 + &gPlayerBalloonStatus)->unk2 != 0) {
sp24 = temp_t7 + &gPlayerBalloonStatus;
func_8006A7C0(arg0, 0x3FE66666, 0x40266666, arg1, 1);
if (gPlayerBalloonStatus[arg1][1] != 0) {
func_8006A7C0(arg0, 1.8f, 2.6f, arg1, 1);
}
if ((temp_t7 + &gPlayerBalloonStatus)->unk4 != 0) {
func_8006A7C0(arg0, 0xBFE66666, 0x40266666, arg1, 2);
if (gPlayerBalloonStatus[arg1][2] != 0) {
func_8006A7C0(arg0, -1.8f, 2.6f, arg1, 2);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006B9CC.s")
#endif
void func_8006BA94(Player* arg0, s8 playerIndex, s8 arg2) {
if (gPlayerBalloonStatus[playerIndex][0] != BALLOON_STATUS_GONE) {
+313 -240
View File
@@ -1,240 +1,313 @@
#ifndef CODE_80057C60_H
#define CODE_80057C60_H
#include "common_structs.h"
void func_80057C60();
void func_80057CE4();
void func_80057DD0();
void func_80057FC4(u32);
void func_80058090(u32);
void func_800581C8();
void func_800582CC();
void func_80058394();
void func_8005845C();
void func_80058538(u32);
void func_80058640();
void func_800586FC();
void func_800587A4();
void func_8005884C();
void func_800588F4(s32);
void func_80058B58();
void func_80058BF4();
void func_80058C20(u32);
void func_80058DB4(u32);
void func_80058F48();
void func_80058F78();
void func_80059024();
void func_8005902C();
void func_800590D4();
void func_800591B4();
void func_80059358();
void func_80059360();
void func_800593F0();
void func_800593F8();
void func_80059488(s32);
void func_800594F0();
void func_800594F8();
void func_80059528();
void func_80059530();
void func_80059560(s32);
void func_800596A8();
void func_800596D8();
void func_80059710();
void func_80059718();
void func_80059750();
void func_80059780();
void func_800597B8();
void func_800597E8();
void func_80059820(s32);
void func_800598D4(s32);
void func_8005994C();
void func_8005995C();
void func_80059A88(s32);
void func_80059D00();
void func_8005A070();
void func_8005A14C(s32);
void func_8005A380();
void func_8005A3C0();
void func_8005A71C();
void func_8005A74C();
void func_8005A99C();
void func_8005AA34();
void func_8005AA4C();
void func_8005AA6C(s32);
void func_8005AA80();
void func_8005AA94(s32);
void func_8005AAF0();
void func_8005AB20();
void func_8005B914();
void func_8005C360(f32);
void func_8005C6B4(s8, s16*, s16*, s16*);
void func_8005C728();
void func_8005CB60(s32, s32);
void func_8005D0FC(s32);
void func_8005D18C();
void func_8005D1F4(s32);
void func_80062B18(f32*, f32*, f32*, f32, f32, f32, u16, u16);
void func_80062F98(Player*, s16, s8, s8);
void func_800630C0(Player*, s16, s8, s8);
void func_800631A8(Player*, s16, s8, s8);
void func_80063268(Player*, s16, s8, s8);
void func_80063408(Player*, s16, s8, s8);
void func_800635D4(Player*, s16, s8, s8);
void func_800639DC(Player*, s16, s8, s8);
void func_80063BD4(Player*, s16, s8, s8);
void func_80063D58(Player*, s16, s8, s8);
void func_800643A8(Player*, s16, s8, s8);
void func_800647C8(Player*, s16, s8, s8);
void func_800648E4(Player*, s16, s8, s8);
void func_80064988(Player*, s16, s8, s8);
void func_800649F4(Player*, s16, s8, s8);
void func_80064B30(Player*, s16, s8, s8);
void func_80064C74(Player*, s16, s8, s8);
void func_80064DEC(Player*, s16, s8, s8);
void func_80064EA4(Player*, s16, s8, s8);
void func_80064F88(Player*, s16, s8, s8);
void func_80065030(Player*, s16, s8, s8);
void func_800650FC(Player*, s16, s8, s8);
void func_800651F4(Player*, s16, s8, s8);
void func_800658A0(Player*, s8, s16, s8);
void func_80066998(Player*, s8, s16, s8);
void func_80067964(Player*, s8, s32, s8, s32);
void func_80067D3C(Player*, s8, s32, s32, f32, s32);
void func_8006801C(Player*, s8, s32, s32, f32, s32);
void func_80068310(Player*, s8, s32, s8, s32);
void func_80068724(Player*, s8, s32, s8, s32);
void func_80068AA4(Player*, s8, s32, s8, s32);
void func_80068DA0(Player*, s8, s32, s8, s32);
void func_8006A280(Player*, s8, s16, s8);
void func_8006AFD0(Player*, s16, s8, s8);
void func_8006B87C(Player*, s8);
void func_8006B974(s32, s8, s8);
void func_8006B9CC(Player*, s8);
void func_8006BA94(Player*, s8, s8);
void func_8006C6AC(Player*, s16, s8, s8);
void func_8006C9B8(Player*, s16, s8, s8);
void func_8006CEC0(Player*, s16, s8, s8);
void func_8006D194(Player*, s8, s8);
void func_8006D474(Player*, s8, s8);
void func_8006DC54(Player*, s8, s8);
void func_8006DD3C(Player*, s8, s8);
void func_8006E058();
void func_8006E420(Player*, s8, s8);
void func_8006E5AC(Player*, s8, s8);
void func_8006E634(Player*, s8, s8);
void func_8006E6BC(Player*, s8, s8);
void func_8006E744(Player*, s8, s8);
void func_8006E7CC(Player*, s8, s8);
void func_8006E848(Player*, s8, s8);
void func_8006E8C4(Player*, s8, s8);
void func_8006E940(Player*, s8, s8);
extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0
extern s16 gPlayerBalloonCount[]; // D_8018D8C0
extern u32 gScreenModeSelection; // D_800DC530
extern struct UnkStruct_800DC5EC *D_800DC5EC;
extern struct UnkStruct_800DC5EC *D_800DC5F0;
extern struct UnkStruct_800DC5EC *D_800DC5F4;
extern struct UnkStruct_800DC5EC *D_800DC5F8;
extern u16 D_800DC5FC;
extern f64 D_800EE648;
extern f64 D_800EE650;
extern f64 D_800EE658;
extern f64 D_800EE660;
extern f64 D_800EE668;
extern f64 D_800EE670;
extern f64 D_800EE678;
extern f32 D_800EE680;
extern f32 D_800EE684;
extern f32 D_800EE688;
extern f32 D_800EE68C;
extern f64 D_800EE690;
extern f64 D_800EE698;
extern f64 D_800EE6A0;
extern f64 D_800EE6A8;
extern f64 D_800EE6B0;
extern f64 D_800EE6B8;
extern f64 D_800EE6C0;
extern f64 D_800EE6D8;
extern f64 D_800EE6E0;
extern f64 D_800EE6E8;
extern f64 D_800EE700;
extern f64 D_800EE708;
extern f64 D_800EE710;
extern f64 D_800EE718;
extern f64 D_800EE720;
extern f64 D_800EE728;
extern f64 D_800EE730;
extern f64 D_800EE738;
extern f64 D_800EE740;
extern f64 D_800EE748;
extern f64 D_800EE750;
extern f64 D_800EE758;
extern f64 D_800EE760;
extern f64 D_800EE768;
extern f64 D_800EE770;
extern f64 D_800EE778;
extern f32 D_800EE780;
extern f64 D_800EE788;
extern f64 D_800EE790;
extern f64 D_800EE798;
extern f64 D_800EE7A0;
extern f64 D_800EE7A8;
extern f32 D_800EE7B0;
extern f64 D_800EE7B8;
extern f32 D_800EE948;
extern f32 D_800EE94C;
extern s32 D_80164394;
extern s32 D_80164398;
extern s32 D_8016439C;
extern f32 D_801652A0[];
extern s32 D_801655C0;
extern s32 D_801655F0;
extern s32 D_80165678;
extern s8 D_801657AE;
extern s8 D_801657D8;
extern s8 D_801657E8;
extern s8 D_8018CAE0;
extern s32 D_8018D120;
extern s32 D_8018D170;
extern s32 D_8018D178;
extern s32 D_8018D188;
extern s32 D_8018D190;
extern s32 D_8018D1A0;
extern s32 D_8018D1B4;
extern s32 D_8018D1D4;
extern s32 D_8018D1CC;
extern s32 D_8018D1FC;
extern s32 D_8018D204;
extern s32 D_8018D21C;
extern s32 D_8018D2A4;
extern s32 D_8018D2BC;
extern s32 D_8018D480;
extern s32 D_8018D484;
#endif
#ifndef CODE_80057C60_H
#define CODE_80057C60_H
#include "common_structs.h"
void func_8001C3C4(s32);
void func_80041D34(void);
void func_8004E638(s32);
void func_8004E78C(s32);
void func_8004E800(s32);
void func_8004E998(s32);
void func_8004EB30(s32);
void func_8004EB38(s32);
void func_8004ED40(s32);
void func_8004EE54(s32);
void func_8004F020(s32);
void func_8004F3E4(s32);
void func_8004FA78(s32);
void func_80050320(void);
void func_800514BC(void);
void func_800517C8(void);
void func_80051EBC(void);
void func_80051EF8(void);
void func_80051F9C(void);
void func_80052044(void);
void func_80052080(void);
void func_80052C60(void);
void func_800532A4(s32);
void func_80054BE8(s32);
void func_80055F48(s32);
void func_80056160(s32);
void func_80057C60();
void func_80057CE4();
void func_80057DD0();
void func_80057FC4(u32);
void func_80058090(u32);
void func_800581C8();
void func_800582CC();
void func_80058394();
void func_8005845C();
void func_80058538(u32);
void func_80058640();
void func_800586FC();
void func_800587A4();
void func_8005884C();
void func_800588F4(s32);
void func_80058B58();
void func_80058BF4();
void func_80058C20(u32);
void func_80058DB4(u32);
void func_80058F48();
void func_80058F78();
void func_80059024();
void func_8005902C();
void func_800590D4();
void func_800591B4();
void func_80059358();
void func_80059360();
void func_800593F0();
void func_800593F8();
void func_80059488(s32);
void func_800594F0();
void func_800594F8();
void func_80059528();
void func_80059530();
void func_80059560(s32);
void func_800596A8();
void func_800596D8();
void func_80059710();
void func_80059718();
void func_80059750();
void func_80059780();
void func_800597B8();
void func_800597E8();
void func_80059820(s32);
void func_800598D4(s32);
void func_8005994C();
void func_8005995C();
void func_80059A88(s32);
void func_80059D00();
void func_8005A070();
void func_8005A14C(s32);
void func_8005A380();
void func_8005A3C0();
void func_8005A71C();
void func_8005A74C();
void func_8005A99C();
void func_8005AA34();
void func_8005AA4C();
void func_8005AA6C(s32);
void func_8005AA80();
void func_8005AA94(s32);
void func_8005AAF0();
void func_8005AB20();
void func_8005B914();
void func_8005C360(f32);
void func_8005C6B4(s8, s16*, s16*, s16*);
void func_8005C728();
void func_8005CB60(s32, s32);
void func_8005D0FC(s32);
void func_8005D18C();
void func_8005D1F4(s32);
void func_80062B18(f32*, f32*, f32*, f32, f32, f32, u16, u16);
void func_80062F98(Player*, s16, s8, s8);
void func_800630C0(Player*, s16, s8, s8);
void func_800631A8(Player*, s16, s8, s8);
void func_80063268(Player*, s16, s8, s8);
void func_80063408(Player*, s16, s8, s8);
void func_800635D4(Player*, s16, s8, s8);
void func_800639DC(Player*, s16, s8, s8);
void func_80063BD4(Player*, s16, s8, s8);
void func_80063D58(Player*, s16, s8, s8);
void func_800643A8(Player*, s16, s8, s8);
void func_800647C8(Player*, s16, s8, s8);
void func_800648E4(Player*, s16, s8, s8);
void func_80064988(Player*, s16, s8, s8);
void func_800649F4(Player*, s16, s8, s8);
void func_80064B30(Player*, s16, s8, s8);
void func_80064C74(Player*, s16, s8, s8);
void func_80064DEC(Player*, s16, s8, s8);
void func_80064EA4(Player*, s16, s8, s8);
void func_80064F88(Player*, s16, s8, s8);
void func_80065030(Player*, s16, s8, s8);
void func_800650FC(Player*, s16, s8, s8);
void func_800651F4(Player*, s16, s8, s8);
void func_800658A0(Player*, s8, s16, s8);
void func_80066998(Player*, s8, s16, s8);
void func_80067964(Player*, s8, s32, s8, s32);
void func_80067D3C(Player*, s8, s32, s32, f32, s32);
void func_8006801C(Player*, s8, s32, s32, f32, s32);
void func_80068310(Player*, s8, s32, s8, s32);
void func_80068724(Player*, s8, s32, s8, s32);
void func_80068AA4(Player*, s8, s32, s8, s32);
void func_80068DA0(Player*, s8, s32, s8, s32);
void func_8006A280(Player*, s8, s16, s8);
void func_8006A7C0(Player*, f32, f32, s8, s8);
void func_8006AFD0(Player*, s16, s8, s8);
void func_8006B87C(Player*, s8);
void func_8006B974(s32, s8, s8);
void func_8006B9CC(Player*, s8);
void func_8006BA94(Player*, s8, s8);
void func_8006C6AC(Player*, s16, s8, s8);
void func_8006C9B8(Player*, s16, s8, s8);
void func_8006CEC0(Player*, s16, s8, s8);
void func_8006D194(Player*, s8, s8);
void func_8006D474(Player*, s8, s8);
void func_8006DC54(Player*, s8, s8);
void func_8006DD3C(Player*, s8, s8);
void func_8006E058();
void func_8006E420(Player*, s8, s8);
void func_8006E5AC(Player*, s8, s8);
void func_8006E634(Player*, s8, s8);
void func_8006E6BC(Player*, s8, s8);
void func_8006E744(Player*, s8, s8);
void func_8006E7CC(Player*, s8, s8);
void func_8006E848(Player*, s8, s8);
void func_8006E8C4(Player*, s8, s8);
void func_8006E940(Player*, s8, s8);
void func_800744CC(void);
void func_80077640(void);
void func_80078C70(s32);
void func_8007A948(s32);
void func_8007AA44(s32);
void func_8007BB9C(s32);
void func_8007C2F8(s32);
void func_80081210(void);
void func_80086604(void);
void func_80086D80(void);
void func_800892E0(s32);
void func_8008C1D8(s32*);
void func_8008C1E0(s32*, s32*);
void func_8008C204(void);
void func_802A3730(struct UnkStruct_800DC5EC*);
extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0
extern s16 gPlayerBalloonCount[]; // D_8018D8C0
extern u32 gScreenModeSelection; // D_800DC530
extern struct UnkStruct_800DC5EC *D_800DC5EC;
extern struct UnkStruct_800DC5EC *D_800DC5F0;
extern struct UnkStruct_800DC5EC *D_800DC5F4;
extern struct UnkStruct_800DC5EC *D_800DC5F8;
extern u16 D_800DC5FC;
extern f64 D_800EE5A8;
extern f64 D_800EE5B0;
extern f32 D_800EE5FC;
extern f32 D_800EE600;
extern f32 D_800EE604;
extern f32 D_800EE608;
extern f32 D_800EE60C;
extern f64 D_800EE648;
extern f64 D_800EE650;
extern f64 D_800EE658;
extern f64 D_800EE660;
extern f64 D_800EE668;
extern f64 D_800EE670;
extern f64 D_800EE678;
extern f32 D_800EE680;
extern f32 D_800EE684;
extern f32 D_800EE688;
extern f32 D_800EE68C;
extern f64 D_800EE690;
extern f64 D_800EE698;
extern f64 D_800EE6A0;
extern f64 D_800EE6A8;
extern f64 D_800EE6B0;
extern f64 D_800EE6B8;
extern f64 D_800EE6C0;
extern f64 D_800EE6C8;
extern f64 D_800EE6D0;
extern f64 D_800EE6D8;
extern f64 D_800EE6E0;
extern f64 D_800EE6E8;
extern f64 D_800EE700;
extern f64 D_800EE708;
extern f64 D_800EE710;
extern f64 D_800EE718;
extern f64 D_800EE720;
extern f64 D_800EE728;
extern f64 D_800EE730;
extern f64 D_800EE738;
extern f64 D_800EE740;
extern f64 D_800EE748;
extern f64 D_800EE750;
extern f64 D_800EE758;
extern f64 D_800EE760;
extern f64 D_800EE768;
extern f64 D_800EE770;
extern f64 D_800EE778;
extern f32 D_800EE780;
extern f64 D_800EE788;
extern f64 D_800EE790;
extern f64 D_800EE798;
extern f64 D_800EE7A0;
extern f64 D_800EE7A8;
extern f32 D_800EE7B0;
extern f64 D_800EE7B8;
extern f32 D_800EE948;
extern f32 D_800EE94C;
extern s32 D_80164394;
extern s32 D_80164398;
extern s32 D_8016439C;
extern f32 D_801652A0[];
extern s32 D_801655C0;
extern s32 D_801655F0;
extern s32 D_80165678;
extern s8 D_801657AE;
extern s8 D_801657D8;
extern s8 D_801657E8;
extern s8 D_8018CAE0;
extern s32 D_8018D120;
extern s32 D_8018D170;
extern s32 D_8018D178;
extern s32 D_8018D188;
extern s32 D_8018D190;
extern s32 D_8018D1A0;
extern s32 D_8018D1B4;
extern s32 D_8018D1D4;
extern s32 D_8018D1CC;
extern s32 D_8018D1FC;
extern s32 D_8018D204;
extern s32 D_8018D21C;
extern s32 D_8018D2A4;
extern s32 D_8018D2BC;
extern s32 D_8018D480;
extern s32 D_8018D484;
#endif