From 43050643d6659612e2fc1f1082f9cfb1e5e17e04 Mon Sep 17 00:00:00 2001 From: Martin Natano Date: Fri, 28 Oct 2022 17:17:06 +0200 Subject: [PATCH] Revert back to ignoring FastLoad when reloading from operator menu Many people (especially chart authors) expect that behaviour. --- src/ScreenInstallOverlay.cpp | 2 +- src/ScreenReloadSongs.cpp | 2 +- src/SongManager.cpp | 9 ++++++++- src/SongManager.h | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ScreenInstallOverlay.cpp b/src/ScreenInstallOverlay.cpp index 3c12ffb59b..f7d0a3e586 100644 --- a/src/ScreenInstallOverlay.cpp +++ b/src/ScreenInstallOverlay.cpp @@ -177,7 +177,7 @@ void ScreenInstallOverlay::Update( float fDeltaTime ) playAfterLaunchInfo.OverlayWith( pali2 ); } if( playAfterLaunchInfo.bAnySongChanged ) - SONGMAN->Reload(); + SONGMAN->Reload( false ); if( !playAfterLaunchInfo.sSongDir.empty() ) { diff --git a/src/ScreenReloadSongs.cpp b/src/ScreenReloadSongs.cpp index 0578288a2b..b9e82f7e09 100644 --- a/src/ScreenReloadSongs.cpp +++ b/src/ScreenReloadSongs.cpp @@ -84,7 +84,7 @@ void ScreenReloadSongs::Update( float fDeltaTime ) } else { - SONGMAN->Reload( m_pLoadingWindow ); + SONGMAN->Reload( false, m_pLoadingWindow ); } SCREENMAN->PostMessageToTopScreen( SM_GoToNextScreen, 0 ); diff --git a/src/SongManager.cpp b/src/SongManager.cpp index 411573f927..5a5075d49a 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -117,7 +117,7 @@ static LocalizedString UNLOADING_SONGS ( "SongManager", "Unloading songs..." ); static LocalizedString UNLOADING_COURSES ( "SongManager", "Unloading courses..." ); static LocalizedString SANITY_CHECKING_GROUPS("SongManager", "Sanity checking groups..."); -void SongManager::Reload( LoadingWindow *ld ) +void SongManager::Reload( bool bAllowFastLoad, LoadingWindow *ld ) { FILEMAN->FlushDirCache( SpecialFiles::SONGS_DIR ); FILEMAN->FlushDirCache( SpecialFiles::COURSES_DIR ); @@ -172,6 +172,10 @@ void SongManager::Reload( LoadingWindow *ld ) FreeSongs(); + const bool oldVal = PREFSMAN->m_bFastLoad; + if( !bAllowFastLoad ) + PREFSMAN->m_bFastLoad.Set( false ); + InitAll( ld, /*onlyAdditions=*/false ); // reload scores and unlocks afterward @@ -203,6 +207,9 @@ void SongManager::Reload( LoadingWindow *ld ) } UNLOCKMAN->Reload(); + if( !bAllowFastLoad ) + PREFSMAN->m_bFastLoad.Set( oldVal ); + UpdatePreferredSort(); } diff --git a/src/SongManager.h b/src/SongManager.h index b32d239598..d7010ea697 100644 --- a/src/SongManager.h +++ b/src/SongManager.h @@ -84,7 +84,7 @@ public: * last invocation of this function */ void InitAll( LoadingWindow *ld, bool onlyAdditions ); - void Reload( LoadingWindow *ld=nullptr ); + void Reload( bool bAllowFastLoad, LoadingWindow *ld=nullptr ); void LoadAdditions( LoadingWindow *ld=nullptr ); void PreloadSongImages();