From 2af04ad0fa1f3a26d35e4af6f098a7f8aa6d92ee Mon Sep 17 00:00:00 2001 From: Misa Date: Sun, 22 Aug 2021 16:57:13 -0700 Subject: [PATCH] Make fade out duration proportional to volume This is the same behavior as SDL_mixer. Else, a fadeout would last the same amount of time no matter the volume, which is a regression. --- desktop_version/src/Music.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/desktop_version/src/Music.cpp b/desktop_version/src/Music.cpp index 438164f8..a6af5c1e 100644 --- a/desktop_version/src/Music.cpp +++ b/desktop_version/src/Music.cpp @@ -344,7 +344,8 @@ void musicclass::fadeMusicVolumeOut(const int fadeout_ms) m_doFadeOutVol = true; fade.step_ms = 0; - fade.duration_ms = fadeout_ms; + /* Duration is proportional to current volume. */ + fade.duration_ms = fadeout_ms * musicVolume / MIX_MAX_VOLUME; fade.start_volume = musicVolume; fade.end_volume = 0; }