From 5fbdf2b66395cf32454addbb73ddb7265f0f0e52 Mon Sep 17 00:00:00 2001 From: Misa Date: Wed, 5 Apr 2023 19:32:42 -0700 Subject: [PATCH] Fix regression with music fade transitions not working Unfortunately, 1de459d9b414180d5049cbf153266a8d6e00c227 caused a regression where musicclass::niceplay() didn't work, because fading out the music would cause haltdasmusik() to be called, which would reset the fade variables. To fix this, haltdasmusik() will now only reset the fade variables if it's not called from a fade, which is signaled with a function parameter. --- desktop_version/src/Music.cpp | 14 +++++++++++--- desktop_version/src/Music.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/desktop_version/src/Music.cpp b/desktop_version/src/Music.cpp index b0c77fbd..4ce46b34 100644 --- a/desktop_version/src/Music.cpp +++ b/desktop_version/src/Music.cpp @@ -1026,14 +1026,22 @@ void musicclass::pause(void) } void musicclass::haltdasmusik(void) +{ + haltdasmusik(false); +} + +void musicclass::haltdasmusik(const bool from_fade) { /* Just pauses music. This is intended. */ pause(); currentsong = -1; m_doFadeInVol = false; m_doFadeOutVol = false; - nicefade = false; - nicechange = -1; + if (!from_fade) + { + nicefade = false; + nicechange = -1; + } } void musicclass::silencedasmusik(void) @@ -1145,7 +1153,7 @@ void musicclass::processmusicfadeout(void) { musicVolume = 0; m_doFadeOutVol = false; - haltdasmusik(); + haltdasmusik(true); } } diff --git a/desktop_version/src/Music.h b/desktop_version/src/Music.h index dd9a9112..8c6b3ee0 100644 --- a/desktop_version/src/Music.h +++ b/desktop_version/src/Music.h @@ -23,6 +23,7 @@ public: void resumefade(const int fadein_ms); void pause(void); void haltdasmusik(void); + void haltdasmusik(bool from_fade); void silencedasmusik(void); void fadeMusicVolumeIn(int ms); void fadeMusicVolumeOut(const int fadeout_ms);