From 95fb191fb4de39dde3440ff3b54c0e543933f2c7 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 24 Apr 2007 16:30:23 +0000 Subject: [PATCH] allow loading profile without loading edits --- stepmania/src/GameState.cpp | 4 ++-- stepmania/src/GameState.h | 2 +- stepmania/src/ProfileManager.cpp | 17 ++++++++++------- stepmania/src/ProfileManager.h | 4 ++-- stepmania/src/ScreenProfileLoad.cpp | 9 ++++++++- stepmania/src/ScreenProfileLoad.h | 3 +++ 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 870b716cfd..1d7d0da5f9 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -438,7 +438,7 @@ void GameState::BeginGame() MEMCARDMAN->UnlockCard( pn ); } -void GameState::LoadProfiles() +void GameState::LoadProfiles( bool bLoadEdits ) { /* Unlock any cards that we might want to load. */ FOREACH_HumanPlayer( pn ) @@ -457,7 +457,7 @@ void GameState::LoadProfiles() continue; MEMCARDMAN->MountCard( pn ); - PROFILEMAN->LoadFirstAvailableProfile( pn ); // load full profile + PROFILEMAN->LoadFirstAvailableProfile( pn, bLoadEdits ); // load full profile MEMCARDMAN->UnmountCard( pn ); LoadCurrentSettingsFromProfile( pn ); diff --git a/stepmania/src/GameState.h b/stepmania/src/GameState.h index 2db922d303..4a70a6e8c8 100644 --- a/stepmania/src/GameState.h +++ b/stepmania/src/GameState.h @@ -43,7 +43,7 @@ public: void JoinPlayer( PlayerNumber pn ); void UnjoinPlayer( PlayerNumber pn ); bool JoinInput( PlayerNumber pn ); - void LoadProfiles(); + void LoadProfiles( bool bLoadEdits = true ); void SaveProfiles(); bool HaveProfileToLoad(); bool HaveProfileToSave(); diff --git a/stepmania/src/ProfileManager.cpp b/stepmania/src/ProfileManager.cpp index c2fb8e7336..9069aa6b46 100644 --- a/stepmania/src/ProfileManager.cpp +++ b/stepmania/src/ProfileManager.cpp @@ -210,7 +210,7 @@ void ProfileManager::GetMemoryCardProfileDirectoriesToTry( vector &asDi split( g_sMemoryCardProfileImportSubdirs, ";", asDirsToTry, true ); } -bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn ) +bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn, bool bLoadEdits ) { UnloadProfile( pn ); @@ -253,20 +253,23 @@ bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn ) m_sProfileDir[pn] = MEM_CARD_MOUNT_POINT[pn] + (RString)PREFSMAN->m_sMemoryCardProfileSubdir + "/"; /* Load edits from all fallback directories, newest first. */ - for( unsigned i = 0; i < asDirsToTry.size(); ++i ) + if( bLoadEdits ) { - const RString &sSubdir = asDirsToTry[i]; - RString sDir = MEM_CARD_MOUNT_POINT[pn] + sSubdir + "/"; + for( unsigned i = 0; i < asDirsToTry.size(); ++i ) + { + const RString &sSubdir = asDirsToTry[i]; + RString sDir = MEM_CARD_MOUNT_POINT[pn] + sSubdir + "/"; - SONGMAN->LoadAllFromProfileDir( sDir, (ProfileSlot) pn ); + SONGMAN->LoadAllFromProfileDir( sDir, (ProfileSlot) pn ); + } } return true; // If a card is inserted, we want to use the memory card to save - even if the Profile load failed. } -bool ProfileManager::LoadFirstAvailableProfile( PlayerNumber pn ) +bool ProfileManager::LoadFirstAvailableProfile( PlayerNumber pn, bool bLoadEdits ) { - if( LoadProfileFromMemoryCard(pn) ) + if( LoadProfileFromMemoryCard(pn, bLoadEdits) ) return true; if( LoadLocalProfileFromMachine(pn) ) diff --git a/stepmania/src/ProfileManager.h b/stepmania/src/ProfileManager.h index 74fd53a9f4..6e8b06b4f3 100644 --- a/stepmania/src/ProfileManager.h +++ b/stepmania/src/ProfileManager.h @@ -46,9 +46,9 @@ public: int GetNumLocalProfiles() const; - bool LoadFirstAvailableProfile( PlayerNumber pn ); // memory card or local profile + bool LoadFirstAvailableProfile( PlayerNumber pn, bool bLoadEdits = true ); // memory card or local profile bool LoadLocalProfileFromMachine( PlayerNumber pn ); - bool LoadProfileFromMemoryCard( PlayerNumber pn ); + bool LoadProfileFromMemoryCard( PlayerNumber pn, bool bLoadEdits = true ); bool FastLoadProfileNameFromMemoryCard( RString sRootDir, RString &sName ) const; void SaveAllProfiles() const; bool SaveProfile( PlayerNumber pn ) const; diff --git a/stepmania/src/ScreenProfileLoad.cpp b/stepmania/src/ScreenProfileLoad.cpp index 4b670a06eb..24ce3e9f96 100644 --- a/stepmania/src/ScreenProfileLoad.cpp +++ b/stepmania/src/ScreenProfileLoad.cpp @@ -6,6 +6,13 @@ REGISTER_SCREEN_CLASS( ScreenProfileLoad ); +void ScreenProfileLoad::Init() +{ + LOAD_EDITS.Load( m_sName, "LoadEdits" ); + + ScreenWithMenuElements::Init(); +} + void ScreenProfileLoad::BeginScreen() { m_bHaveProfileToLoad = GAMESTATE->HaveProfileToLoad(); @@ -27,7 +34,7 @@ void ScreenProfileLoad::Continue() { if( m_bHaveProfileToLoad ) { - GAMESTATE->LoadProfiles(); + GAMESTATE->LoadProfiles( LOAD_EDITS ); SCREENMAN->ZeroNextUpdate(); } diff --git a/stepmania/src/ScreenProfileLoad.h b/stepmania/src/ScreenProfileLoad.h index 87f39f7668..0aedbdffd3 100644 --- a/stepmania/src/ScreenProfileLoad.h +++ b/stepmania/src/ScreenProfileLoad.h @@ -6,6 +6,7 @@ class ScreenProfileLoad: public ScreenWithMenuElements { public: + virtual void Init(); virtual void BeginScreen(); virtual void Input( const InputEventPlus &input ); void Continue(); @@ -13,6 +14,8 @@ public: virtual void PushSelf( lua_State *L ); bool m_bHaveProfileToLoad; + + ThemeMetric LOAD_EDITS; }; #endif