Don't check `!muted` when fading music after completion prompt

This was done in 2.2 and previous probably to fix the fact that there
were multiple conflicting audio controls (the player wants to mute the
audio but the game wants to fade in the audio), but is now actively
harmful since 2.3, because muting the game while finishing the
completion prompt means the music will never come back in, even after
unmuting.

I also notice that when collecting a custom crewmate, the game checks
for the level's start music instead of if there's actually a current
song playing right now. I don't know why this was done, because it
would've been better to copy-paste the trinket collection logic here.
It's entirely possible for the audio to just be muted and never come
back if the level has no start music but plays a song by using a script.
Anyways, leaving it alone because it's quite possible that a level might
be intentionally designed around this, I can't really tell the
intentions of every level creator, and it's easy to work around (either
don't use custom crewmates, which every modern level basically does
nowadays, or just set the start music).
This commit is contained in:
Misa 2021-09-10 15:46:14 -07:00
parent 3185d88776
commit 07bbc5b2de
1 changed files with 8 additions and 2 deletions

View File

@ -1865,7 +1865,10 @@ void Game::updatestate(void)
advancetext = false;
completestop = false;
state = 0;
if(!muted && music.currentsong>-1) music.fadeMusicVolumeIn(3000);
if (music.currentsong > -1)
{
music.fadeMusicVolumeIn(3000);
}
graphics.showcutscenebars = false;
break;
@ -1930,7 +1933,10 @@ void Game::updatestate(void)
}
else
{
if(!muted && cl.levmusic>0) music.fadeMusicVolumeIn(3000);
if (cl.levmusic > 0)
{
music.fadeMusicVolumeIn(3000);
}
}
graphics.showcutscenebars = false;
break;