diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 62aab7a30..d87bff9aa 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -6432,7 +6432,7 @@ glabel var7f1ad674 /* f0bbb7c: c5080010 */ lwc1 $f8,0x10($t0) /* f0bbb80: c44400f8 */ lwc1 $f4,0xf8($v0) /* f0bbb84: 46082280 */ add.s $f10,$f4,$f8 -/* f0bbb88: 0fc3c2fb */ jal func0f0f0bec +/* f0bbb88: 0fc3c2fb */ jal currentPlayerIsMenuOpenInSoloOrMp /* f0bbb8c: e44a00f8 */ swc1 $f10,0xf8($v0) /* f0bbb90: 3c08800a */ lui $t0,%hi(g_Vars) /* f0bbb94: 10400004 */ beqz $v0,.L0f0bbba8 @@ -6498,7 +6498,7 @@ glabel var7f1ad674 /* f0bbc7c: 00000000 */ sll $zero,$zero,0x0 /* f0bbc80: 46000406 */ mov.s $f16,$f0 .L0f0bbc84: -/* f0bbc84: 0fc3c2fb */ jal func0f0f0bec +/* f0bbc84: 0fc3c2fb */ jal currentPlayerIsMenuOpenInSoloOrMp /* f0bbc88: e7b00028 */ swc1 $f16,0x28($sp) /* f0bbc8c: 3c08800a */ lui $t0,%hi(g_Vars) /* f0bbc90: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars) @@ -6561,7 +6561,7 @@ glabel var7f1ad674 /* f0bbd70: c5080010 */ lwc1 $f8,0x10($t0) /* f0bbd74: c44400f8 */ lwc1 $f4,0xf8($v0) /* f0bbd78: 46082280 */ add.s $f10,$f4,$f8 -/* f0bbd7c: 0fc3c2fb */ jal func0f0f0bec +/* f0bbd7c: 0fc3c2fb */ jal currentPlayerIsMenuOpenInSoloOrMp /* f0bbd80: e44a00f8 */ swc1 $f10,0xf8($v0) /* f0bbd84: 3c08800a */ lui $t0,%hi(g_Vars) /* f0bbd88: 1040000d */ beqz $v0,.L0f0bbdc0 @@ -6595,7 +6595,7 @@ glabel var7f1ad674 /* f0bbdf4: 00000000 */ sll $zero,$zero,0x0 /* f0bbdf8: 45020037 */ bc1fl .L0f0bbed8 /* f0bbdfc: 8fbf0014 */ lw $ra,0x14($sp) -/* f0bbe00: 0fc3c2fb */ jal func0f0f0bec +/* f0bbe00: 0fc3c2fb */ jal currentPlayerIsMenuOpenInSoloOrMp /* f0bbe04: 00000000 */ sll $zero,$zero,0x0 /* f0bbe08: 3c08800a */ lui $t0,%hi(g_Vars) /* f0bbe0c: 14400031 */ bnez $v0,.L0f0bbed4 diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 1f153f9bf..2d4a8289d 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -538,43 +538,22 @@ bool menuIsSoloMissionOrMp(void) return false; } -GLOBAL_ASM( -glabel func0f0f0bec -/* f0f0bec: 3c0e800a */ lui $t6,%hi(g_Vars+0x288) -/* f0f0bf0: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6) -/* f0f0bf4: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0f0bf8: afbf0014 */ sw $ra,0x14($sp) -/* f0f0bfc: 8dc30070 */ lw $v1,0x70($t6) -/* f0f0c00: 0fc3c2e4 */ jal menuIsSoloMissionOrMp -/* f0f0c04: afa3001c */ sw $v1,0x1c($sp) -/* f0f0c08: 10400012 */ beqz $v0,.L0f0f0c54 -/* f0f0c0c: 8fa3001c */ lw $v1,0x1c($sp) -/* f0f0c10: 28610004 */ slti $at,$v1,0x4 -/* f0f0c14: 14200002 */ bnez $at,.L0f0f0c20 -/* f0f0c18: 3c18800a */ lui $t8,%hi(g_MenuStack+0x4f8) -/* f0f0c1c: 2463fffc */ addiu $v1,$v1,-4 -.L0f0f0c20: -/* f0f0c20: 000378c0 */ sll $t7,$v1,0x3 -/* f0f0c24: 01e37823 */ subu $t7,$t7,$v1 -/* f0f0c28: 000f7880 */ sll $t7,$t7,0x2 -/* f0f0c2c: 01e37821 */ addu $t7,$t7,$v1 -/* f0f0c30: 000f78c0 */ sll $t7,$t7,0x3 -/* f0f0c34: 01e37823 */ subu $t7,$t7,$v1 -/* f0f0c38: 000f7900 */ sll $t7,$t7,0x4 -/* f0f0c3c: 030fc021 */ addu $t8,$t8,$t7 -/* f0f0c40: 8f18e4f8 */ lw $t8,%lo(g_MenuStack+0x4f8)($t8) -/* f0f0c44: 53000004 */ beqzl $t8,.L0f0f0c58 -/* f0f0c48: 00001025 */ or $v0,$zero,$zero -/* f0f0c4c: 10000002 */ beqz $zero,.L0f0f0c58 -/* f0f0c50: 24020001 */ addiu $v0,$zero,0x1 -.L0f0f0c54: -/* f0f0c54: 00001025 */ or $v0,$zero,$zero -.L0f0f0c58: -/* f0f0c58: 8fbf0014 */ lw $ra,0x14($sp) -/* f0f0c5c: 27bd0020 */ addiu $sp,$sp,0x20 -/* f0f0c60: 03e00008 */ jr $ra -/* f0f0c64: 00000000 */ sll $zero,$zero,0x0 -); +bool currentPlayerIsMenuOpenInSoloOrMp(void) +{ + s32 mpindex = g_Vars.currentplayerstats->mpindex; + + if (menuIsSoloMissionOrMp()) { + if (mpindex >= 4) { + mpindex -= 4; + } + + if (g_MenuStack[mpindex].curframe) { + return true; + } + } + + return false; +} bool func0f0f0c68(void) { @@ -8203,7 +8182,7 @@ glabel var7f1b2990 /* f0f7808: 87ae001a */ lh $t6,0x1a($sp) /* f0f780c: 004e2021 */ addu $a0,$v0,$t6 /* f0f7810: 2484fffc */ addiu $a0,$a0,-4 -/* f0f7814: 0fc3c2fb */ jal func0f0f0bec +/* f0f7814: 0fc3c2fb */ jal currentPlayerIsMenuOpenInSoloOrMp /* f0f7818: afa40028 */ sw $a0,0x28($sp) /* f0f781c: 8fa30030 */ lw $v1,0x30($sp) /* f0f7820: 8fa40028 */ lw $a0,0x28($sp) diff --git a/src/include/game/game_0f09f0.h b/src/include/game/game_0f09f0.h index 14f9a0081..e235b179d 100644 --- a/src/include/game/game_0f09f0.h +++ b/src/include/game/game_0f09f0.h @@ -5,7 +5,7 @@ void func0f0f09f0(s32 arg0); bool menuIsSoloMissionOrMp(void); -u32 func0f0f0bec(void); +bool currentPlayerIsMenuOpenInSoloOrMp(void); bool func0f0f0c68(void); void func0f0f0ca0(s32 value, bool allplayers); u32 func0f0f0ce8(void);