diff --git a/desktop_version/src/Music.cpp b/desktop_version/src/Music.cpp index 5792271c..41556315 100644 --- a/desktop_version/src/Music.cpp +++ b/desktop_version/src/Music.cpp @@ -139,7 +139,6 @@ void musicclass::init() nicechange = -1; nicefade = false; resumesong = 0; - fadeoutqueuesong = -1; dontquickfade = false; songStart = 0; @@ -199,14 +198,20 @@ void musicclass::play(int t, const double position_sec /*= 0.0*/, const int fade } else { - if (Mix_FadingMusic() == MIX_FADING_OUT) { + if (Mix_FadingMusic() == MIX_FADING_OUT) + { // We're already fading out - fadeoutqueuesong = t; + nicechange = t; + nicefade = true; currentsong = -1; if (!dontquickfade) + { Mix_FadeOutMusic(500); // fade out quicker + } else + { dontquickfade = false; + } } else if(Mix_FadeInMusicPos(musicTracks[t].m_music, -1, fadein_ms, position_sec)==-1) { @@ -277,11 +282,6 @@ void musicclass::processmusic() return; } - if (fadeoutqueuesong != -1 && Mix_PlayingMusic() == 0) { - play(fadeoutqueuesong); - fadeoutqueuesong = -1; - } - if (nicefade && Mix_PlayingMusic() == 0) { play(nicechange); diff --git a/desktop_version/src/Music.h b/desktop_version/src/Music.h index 67f25677..edddf868 100644 --- a/desktop_version/src/Music.h +++ b/desktop_version/src/Music.h @@ -36,14 +36,13 @@ public: SoundSystem soundSystem; bool safeToProcessMusic; - int nicechange; + int nicechange; // -1 if no song queued bool nicefade; bool m_doFadeInVol; int FadeVolAmountPerFrame; int musicVolume; - int fadeoutqueuesong; // -1 if no song queued bool dontquickfade; // MMMMMM mod settings