diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 0e667b27a..a6506b9f2 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -10960,7 +10960,7 @@ struct menu_dialog menudialog_2bd40 = { // 2bd58 struct menu_item menuitems_mpsoundtrack[] = { { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(63), 0x00000000, NULL }, // "Current:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS(3), (u32)&func0f17dfac, NULL }, // "" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS(3), (u32)&mpMenuTextCurrentTrack, NULL }, // "" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, (u32)&func0f17dc44, 0x00000000, &menudialog_2bd40 }, { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(64), 0x00000000, menuhandlerMpMultipleTunes }, // "Multiple Tunes" diff --git a/src/game/game_179060.c b/src/game/game_179060.c index 85c405a1a..acb892800 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -4909,7 +4909,7 @@ glabel var7f1b8228 /* f17deb8: 10000029 */ beqz $zero,.L0f17df60 /* f17debc: acca0000 */ sw $t2,0x0($a2) .L0f17dec0: -/* f17dec0: 0fc63122 */ jal func0f18c488 +/* f17dec0: 0fc63122 */ jal mpGetTrackNum /* f17dec4: afa60038 */ sw $a2,0x38($sp) /* f17dec8: 04410006 */ bgez $v0,.L0f17dee4 /* f17decc: 8fa60038 */ lw $a2,0x38($sp) @@ -4973,36 +4973,22 @@ bool menudialogMpSelectTune(u32 operation, struct menu_dialog *dialog, struct me return false; } -GLOBAL_ASM( -glabel func0f17dfac -/* f17dfac: 27bdffe8 */ addiu $sp,$sp,-24 -/* f17dfb0: afbf0014 */ sw $ra,0x14($sp) -/* f17dfb4: 0fc630a9 */ jal mpGetUsingMultipleTunes -/* f17dfb8: afa40018 */ sw $a0,0x18($sp) -/* f17dfbc: 10400005 */ beqz $v0,.L0f17dfd4 -/* f17dfc0: 00000000 */ sll $zero,$zero,0x0 -/* f17dfc4: 0fc5b9f1 */ jal langGet -/* f17dfc8: 24045042 */ addiu $a0,$zero,0x5042 -/* f17dfcc: 1000000c */ beqz $zero,.L0f17e000 -/* f17dfd0: 8fbf0014 */ lw $ra,0x14($sp) -.L0f17dfd4: -/* f17dfd4: 0fc63122 */ jal func0f18c488 -/* f17dfd8: 00000000 */ sll $zero,$zero,0x0 -/* f17dfdc: 04400005 */ bltz $v0,.L0f17dff4 -/* f17dfe0: 00402025 */ or $a0,$v0,$zero -/* f17dfe4: 0fc63097 */ jal mpGetTrackName -/* f17dfe8: 00000000 */ sll $zero,$zero,0x0 -/* f17dfec: 10000004 */ beqz $zero,.L0f17e000 -/* f17dff0: 8fbf0014 */ lw $ra,0x14($sp) -.L0f17dff4: -/* f17dff4: 0fc5b9f1 */ jal langGet -/* f17dff8: 24045043 */ addiu $a0,$zero,0x5043 -/* f17dffc: 8fbf0014 */ lw $ra,0x14($sp) -.L0f17e000: -/* f17e000: 27bd0018 */ addiu $sp,$sp,0x18 -/* f17e004: 03e00008 */ jr $ra -/* f17e008: 00000000 */ sll $zero,$zero,0x0 -); +char *mpMenuTextCurrentTrack(struct menu_item *item) +{ + s32 tracknum; + + if (mpGetUsingMultipleTunes()) { + return langGet(L_MPMENU(66)); // "Multiple Tunes" + } + + tracknum = mpGetTrackNum(); + + if (tracknum >= 0) { + return mpGetTrackName(tracknum); + } + + return langGet(L_MPMENU(67)); // "Random" +} s32 menuhandlerMpMultipleTunes(u32 operation, struct menu_item *item, s32 *value) { diff --git a/src/game/mplayer.c b/src/game/mplayer.c index c3029f153..16f5eec31 100644 --- a/src/game/mplayer.c +++ b/src/game/mplayer.c @@ -5609,7 +5609,7 @@ glabel func0f18c478 ); GLOBAL_ASM( -glabel func0f18c488 +glabel mpGetTrackNum /* f18c488: 3c04800b */ lui $a0,%hi(var800acc14) /* f18c48c: 8084cc14 */ lb $a0,%lo(var800acc14)($a0) /* f18c490: 27bdffe8 */ addiu $sp,$sp,-24 @@ -5761,7 +5761,7 @@ glabel func0f18c4c0 /* f18c688: 10000038 */ beqz $zero,.L0f18c76c /* f18c68c: 00031242 */ srl $v0,$v1,0x9 .L0f18c690: -/* f18c690: 0fc63122 */ jal func0f18c488 +/* f18c690: 0fc63122 */ jal mpGetTrackNum /* f18c694: 00000000 */ sll $zero,$zero,0x0 /* f18c698: 04410022 */ bgez $v0,.L0f18c724 /* f18c69c: 00409825 */ or $s3,$v0,$zero diff --git a/src/include/game/game_179060.h b/src/include/game/game_179060.h index 5f2ae6f99..26bb1a7a8 100644 --- a/src/include/game/game_179060.h +++ b/src/include/game/game_179060.h @@ -51,7 +51,7 @@ char *mpMenuTextChrNameForTeamSetup(struct menu_item *item); char *func0f17dac4(u32 operation, struct menu_item *item, s32 *value); u32 func0f17dc44(void); s32 menuhandler0017dc84(u32, u32, u32 *); -u32 func0f17dfac(void); +char *mpMenuTextCurrentTrack(struct menu_item *item); s32 menuhandler0017e06c(u32, u32, u32 *); u32 func0f17e288(void); u32 func0f17e318(void); diff --git a/src/include/game/mplayer.h b/src/include/game/mplayer.h index 2f9209c49..7ffc30f51 100644 --- a/src/include/game/mplayer.h +++ b/src/include/game/mplayer.h @@ -77,7 +77,7 @@ u32 func0f18c3e4(void); u32 func0f18c40c(void); u32 func0f18c430(void); u32 func0f18c478(void); -u32 func0f18c488(void); +u32 mpGetTrackNum(void); u32 func0f18c4c0(void); struct mpchr *func0f18c794(s32 index); u32 func0f18c828(void);