diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index 936a0d7a1..0bcb94216 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -17,29 +17,22 @@ #include "lib/lib_11420.h" #include "types.h" -GLOBAL_ASM( -glabel func0f16cfa0 -/* f16cfa0: 3c0e800a */ lui $t6,%hi(g_Vars+0x4b4) -/* f16cfa4: 8dcea474 */ lw $t6,%lo(g_Vars+0x4b4)($t6) -/* f16cfa8: 2401005c */ addiu $at,$zero,0x5c -/* f16cfac: 3c028008 */ lui $v0,%hi(var800840ec) -/* f16cfb0: 15c10003 */ bne $t6,$at,.L0f16cfc0 -/* f16cfb4: 00000000 */ nop -/* f16cfb8: 03e00008 */ jr $ra -/* f16cfbc: 24025000 */ addiu $v0,$zero,0x5000 -.L0f16cfc0: -/* f16cfc0: 944240ec */ lhu $v0,%lo(var800840ec)($v0) -/* f16cfc4: 24035000 */ addiu $v1,$zero,0x5000 -/* f16cfc8: 28415000 */ slti $at,$v0,0x5000 -/* f16cfcc: 10200003 */ beqz $at,.L0f16cfdc -/* f16cfd0: 00000000 */ nop -/* f16cfd4: 10000001 */ b .L0f16cfdc -/* f16cfd8: 00401825 */ or $v1,$v0,$zero -.L0f16cfdc: -/* f16cfdc: 3062ffff */ andi $v0,$v1,0xffff -/* f16cfe0: 03e00008 */ jr $ra -/* f16cfe4: 00000000 */ nop -); +u16 audioGetVolume(void) +{ + u32 volume; + + if (g_Vars.stagenum == STAGE_CREDITS) { + return 0x5000; + } + + if (var800840ec < 0x5000) { + volume = var800840ec; + } else { + volume = 0x5000; + } + + return volume; +} void func0f16cfe8(u16 volume) { @@ -208,7 +201,7 @@ void func0f16d44c(void) void func0f16d4b8(f32 arg0) { if (TRACKNUM2() >= 0) { - func0f16d1bc(1, TRACKNUM2(), arg0, func0f16cfa0()); + func0f16d1bc(1, TRACKNUM2(), arg0, audioGetVolume()); } } @@ -284,12 +277,12 @@ bool audioIsAnyPlayerInRoomWithFlag4000(void) void func0f16d89c(f32 arg0) { - func0f16d1bc(2, func0f176d20(var800aa5d0), arg0, func0f16cfa0()); + func0f16d1bc(2, func0f176d20(var800aa5d0), arg0, audioGetVolume()); } void func0f16d8e0(f32 arg0) { - func0f16d1bc(3, menuChooseMusic(), arg0, func0f16cfa0()); + func0f16d1bc(3, menuChooseMusic(), arg0, audioGetVolume()); } void audioSetBgMusic(s32 tracknum) @@ -300,7 +293,7 @@ void audioSetBgMusic(s32 tracknum) func0f16d2ac(1, 0.5f, 1); func0f16d2ac(2, 0.5f, 1); func0f16d2ac(5, 0.5f, 1); - func0f16d1bc(3, tracknum, 0, func0f16cfa0()); + func0f16d1bc(3, tracknum, 0, audioGetVolume()); } g_AudioCurrentBgMusicNum = tracknum; @@ -386,14 +379,14 @@ void audioPlaySoloDeathTrack(void) func0f16d240(2); func0f16d240(1); func0f16d240(5); - func0f16d1bc(1, MUSIC_DEATH_SOLO, 0, VOLUME(g_SfxVolume) > func0f16cfa0() ? VOLUME(g_SfxVolume) : func0f16cfa0()); + func0f16d1bc(1, MUSIC_DEATH_SOLO, 0, VOLUME(g_SfxVolume) > audioGetVolume() ? VOLUME(g_SfxVolume) : audioGetVolume()); func0f16d44c(); } void audioPlayMpDeathTrack(f32 arg0) { func0f16d430(); - func0f16d1bc(4, MUSIC_DEATH_MP, arg0, VOLUME(g_SfxVolume) > func0f16cfa0() ? VOLUME(g_SfxVolume) : func0f16cfa0()); + func0f16d1bc(4, MUSIC_DEATH_MP, arg0, VOLUME(g_SfxVolume) > audioGetVolume() ? VOLUME(g_SfxVolume) : audioGetVolume()); func0f16d44c(); } @@ -438,7 +431,7 @@ void audioPlayTrack(s32 tracknum) func0f16d240(2); func0f16d240(1); func0f16d240(5); - func0f16d1bc(1, tracknum, 0, func0f16cfa0()); + func0f16d1bc(1, tracknum, 0, audioGetVolume()); func0f16d44c(); } @@ -468,8 +461,8 @@ void audioSetTrack(s32 tracknum) func0f16d240(2); func0f16d240(1); - if (g_SfxVolume < func0f16cfa0()) { - volume = func0f16cfa0(); + if (g_SfxVolume < audioGetVolume()) { + volume = audioGetVolume(); } else { volume = g_SfxVolume; } diff --git a/src/game/pdoptions.c b/src/game/pdoptions.c index 140a85c8e..d7d2bcdc1 100644 --- a/src/game/pdoptions.c +++ b/src/game/pdoptions.c @@ -280,7 +280,7 @@ void optionsSetScreenSplit(u8 split) s32 optionsGetMusicVolume(void) { - return func0f16cfa0(); + return audioGetVolume(); } void optionsSetMusicVolume(u16 volume) diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index 3bbbc21c6..595b596e8 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -3,7 +3,7 @@ #include #include "types.h" -u16 func0f16cfa0(void); +u16 audioGetVolume(void); void func0f16cfe8(u16 volume); bool func0f16d0a8(s32 arg0, s32 arg1); s32 func0f16d124(s32 arg0); diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index 44d349676..c17106cb1 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -1681,14 +1681,14 @@ glabel func0000fe88 /* 1003c: 24010006 */ addiu $at,$zero,0x6 /* 10040: 15410014 */ bne $t2,$at,.L00010094 /* 10044: 00000000 */ nop -/* 10048: 0fc5b3e8 */ jal func0f16cfa0 +/* 10048: 0fc5b3e8 */ jal audioGetVolume /* 1004c: 00000000 */ nop /* 10050: 3c038006 */ lui $v1,%hi(g_SfxVolume) /* 10054: 9463ddc8 */ lhu $v1,%lo(g_SfxVolume)($v1) /* 10058: 0062082a */ slt $at,$v1,$v0 /* 1005c: 10200005 */ beqz $at,.L00010074 /* 10060: 00608025 */ or $s0,$v1,$zero -/* 10064: 0fc5b3e8 */ jal func0f16cfa0 +/* 10064: 0fc5b3e8 */ jal audioGetVolume /* 10068: 00000000 */ nop /* 1006c: 10000001 */ b .L00010074 /* 10070: 00408025 */ or $s0,$v0,$zero diff --git a/src/lib/lib_11420.c b/src/lib/lib_11420.c index de6561baf..d17711aba 100644 --- a/src/lib/lib_11420.c +++ b/src/lib/lib_11420.c @@ -809,7 +809,7 @@ glabel func00011d84 /* 11e88: 3c04800b */ lui $a0,%hi(var800aa5d0) /* 11e8c: 0fc5db10 */ jal func0f176c40 /* 11e90: 8c84a5d0 */ lw $a0,%lo(var800aa5d0)($a0) -/* 11e94: 0fc5b3e8 */ jal func0f16cfa0 +/* 11e94: 0fc5b3e8 */ jal audioGetVolume /* 11e98: afa20018 */ sw $v0,0x18($sp) /* 11e9c: 24040001 */ addiu $a0,$zero,0x1 /* 11ea0: 8fa50018 */ lw $a1,0x18($sp) @@ -878,7 +878,7 @@ glabel func00011d84 /* 11f90: 3c04800b */ lui $a0,%hi(var800aa5d0) /* 11f94: 0fc5db10 */ jal func0f176c40 /* 11f98: 8c84a5d0 */ lw $a0,%lo(var800aa5d0)($a0) -/* 11f9c: 0fc5b3e8 */ jal func0f16cfa0 +/* 11f9c: 0fc5b3e8 */ jal audioGetVolume /* 11fa0: afa20018 */ sw $v0,0x18($sp) /* 11fa4: 24040001 */ addiu $a0,$zero,0x1 /* 11fa8: 8fa50018 */ lw $a1,0x18($sp)