From e999aa2923d391c60bbb96c23db60bb9d7338be4 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 8 Mar 2023 11:20:50 +0000 Subject: [PATCH] Fix: Don't (briefly) switch from title-only playlist on menu screen. Switching playlist while on the menu screen now only changes the playlist that will be used when out of the menu screen. --- src/music_gui.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/music_gui.cpp b/src/music_gui.cpp index 9aa90be195..7841bbf0d2 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -147,18 +147,20 @@ void MusicSystem::ChangePlaylist(PlaylistChoices pl) { assert(pl < PLCH_MAX && pl >= PLCH_ALLMUSIC); - this->displayed_playlist = this->standard_playlists[pl]; - this->active_playlist = this->displayed_playlist; - this->selected_playlist = pl; - this->playlist_position = 0; + if (pl != PLCH_THEMEONLY) _settings_client.music.playlist = pl; - if (this->selected_playlist != PLCH_THEMEONLY) _settings_client.music.playlist = this->selected_playlist; + if (_game_mode != GM_MENU || pl == PLCH_THEMEONLY) { + this->displayed_playlist = this->standard_playlists[pl]; + this->active_playlist = this->displayed_playlist; + this->selected_playlist = pl; + this->playlist_position = 0; - if (_settings_client.music.shuffle) { - this->Shuffle(); - /* Shuffle() will also Play() if necessary, only start once */ - } else if (_settings_client.music.playing) { - this->Play(); + if (_settings_client.music.shuffle) { + this->Shuffle(); + /* Shuffle() will also Play() if necessary, only start once */ + } else if (_settings_client.music.playing) { + this->Play(); + } } InvalidateWindowData(WC_MUSIC_TRACK_SELECTION, 0);