diff --git a/desktop_version/src/Music.cpp b/desktop_version/src/Music.cpp index 3cf427ff..47436c48 100644 --- a/desktop_version/src/Music.cpp +++ b/desktop_version/src/Music.cpp @@ -33,11 +33,18 @@ musicclass::musicclass() void musicclass::init() { - for (size_t i = 0; i < soundTracks.size(); ++i) { + for (size_t i = 0; i < soundTracks.size(); ++i) + { Mix_FreeChunk(soundTracks[i].sound); } soundTracks.clear(); - for (size_t i = 0; i < musicTracks.size(); ++i) { + + // Before we free all the music: stop playing music, else SDL2_mixer + // will call SDL_Delay() if we are fading, resulting in no-draw frames + Mix_HaltMusic(); + + for (size_t i = 0; i < musicTracks.size(); ++i) + { Mix_FreeMusic(musicTracks[i].m_music); } musicTracks.clear();