Decompile mainEndStage

This commit is contained in:
Ryan Dwyer
2020-09-03 23:56:36 +10:00
parent 4b1a699625
commit 212da40846
8 changed files with 58 additions and 229 deletions
+8 -8
View File
@@ -10338,7 +10338,7 @@ glabel var7f1ad6ac
/* f0bfac8: 8e6d0314 */ lw $t5,0x314($s3)
/* f0bfacc: 55a00006 */ bnezl $t5,.L0f0bfae8
/* f0bfad0: 8e6c0298 */ lw $t4,0x298($s3)
/* f0bfad4: 0c0039a1 */ jal func0000e684
/* f0bfad4: 0c0039a1 */ jal mainEndStage
/* f0bfad8: 00000000 */ nop
/* f0bfadc: 10000022 */ b .L0f0bfb68
/* f0bfae0: 8e6b02ac */ lw $t3,0x2ac($s3)
@@ -10359,7 +10359,7 @@ glabel var7f1ad6ac
/* f0bfb18: 8c490330 */ lw $t1,0x330($v0)
/* f0bfb1c: 11200005 */ beqz $t1,.L0f0bfb34
/* f0bfb20: 00000000 */ nop
/* f0bfb24: 0c0039a1 */ jal func0000e684
/* f0bfb24: 0c0039a1 */ jal mainEndStage
/* f0bfb28: 00000000 */ nop
/* f0bfb2c: 1000000e */ b .L0f0bfb68
/* f0bfb30: 8e6b02ac */ lw $t3,0x2ac($s3)
@@ -10375,7 +10375,7 @@ glabel var7f1ad6ac
/* f0bfb50: 8e6a02a0 */ lw $t2,0x2a0($s3)
/* f0bfb54: 55500004 */ bnel $t2,$s0,.L0f0bfb68
/* f0bfb58: 8e6b02ac */ lw $t3,0x2ac($s3)
/* f0bfb5c: 0c0039a1 */ jal func0000e684
/* f0bfb5c: 0c0039a1 */ jal mainEndStage
/* f0bfb60: 00000000 */ nop
/* f0bfb64: 8e6b02ac */ lw $t3,0x2ac($s3)
.L0f0bfb68:
@@ -10386,7 +10386,7 @@ glabel var7f1ad6ac
/* f0bfb78: 00000000 */ nop
/* f0bfb7c: 50400004 */ beqzl $v0,.L0f0bfb90
/* f0bfb80: 8fbf004c */ lw $ra,0x4c($sp)
/* f0bfb84: 0c0039a1 */ jal func0000e684
/* f0bfb84: 0c0039a1 */ jal mainEndStage
/* f0bfb88: 00000000 */ nop
/* f0bfb8c: 8fbf004c */ lw $ra,0x4c($sp)
.L0f0bfb90:
@@ -11351,18 +11351,18 @@ glabel var7f1ad6ac
// if (g_Vars.currentplayer->redbloodfinished
// && g_Vars.currentplayer->deathanimfinished) {
// if (g_Vars.mplayerisrunning == false) {
// func0000e684();
// mainEndStage();
// } else {
// if (g_Vars.coopplayernum < 0) {
// if (g_Vars.antiplayernum >= 0 && g_Vars.bond == g_Vars.currentplayer) {
// func0000e684();
// mainEndStage();
// }
// } else {
// if (g_Vars.bond == g_Vars.currentplayer
// && g_Vars.coop->isdead
// && g_Vars.coop->redbloodfinished
// && g_Vars.coop->deathanimfinished) {
// func0000e684();
// mainEndStage();
// } else {
// func0f049644(g_Vars.currentplayernum);
// }
@@ -11372,7 +11372,7 @@ glabel var7f1ad6ac
// }
//
// if (g_Vars.tickmode == TICKMODE_5 && currentPlayerIsFadeComplete()) {
// func0000e684();
// mainEndStage();
// }
//}
+1 -1
View File
@@ -4101,7 +4101,7 @@ s32 menuhandlerAbortMission(u32 operation, struct menuitem *item, s32 *value)
{
if (operation == MENUOP_SET) {
g_Vars.currentplayer->aborted = true;
func0000e684();
mainEndStage();
}
return 0;
+4 -4
View File
@@ -4931,7 +4931,7 @@ glabel func0f16b96c
/* f16c54c: 0246082a */ slt $at,$s2,$a2
/* f16c550: 54200006 */ bnezl $at,.L0f16c56c
/* f16c554: 24ccfda8 */ addiu $t4,$a2,-600
/* f16c558: 0c0039a1 */ jal func0000e684
/* f16c558: 0c0039a1 */ jal mainEndStage
/* f16c55c: 00000000 */ nop
/* f16c560: 3c068008 */ lui $a2,%hi(g_MpTimeLimit)
/* f16c564: 8cc64028 */ lw $a2,%lo(g_MpTimeLimit)($a2)
@@ -5141,7 +5141,7 @@ glabel func0f16b96c
/* f16c82c: 00000000 */ nop
/* f16c830: 16000003 */ bnez $s0,.L0f16c840
/* f16c834: 00000000 */ nop
/* f16c838: 0c0039a1 */ jal func0000e684
/* f16c838: 0c0039a1 */ jal mainEndStage
/* f16c83c: 00000000 */ nop
.L0f16c840:
/* f16c840: 3c198008 */ lui $t9,%hi(g_MpTimeElapsed)
@@ -5553,7 +5553,7 @@ glabel func0f16b96c
//
// if (g_MpTimeElapsed < g_MpTimeLimit && nexttime >= g_MpTimeLimit) {
// // Match is ending due to time limit reached
// func0000e684();
// mainEndStage();
// }
//
// // Sound alarm at 10 seconds remaining
@@ -5609,7 +5609,7 @@ glabel func0f16b96c
//
// // 820
// if (var80084038 > 0 && numdying == 0) {
// func0000e684();
// mainEndStage();
// }
// }
// }
+1 -1
View File
@@ -170,7 +170,7 @@ s32 menuhandlerMpEndGame(u32 operation, struct menuitem *item, s32 *value)
{
if (operation == MENUOP_SET) {
g_Vars.currentplayer->aborted = true;
func0000e684();
mainEndStage();
}
return 0;
+1 -1
View File
@@ -44,7 +44,7 @@ u32 func0f189ed0(void);
u32 func0f18a030(void);
void mpCalculatePlayerTitle(struct mpplayer *mpplayer);
u32 func0f18a56c(void);
u32 func0f18b9e4(void);
void func0f18b9e4(void);
u32 func0f18bb1c(void);
s32 mpGetNumHeads(void);
s32 mpGetHeadId(u8 headnum);
+1 -1
View File
@@ -103,7 +103,7 @@ void mainLoop(void);
void func0000db30(char *string, u32 *ptr);
u32 mainTick(void);
u32 func0000e324(void);
void func0000e684(void);
void mainEndStage(void);
void func0000e95c(s32 stagenum);
void func0000e990(void);
void func0000e9c0(void);
+1 -1
View File
@@ -14,7 +14,7 @@ u32 func00013a40(void);
u32 func00013ab8(void);
u32 func00013c4c(void);
u32 func00013c94(void);
u32 func00013dd4(void);
void func00013dd4(void);
u32 func00013dfc(void);
u32 func00013e84(void);
u32 getConnectedControllers(void);
+41 -212
View File
@@ -1385,217 +1385,46 @@ glabel func0000e324
/* e680: 27bd0078 */ addiu $sp,$sp,0x78
);
GLOBAL_ASM(
glabel func0000e684
/* e684: 27bdffd0 */ addiu $sp,$sp,-48
/* e688: afbf001c */ sw $ra,0x1c($sp)
/* e68c: afb10018 */ sw $s1,0x18($sp)
/* e690: 0c004378 */ jal envStopNosedive
/* e694: afb00014 */ sw $s0,0x14($sp)
/* e698: 3c0e8006 */ lui $t6,%hi(var8005d9d0)
/* e69c: 8dced9d0 */ lw $t6,%lo(var8005d9d0)($t6)
/* e6a0: 55c000a7 */ bnezl $t6,.L0000e940
/* e6a4: 8fbf001c */ lw $ra,0x1c($sp)
/* e6a8: 0fc471b4 */ jal func0f11c6d0
/* e6ac: 00000000 */ nop
/* e6b0: 0c004f75 */ jal func00013dd4
/* e6b4: 00000000 */ nop
/* e6b8: 3c10800a */ lui $s0,%hi(g_Vars)
/* e6bc: 26109fc0 */ addiu $s0,$s0,%lo(g_Vars)
/* e6c0: 8e0f0298 */ lw $t7,0x298($s0)
/* e6c4: 05e20049 */ bltzl $t7,.L0000e7ec
/* e6c8: 8e0b029c */ lw $t3,0x29c($s0)
/* e6cc: 8e19006c */ lw $t9,0x6c($s0)
/* e6d0: 8e18028c */ lw $t8,0x28c($s0)
/* e6d4: 00008825 */ or $s1,$zero,$zero
/* e6d8: 13200003 */ beqz $t9,.L0000e6e8
/* e6dc: afb8002c */ sw $t8,0x2c($sp)
/* e6e0: 10000002 */ b .L0000e6ec
/* e6e4: 24050001 */ addiu $a1,$zero,0x1
.L0000e6e8:
/* e6e8: 00002825 */ or $a1,$zero,$zero
.L0000e6ec:
/* e6ec: 8e080068 */ lw $t0,0x68($s0)
/* e6f0: 00002025 */ or $a0,$zero,$zero
/* e6f4: 00001825 */ or $v1,$zero,$zero
/* e6f8: 11000003 */ beqz $t0,.L0000e708
/* e6fc: 00000000 */ nop
/* e700: 10000001 */ b .L0000e708
/* e704: 24040001 */ addiu $a0,$zero,0x1
.L0000e708:
/* e708: 8e090064 */ lw $t1,0x64($s0)
/* e70c: 00001025 */ or $v0,$zero,$zero
/* e710: 11200003 */ beqz $t1,.L0000e720
/* e714: 00000000 */ nop
/* e718: 10000001 */ b .L0000e720
/* e71c: 24030001 */ addiu $v1,$zero,0x1
.L0000e720:
/* e720: 8e0a0070 */ lw $t2,0x70($s0)
/* e724: 11400003 */ beqz $t2,.L0000e734
/* e728: 00000000 */ nop
/* e72c: 10000001 */ b .L0000e734
/* e730: 24020001 */ addiu $v0,$zero,0x1
.L0000e734:
/* e734: 00435821 */ addu $t3,$v0,$v1
/* e738: 01646021 */ addu $t4,$t3,$a0
/* e73c: 01856821 */ addu $t5,$t4,$a1
/* e740: 19a00023 */ blez $t5,.L0000e7d0
/* e744: 00000000 */ nop
.L0000e748:
/* e748: 0fc4a24b */ jal setCurrentPlayerNum
/* e74c: 02202025 */ or $a0,$s1,$zero
/* e750: 0fc43b2d */ jal soloPushCoopModeEndscreen
/* e754: 00000000 */ nop
/* e758: 8e0e006c */ lw $t6,0x6c($s0)
/* e75c: 26310001 */ addiu $s1,$s1,0x1
/* e760: 00002825 */ or $a1,$zero,$zero
/* e764: 11c00003 */ beqz $t6,.L0000e774
/* e768: 00002025 */ or $a0,$zero,$zero
/* e76c: 10000001 */ b .L0000e774
/* e770: 24050001 */ addiu $a1,$zero,0x1
.L0000e774:
/* e774: 8e0f0068 */ lw $t7,0x68($s0)
/* e778: 00001825 */ or $v1,$zero,$zero
/* e77c: 00001025 */ or $v0,$zero,$zero
/* e780: 11e00003 */ beqz $t7,.L0000e790
/* e784: 00000000 */ nop
/* e788: 10000001 */ b .L0000e790
/* e78c: 24040001 */ addiu $a0,$zero,0x1
.L0000e790:
/* e790: 8e180064 */ lw $t8,0x64($s0)
/* e794: 13000003 */ beqz $t8,.L0000e7a4
/* e798: 00000000 */ nop
/* e79c: 10000001 */ b .L0000e7a4
/* e7a0: 24030001 */ addiu $v1,$zero,0x1
.L0000e7a4:
/* e7a4: 8e190070 */ lw $t9,0x70($s0)
/* e7a8: 13200003 */ beqz $t9,.L0000e7b8
/* e7ac: 00000000 */ nop
/* e7b0: 10000001 */ b .L0000e7b8
/* e7b4: 24020001 */ addiu $v0,$zero,0x1
.L0000e7b8:
/* e7b8: 00434021 */ addu $t0,$v0,$v1
/* e7bc: 01044821 */ addu $t1,$t0,$a0
/* e7c0: 01255021 */ addu $t2,$t1,$a1
/* e7c4: 022a082a */ slt $at,$s1,$t2
/* e7c8: 1420ffdf */ bnez $at,.L0000e748
/* e7cc: 00000000 */ nop
.L0000e7d0:
/* e7d0: 0fc4a24b */ jal setCurrentPlayerNum
/* e7d4: 8fa4002c */ lw $a0,0x2c($sp)
/* e7d8: 0fc5b6c5 */ jal musicStartForMenu
/* e7dc: 00000000 */ nop
/* e7e0: 10000057 */ b .L0000e940
/* e7e4: 8fbf001c */ lw $ra,0x1c($sp)
/* e7e8: 8e0b029c */ lw $t3,0x29c($s0)
.L0000e7ec:
/* e7ec: 05620049 */ bltzl $t3,.L0000e914
/* e7f0: 8e190318 */ lw $t9,0x318($s0)
/* e7f4: 8e0d006c */ lw $t5,0x6c($s0)
/* e7f8: 8e0c028c */ lw $t4,0x28c($s0)
/* e7fc: 00008825 */ or $s1,$zero,$zero
/* e800: 11a00003 */ beqz $t5,.L0000e810
/* e804: afac0024 */ sw $t4,0x24($sp)
/* e808: 10000002 */ b .L0000e814
/* e80c: 24050001 */ addiu $a1,$zero,0x1
.L0000e810:
/* e810: 00002825 */ or $a1,$zero,$zero
.L0000e814:
/* e814: 8e0e0068 */ lw $t6,0x68($s0)
/* e818: 00002025 */ or $a0,$zero,$zero
/* e81c: 00001825 */ or $v1,$zero,$zero
/* e820: 11c00003 */ beqz $t6,.L0000e830
/* e824: 00000000 */ nop
/* e828: 10000001 */ b .L0000e830
/* e82c: 24040001 */ addiu $a0,$zero,0x1
.L0000e830:
/* e830: 8e0f0064 */ lw $t7,0x64($s0)
/* e834: 00001025 */ or $v0,$zero,$zero
/* e838: 11e00003 */ beqz $t7,.L0000e848
/* e83c: 00000000 */ nop
/* e840: 10000001 */ b .L0000e848
/* e844: 24030001 */ addiu $v1,$zero,0x1
.L0000e848:
/* e848: 8e180070 */ lw $t8,0x70($s0)
/* e84c: 13000003 */ beqz $t8,.L0000e85c
/* e850: 00000000 */ nop
/* e854: 10000001 */ b .L0000e85c
/* e858: 24020001 */ addiu $v0,$zero,0x1
.L0000e85c:
/* e85c: 0043c821 */ addu $t9,$v0,$v1
/* e860: 03244021 */ addu $t0,$t9,$a0
/* e864: 01054821 */ addu $t1,$t0,$a1
/* e868: 19200023 */ blez $t1,.L0000e8f8
/* e86c: 00000000 */ nop
.L0000e870:
/* e870: 0fc4a24b */ jal setCurrentPlayerNum
/* e874: 02202025 */ or $a0,$s1,$zero
/* e878: 0fc43bc4 */ jal soloPushAntiModeEndscreen
/* e87c: 00000000 */ nop
/* e880: 8e0a006c */ lw $t2,0x6c($s0)
/* e884: 26310001 */ addiu $s1,$s1,0x1
/* e888: 00002825 */ or $a1,$zero,$zero
/* e88c: 11400003 */ beqz $t2,.L0000e89c
/* e890: 00002025 */ or $a0,$zero,$zero
/* e894: 10000001 */ b .L0000e89c
/* e898: 24050001 */ addiu $a1,$zero,0x1
.L0000e89c:
/* e89c: 8e0b0068 */ lw $t3,0x68($s0)
/* e8a0: 00001825 */ or $v1,$zero,$zero
/* e8a4: 00001025 */ or $v0,$zero,$zero
/* e8a8: 11600003 */ beqz $t3,.L0000e8b8
/* e8ac: 00000000 */ nop
/* e8b0: 10000001 */ b .L0000e8b8
/* e8b4: 24040001 */ addiu $a0,$zero,0x1
.L0000e8b8:
/* e8b8: 8e0c0064 */ lw $t4,0x64($s0)
/* e8bc: 11800003 */ beqz $t4,.L0000e8cc
/* e8c0: 00000000 */ nop
/* e8c4: 10000001 */ b .L0000e8cc
/* e8c8: 24030001 */ addiu $v1,$zero,0x1
.L0000e8cc:
/* e8cc: 8e0d0070 */ lw $t5,0x70($s0)
/* e8d0: 11a00003 */ beqz $t5,.L0000e8e0
/* e8d4: 00000000 */ nop
/* e8d8: 10000001 */ b .L0000e8e0
/* e8dc: 24020001 */ addiu $v0,$zero,0x1
.L0000e8e0:
/* e8e0: 00437021 */ addu $t6,$v0,$v1
/* e8e4: 01c47821 */ addu $t7,$t6,$a0
/* e8e8: 01e5c021 */ addu $t8,$t7,$a1
/* e8ec: 0238082a */ slt $at,$s1,$t8
/* e8f0: 1420ffdf */ bnez $at,.L0000e870
/* e8f4: 00000000 */ nop
.L0000e8f8:
/* e8f8: 0fc4a24b */ jal setCurrentPlayerNum
/* e8fc: 8fa40024 */ lw $a0,0x24($sp)
/* e900: 0fc5b6c5 */ jal musicStartForMenu
/* e904: 00000000 */ nop
/* e908: 1000000d */ b .L0000e940
/* e90c: 8fbf001c */ lw $ra,0x1c($sp)
/* e910: 8e190318 */ lw $t9,0x318($s0)
.L0000e914:
/* e914: 13200005 */ beqz $t9,.L0000e92c
/* e918: 00000000 */ nop
/* e91c: 0fc62e79 */ jal func0f18b9e4
/* e920: 00000000 */ nop
/* e924: 10000006 */ b .L0000e940
/* e928: 8fbf001c */ lw $ra,0x1c($sp)
.L0000e92c:
/* e92c: 0fc43988 */ jal endscreenPrepare
/* e930: 00000000 */ nop
/* e934: 0fc5b6c5 */ jal musicStartForMenu
/* e938: 00000000 */ nop
/* e93c: 8fbf001c */ lw $ra,0x1c($sp)
.L0000e940:
/* e940: 24080001 */ addiu $t0,$zero,0x1
/* e944: 3c018006 */ lui $at,%hi(var8005d9d0)
/* e948: 8fb00014 */ lw $s0,0x14($sp)
/* e94c: 8fb10018 */ lw $s1,0x18($sp)
/* e950: ac28d9d0 */ sw $t0,%lo(var8005d9d0)($at)
/* e954: 03e00008 */ jr $ra
/* e958: 27bd0030 */ addiu $sp,$sp,0x30
);
void mainEndStage(void)
{
envStopNosedive();
if (var8005d9d0 == 0) {
func0f11c6d0();
func00013dd4();
if (g_Vars.coopplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
setCurrentPlayerNum(i);
soloPushCoopModeEndscreen();
}
setCurrentPlayerNum(prevplayernum);
musicStartForMenu();
} else if (g_Vars.antiplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
setCurrentPlayerNum(i);
soloPushAntiModeEndscreen();
}
setCurrentPlayerNum(prevplayernum);
musicStartForMenu();
} else if (g_Vars.normmplayerisrunning) {
func0f18b9e4();
} else {
endscreenPrepare();
musicStartForMenu();
}
}
var8005d9d0 = 1;
}
void func0000e95c(s32 stagenum)
{
@@ -1613,7 +1442,7 @@ void func0000e990(void)
{
func0f095d64();
func0f095bf4();
func0000e684();
mainEndStage();
}
void func0000e9c0(void)