diff --git a/src/game/game_0e5ce0.c b/src/game/game_0e5ce0.c index 83fe7f319..3b2ef4edf 100644 --- a/src/game/game_0e5ce0.c +++ b/src/game/game_0e5ce0.c @@ -13795,7 +13795,7 @@ glabel func0f0ee648 /* f0ee68c: 00a08825 */ or $s1,$a1,$zero /* f0ee690: 0080a025 */ or $s4,$a0,$zero /* f0ee694: afae00c4 */ sw $t6,0xc4($sp) -/* f0ee698: 0fc6321f */ jal func0f18c87c +/* f0ee698: 0fc6321f */ jal mpGetNumChrs /* f0ee69c: afb800b4 */ sw $t8,0xb4($sp) /* f0ee6a0: 8fa300b4 */ lw $v1,0xb4($sp) /* f0ee6a4: afa200a0 */ sw $v0,0xa0($sp) @@ -14079,7 +14079,7 @@ glabel func0f0ee648 /* f0eead4: 0fc5580f */ jal func0f15603c /* f0eead8: afad0020 */ sw $t5,0x20($sp) /* f0eeadc: 0040a025 */ or $s4,$v0,$zero -/* f0eeae0: 0fc6321f */ jal func0f18c87c +/* f0eeae0: 0fc6321f */ jal mpGetNumChrs /* f0eeae4: 2412000c */ addiu $s2,$zero,0xc /* f0eeae8: 28410002 */ slti $at,$v0,0x2 /* f0eeaec: 142001b6 */ bnez $at,.L0f0ef1c8 diff --git a/src/game/game_10c9c0.c b/src/game/game_10c9c0.c index 87074ae95..bd2e8900d 100644 --- a/src/game/game_10c9c0.c +++ b/src/game/game_10c9c0.c @@ -20,7 +20,7 @@ s32 menuhandler4MbDropOut(u32 operation, struct menu_item *item, s32 *value) menuPopDialog(); menuPopDialog(); - if (func0f18c87c() == 1) { + if (mpGetNumChrs() == 1) { func0f0f820c(&g_4MbMainMenu, 11); } } diff --git a/src/game/game_179060.c b/src/game/game_179060.c index 02ee4d0d8..bac0d6fce 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -4318,7 +4318,7 @@ glabel func0f17d4b0 /* f17d4e4: afa5007c */ sw $a1,0x7c($sp) /* f17d4e8: 14810090 */ bne $a0,$at,.L0f17d72c /* f17d4ec: afa60080 */ sw $a2,0x80($sp) -/* f17d4f0: 0fc6321f */ jal func0f18c87c +/* f17d4f0: 0fc6321f */ jal mpGetNumChrs /* f17d4f4: 00000000 */ sll $zero,$zero,0x0 /* f17d4f8: 0050c821 */ addu $t9,$v0,$s0 /* f17d4fc: 2728ffff */ addiu $t0,$t9,-1 @@ -6159,7 +6159,7 @@ glabel var7f1b82dc /* f17f364: a043ffc5 */ sb $v1,-0x3b($v0) /* f17f368: 10000026 */ beqz $zero,.L0f17f404 /* f17f36c: 8fbf0034 */ lw $ra,0x34($sp) -/* f17f370: 0fc6321f */ jal func0f18c87c +/* f17f370: 0fc6321f */ jal mpGetNumChrs /* f17f374: 00000000 */ sll $zero,$zero,0x0 /* f17f378: 2456ffff */ addiu $s6,$v0,-1 /* f17f37c: 06c0001e */ bltz $s6,.L0f17f3f8 diff --git a/src/game/mplayer.c b/src/game/mplayer.c index f9c1eb2c4..c6a672803 100644 --- a/src/game/mplayer.c +++ b/src/game/mplayer.c @@ -5909,26 +5909,19 @@ glabel func0f18c828 /* f18c878: 00601025 */ or $v0,$v1,$zero ); -GLOBAL_ASM( -glabel func0f18c87c -/* f18c87c: 3c04800b */ lui $a0,%hi(g_MpSetup+0x16) -/* f18c880: 00001825 */ or $v1,$zero,$zero -/* f18c884: 9484cb9e */ lhu $a0,%lo(g_MpSetup+0x16)($a0) -/* f18c888: 00001025 */ or $v0,$zero,$zero -/* f18c88c: 2405000c */ addiu $a1,$zero,0xc -/* f18c890: 240e0001 */ addiu $t6,$zero,0x1 -.L0f18c894: -/* f18c894: 004e7804 */ sllv $t7,$t6,$v0 -/* f18c898: 008fc024 */ and $t8,$a0,$t7 -/* f18c89c: 13000002 */ beqz $t8,.L0f18c8a8 -/* f18c8a0: 24420001 */ addiu $v0,$v0,0x1 -/* f18c8a4: 24630001 */ addiu $v1,$v1,0x1 -.L0f18c8a8: -/* f18c8a8: 5445fffa */ bnel $v0,$a1,.L0f18c894 -/* f18c8ac: 240e0001 */ addiu $t6,$zero,0x1 -/* f18c8b0: 03e00008 */ jr $ra -/* f18c8b4: 00601025 */ or $v0,$v1,$zero -); +s32 mpGetNumChrs(void) +{ + s32 count = 0; + s32 i; + + for (i = 0; i != MAX_MPCHRS; i++) { + if (g_MpSetup.chrslots & (1 << i)) { + count++; + } + } + + return count; +} GLOBAL_ASM( glabel func0f18c8b8 diff --git a/src/include/game/mplayer.h b/src/include/game/mplayer.h index 976152140..4aab06e75 100644 --- a/src/include/game/mplayer.h +++ b/src/include/game/mplayer.h @@ -81,7 +81,7 @@ u32 mpGetTrackNum(void); u32 func0f18c4c0(void); struct mpchr *func0f18c794(s32 index); u32 func0f18c828(void); -u32 func0f18c87c(void); +s32 mpGetNumChrs(void); u32 func0f18c8b8(void); u32 func0f18c984(void); u32 func0f18cb60(void);