mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-02 12:45:57 -04:00
Decomped some of 80057C60 & 800431B0
This commit is contained in:
+246
-245
@@ -14,6 +14,13 @@ extern struct GfxPool *gGfxPool;
|
||||
extern s32 gPlayerCountSelection1;
|
||||
extern s16 gCurrentCourseId;
|
||||
|
||||
extern void func_802A3730(struct UnkStruct_800DC5EC*);
|
||||
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 s32 D_8018D21C;
|
||||
|
||||
// UI Code?
|
||||
void func_80057C60(void) {
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_802B8880));
|
||||
@@ -21,52 +28,38 @@ void func_80057C60(void) {
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_80183D60), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_802A3730(s32); /* extern */
|
||||
|
||||
void func_80057CE4(void) {
|
||||
u32 temp_t6;
|
||||
|
||||
temp_t6 = D_8018D21C;
|
||||
switch (temp_t6) {
|
||||
switch (D_8018D21C) {
|
||||
case 0:
|
||||
func_802A3730(D_800DC5EC);
|
||||
return;
|
||||
break;
|
||||
case 1:
|
||||
func_802A3730(D_800DC5EC);
|
||||
return;
|
||||
break;
|
||||
case 2:
|
||||
func_802A3730(D_800DC5F0);
|
||||
return;
|
||||
break;
|
||||
case 3:
|
||||
func_802A3730(D_800DC5EC);
|
||||
return;
|
||||
break;
|
||||
case 4:
|
||||
func_802A3730(D_800DC5F0);
|
||||
return;
|
||||
break;
|
||||
case 8:
|
||||
func_802A3730(D_800DC5EC);
|
||||
return;
|
||||
break;
|
||||
case 9:
|
||||
func_802A3730(D_800DC5F0);
|
||||
return;
|
||||
break;
|
||||
case 10:
|
||||
func_802A3730(D_800DC5F4);
|
||||
return;
|
||||
break;
|
||||
case 11:
|
||||
func_802A3730(D_800DC5F8);
|
||||
/* fallthrough */
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80057CE4.s")
|
||||
#endif
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_8004C024(s32, s32, s32, s32, s32, s32, s32); // extern
|
||||
void func_8004C148(s32, s32, s32, s32, s32, s32, s32); // extern
|
||||
extern s8 D_801657B2;
|
||||
@@ -87,109 +80,106 @@ void func_80057DD0(void) {
|
||||
func_8004C148(0x18, 0x15, 0xC4, 0, 0, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
//#else
|
||||
//GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80057DD0.s")
|
||||
//#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_80041EF4(Gfx **); /* extern */
|
||||
? func_80051EBC(); /* extern */
|
||||
? func_80051EF8(); /* extern */
|
||||
? func_80051F9C(); /* extern */
|
||||
? func_80052044(); /* extern */
|
||||
? func_80052080(); /* extern */
|
||||
extern ? D_0D0076F8;
|
||||
|
||||
extern u8 D_0D0076F8;
|
||||
extern s8 D_801657C8;
|
||||
extern s8 D_801657B0;
|
||||
void func_80057FC4(u32 arg0) {
|
||||
Gfx *temp_v1;
|
||||
|
||||
if ((D_801657B0 == 0) && (temp_v1 = gDisplayListHead, gDisplayListHead = temp_v1 + 8, temp_v1->words.w0 = 0x6000000, temp_v1->words.w1 = &D_0D0076F8, func_80041EF4(&gDisplayListHead), (D_801657C8 == 0))) {
|
||||
switch (arg0) {
|
||||
|
||||
if ((D_801657B0 != 0)) {
|
||||
return;
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
func_80041EF4(&gDisplayListHead);
|
||||
|
||||
if ((D_801657C8 != 0)){
|
||||
return;
|
||||
}
|
||||
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
func_80051EBC();
|
||||
return;
|
||||
break;
|
||||
case 1:
|
||||
func_80051EF8();
|
||||
return;
|
||||
break;
|
||||
case 2:
|
||||
func_80051F9C();
|
||||
return;
|
||||
break;
|
||||
case 3:
|
||||
func_80052044();
|
||||
return;
|
||||
break;
|
||||
case 4:
|
||||
func_80052080();
|
||||
/* Duplicate return node #9. Try simplifying control flow for better match */
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80057FC4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_800581C8(Gfx **, u32); /* extern */
|
||||
? func_800582CC(Gfx **, u32); /* extern */
|
||||
? func_80058394(Gfx **, u32); /* extern */
|
||||
? func_8005845C(Gfx **, u32); /* extern */
|
||||
extern ? D_0D0076F8;
|
||||
extern s32 D_8018D22C;
|
||||
void func_800581C8();
|
||||
void func_800582CC();
|
||||
void func_80058394();
|
||||
void func_8005845C();
|
||||
|
||||
void func_80058090(u32 arg0) {
|
||||
Gfx *temp_v1;
|
||||
|
||||
if ((D_801657B0 == 0) && (temp_v1 = gDisplayListHead, gDisplayListHead = temp_v1 + 8, temp_v1->words.w0 = 0x6000000, temp_v1->words.w1 = &D_0D0076F8, (D_8018D22C == 0))) {
|
||||
switch (arg0) {
|
||||
if (D_801657B0 != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
|
||||
if (D_8018D22C != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
func_800581C8(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800581C8();
|
||||
break;
|
||||
case 1:
|
||||
func_800581C8(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800581C8();
|
||||
break;
|
||||
case 2:
|
||||
func_800582CC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800582CC();
|
||||
break;
|
||||
case 3:
|
||||
func_800581C8(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800581C8();
|
||||
break;
|
||||
case 4:
|
||||
func_800582CC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800582CC();
|
||||
break;
|
||||
case 5:
|
||||
func_800581C8(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800581C8();
|
||||
break;
|
||||
case 6:
|
||||
func_800582CC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800582CC();
|
||||
break;
|
||||
case 7:
|
||||
func_80058394(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058394();
|
||||
break;
|
||||
case 8:
|
||||
func_800581C8(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800581C8();
|
||||
break;
|
||||
case 9:
|
||||
func_800582CC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800582CC();
|
||||
break;
|
||||
case 10:
|
||||
func_80058394(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058394();
|
||||
break;
|
||||
case 11:
|
||||
func_8005845C(&gDisplayListHead, arg0);
|
||||
/* Duplicate return node #16. Try simplifying control flow for better match */
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
func_8005845C();
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80058090.s")
|
||||
#endif
|
||||
|
||||
void func_8005217C(s32);
|
||||
void func_800588F4(s32 arg0);
|
||||
extern s32 D_800DC50C;
|
||||
extern u16 D_800DC51C;
|
||||
void func_800581C8(void) {
|
||||
@@ -247,55 +237,53 @@ void func_8005845C(void) {
|
||||
func_800588F4(3);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_80058640(Gfx **, u32); /* extern */
|
||||
? func_800586FC(Gfx **, u32); /* extern */
|
||||
? func_800587A4(Gfx **, u32); /* extern */
|
||||
? func_8005884C(Gfx **, u32); /* extern */
|
||||
extern ? D_0D0076F8;
|
||||
void func_80058640(); /* extern */
|
||||
void func_800586FC(); /* extern */
|
||||
void func_800587A4(); /* extern */
|
||||
void func_8005884C(); /* extern */
|
||||
|
||||
void func_80058538(u32 arg0) {
|
||||
Gfx *temp_v1;
|
||||
|
||||
if ((D_801657B0 == 0) && (temp_v1 = gDisplayListHead, gDisplayListHead = temp_v1 + 8, temp_v1->words.w0 = 0x6000000, temp_v1->words.w1 = &D_0D0076F8, (D_8018D22C == 0))) {
|
||||
switch (arg0) {
|
||||
if (D_801657B0 != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, &D_0D0076F8);
|
||||
|
||||
if (D_8018D22C != 0) {
|
||||
return;
|
||||
}
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
func_80058640(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058640();
|
||||
break;
|
||||
case 1:
|
||||
func_80058640(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058640();
|
||||
break;
|
||||
case 2:
|
||||
func_800586FC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800586FC();
|
||||
break;
|
||||
case 3:
|
||||
func_80058640(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058640();
|
||||
break;
|
||||
case 4:
|
||||
func_800586FC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800586FC();
|
||||
break;
|
||||
case 8:
|
||||
func_80058640(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_80058640();
|
||||
break;
|
||||
case 9:
|
||||
func_800586FC(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800586FC();
|
||||
break;
|
||||
case 10:
|
||||
func_800587A4(&gDisplayListHead, arg0);
|
||||
return;
|
||||
func_800587A4();
|
||||
break;
|
||||
case 11:
|
||||
func_8005884C(&gDisplayListHead, arg0);
|
||||
/* Duplicate return node #13. Try simplifying control flow for better match */
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
func_8005884C();
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80058538.s")
|
||||
#endif
|
||||
|
||||
void func_80058B58(s32 arg0);
|
||||
|
||||
@@ -329,123 +317,131 @@ void func_8005884C(void) {
|
||||
func_80058B58(3);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_80051638(s32); /* extern */
|
||||
? func_8005217C(s32); /* extern */
|
||||
? func_800524B4(s32); /* extern */
|
||||
? func_80052590(s32); /* extern */
|
||||
? func_800527D8(s32); /* extern */
|
||||
? func_80052E30(s32); /* extern */
|
||||
? func_8005327C(s32); /* extern */
|
||||
? func_80053870(s32); /* extern */
|
||||
? func_80053E6C(s32); /* extern */
|
||||
? func_800541BC(s32); /* extern */
|
||||
? func_80054414(s32); /* extern */
|
||||
? func_80054664(s32); /* extern */
|
||||
? func_80054938(s32); /* extern */
|
||||
? func_800550A4(s32); /* extern */
|
||||
? func_80055228(s32); /* extern */
|
||||
? func_80055380(s32); /* extern */
|
||||
? func_80055528(s32); /* extern */
|
||||
? func_8005568C(s32); /* extern */
|
||||
? func_8005592C(s32); /* extern */
|
||||
? func_80055C38(s32); /* extern */
|
||||
? func_80055E68(s32); /* extern */
|
||||
? func_80056188(s32); /* extern */
|
||||
? func_80056AC0(s32); /* extern */
|
||||
u16 gCurrentCourseId; /* unable to generate initializer */
|
||||
void func_80051638(s32);
|
||||
|
||||
void func_800524B4(s32);
|
||||
void func_80052590(s32);
|
||||
void func_800527D8(s32);
|
||||
void func_80052E30(s32);
|
||||
void func_8005327C(s32);
|
||||
void func_80053870(s32);
|
||||
void func_80053E6C(s32);
|
||||
void func_800541BC(s32);
|
||||
void func_80054414(s32);
|
||||
void func_80054664(s32);
|
||||
void func_80054938(s32);
|
||||
void func_800550A4(s32);
|
||||
void func_80055228(s32);
|
||||
void func_80055380(s32);
|
||||
void func_80055528(s32);
|
||||
void func_8005568C(s32);
|
||||
void func_8005592C(s32);
|
||||
void func_80055C38(s32);
|
||||
void func_80055E68(s32);
|
||||
void func_80056188(s32);
|
||||
void func_80056AC0(s32);
|
||||
extern s32 gModeSelection;
|
||||
extern s16 D_80165730;
|
||||
extern s8 D_8018EDF3;
|
||||
extern s8 D_80165898;
|
||||
|
||||
void func_800588F4(s32 arg0) {
|
||||
s32 temp_v0;
|
||||
s8 temp_v0_2;
|
||||
u16 temp_t6;
|
||||
s32 phi_v0;
|
||||
|
||||
temp_t6 = gCurrentCourseId;
|
||||
switch (temp_t6) {
|
||||
case 2:
|
||||
func_80053870(arg0);
|
||||
func_80054664(arg0);
|
||||
break;
|
||||
case 3:
|
||||
if (D_800DC50C != 9) {
|
||||
func_800527D8(arg0);
|
||||
func_80052590(arg0);
|
||||
func_8005217C(arg0);
|
||||
func_800524B4(arg0);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
func_80055228(arg0);
|
||||
if (D_800DC50C != 9) {
|
||||
func_8005568C(arg0);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (D_800DC50C != 9) {
|
||||
func_8005327C(arg0);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
temp_v0 = D_800DC50C;
|
||||
phi_v0 = temp_v0;
|
||||
if (temp_v0 != 9) {
|
||||
func_80055528(arg0);
|
||||
phi_v0 = D_800DC50C;
|
||||
}
|
||||
if (phi_v0 != 9) {
|
||||
temp_v0_2 = D_8018EDF3;
|
||||
if ((temp_v0_2 == 1) || (temp_v0_2 == 2)) {
|
||||
switch (gCurrentCourseId) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
func_80053870(arg0);
|
||||
func_80054664(arg0);
|
||||
break;
|
||||
case 3:
|
||||
if (D_800DC50C != 9) {
|
||||
func_800527D8(arg0);
|
||||
func_80052590(arg0);
|
||||
func_8005217C(arg0);
|
||||
func_800524B4(arg0);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
func_80055228(arg0);
|
||||
if (D_800DC50C != 9) {
|
||||
func_8005568C(arg0);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (D_800DC50C != 9) {
|
||||
func_8005327C(arg0);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80055528(arg0);
|
||||
}
|
||||
if (D_800DC50C != 9) {
|
||||
|
||||
if ((D_8018EDF3 == 1) || (D_8018EDF3 == 2)) {
|
||||
func_80055380(arg0);
|
||||
}
|
||||
} else {
|
||||
func_80055380(arg0);
|
||||
}
|
||||
} else {
|
||||
func_80055380(arg0);
|
||||
break;
|
||||
case 7:
|
||||
break;
|
||||
case 8:
|
||||
if (D_80165898 != 0) {
|
||||
func_80055E68(arg0);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (D_800DC50C != 9) {
|
||||
func_800550A4(arg0);
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
break;
|
||||
case 11:
|
||||
func_800541BC(arg0);
|
||||
break;
|
||||
case 12:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80052E30(arg0);
|
||||
}
|
||||
func_8005592C(arg0);
|
||||
break;
|
||||
case 13:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80056188(arg0);
|
||||
func_80055C38(arg0);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
break;
|
||||
case 15:
|
||||
break;
|
||||
case 16:
|
||||
break;
|
||||
case 17:
|
||||
break;
|
||||
case 18:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80054414(arg0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (D_80165898 != 0) {
|
||||
func_80055E68(arg0);
|
||||
|
||||
func_80054938(arg0);
|
||||
func_80051638(arg0);
|
||||
|
||||
if (D_80165730 != 0) {
|
||||
func_80053E6C(arg0);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (D_800DC50C != 9) {
|
||||
func_800550A4(arg0);
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_80056AC0(arg0);
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
func_800541BC(arg0);
|
||||
break;
|
||||
case 12:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80052E30(arg0);
|
||||
}
|
||||
func_8005592C(arg0);
|
||||
break;
|
||||
case 13:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80056188(arg0);
|
||||
func_80055C38(arg0);
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
if (D_800DC50C != 9) {
|
||||
func_80054414(arg0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
func_80054938(arg0);
|
||||
func_80051638(arg0);
|
||||
if (D_80165730 != 0) {
|
||||
func_80053E6C(arg0);
|
||||
}
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_80056AC0(arg0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800588F4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
@@ -459,21 +455,26 @@ void func_80058B58(s32 arg0) {
|
||||
if (gCurrentCourseId != COURSE_FRAPPE_SNOWLAND) {
|
||||
if (gCurrentCourseId != COURSE_SHERBET_LAND) {
|
||||
|
||||
} else {
|
||||
func_80052C60();
|
||||
}
|
||||
return;// Duplicate return node #9. Try simplifying control flow for better match
|
||||
}
|
||||
if (D_800DC50C != 9) {
|
||||
if ((D_8015F894 == 0) && (gPlayerCountSelection1 == COURSE_CHOCO_MOUNTAIN)) {
|
||||
|
||||
|
||||
|
||||
if (D_800DC50C != 9) {
|
||||
if (D_8015F894 == 0) {
|
||||
if (gPlayerCountSelection1 == COURSE_CHOCO_MOUNTAIN) {
|
||||
func_800517C8();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
func_800517C8();
|
||||
//return;
|
||||
return;
|
||||
}
|
||||
//return;
|
||||
}
|
||||
func_800517C8();
|
||||
|
||||
//return arg0;
|
||||
func_80052C60();
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80058B58.s")
|
||||
|
||||
Reference in New Issue
Block a user