fallback load for Editable.ini when loaded by the memory card thread

This commit is contained in:
Glenn Maynard
2005-04-24 23:23:32 +00:00
parent 1ea1ecfaaf
commit 5093809e31
2 changed files with 21 additions and 7 deletions
+20 -6
View File
@@ -130,7 +130,7 @@ bool ProfileManager::LoadLocalProfileFromMachine( PlayerNumber pn )
return LoadProfile( pn, sDir, false ) == Profile::success; return LoadProfile( pn, sDir, false ) == Profile::success;
} }
void ProfileManager::GetMemoryCardProfileDirectoriesToTry( vector<CString> &asDirsToTry ) void ProfileManager::GetMemoryCardProfileDirectoriesToTry( vector<CString> &asDirsToTry ) const
{ {
/* Try to load the preferred profile. */ /* Try to load the preferred profile. */
asDirsToTry.push_back( PREFSMAN->m_sMemoryCardProfileSubdir ); asDirsToTry.push_back( PREFSMAN->m_sMemoryCardProfileSubdir );
@@ -199,12 +199,26 @@ bool ProfileManager::LoadFirstAvailableProfile( PlayerNumber pn )
bool ProfileManager::FastLoadProfileNameFromMemoryCard( CString sRootDir, CString &sName ) const bool ProfileManager::FastLoadProfileNameFromMemoryCard( CString sRootDir, CString &sName ) const
{ {
CString sProfileDir = sRootDir + PREFSMAN->m_sMemoryCardProfileSubdir + '/'; vector<CString> asDirsToTry;
GetMemoryCardProfileDirectoriesToTry( asDirsToTry );
Profile profile; for( unsigned i = 0; i < asDirsToTry.size(); ++i )
profile.LoadEditableDataFromDir( sProfileDir ); {
sName = profile.GetDisplayName(); const CString &sSubdir = asDirsToTry[i];
return true; CString sDir = sRootDir + sSubdir + "/";
Profile profile;
Profile::LoadResult res = profile.LoadEditableDataFromDir( sDir );
if( res == Profile::success )
{
sName = profile.GetDisplayName();
return true;
}
else if( res != Profile::failed_no_profile )
break;
}
return false;
} }
void ProfileManager::SaveAllProfiles() const void ProfileManager::SaveAllProfiles() const
+1 -1
View File
@@ -33,7 +33,6 @@ public:
void SaveAllProfiles() const; void SaveAllProfiles() const;
bool SaveProfile( PlayerNumber pn ) const; bool SaveProfile( PlayerNumber pn ) const;
void UnloadProfile( PlayerNumber pn ); void UnloadProfile( PlayerNumber pn );
void GetMemoryCardProfileDirectoriesToTry( vector<CString> &asDirsToTry );
// //
// General data // General data
@@ -92,6 +91,7 @@ public:
private: private:
Profile::LoadResult LoadProfile( PlayerNumber pn, CString sProfileDir, bool bIsMemCard ); Profile::LoadResult LoadProfile( PlayerNumber pn, CString sProfileDir, bool bIsMemCard );
void GetMemoryCardProfileDirectoriesToTry( vector<CString> &asDirsToTry ) const;
// Directory that contains the profile. Either on local machine or // Directory that contains the profile. Either on local machine or
// on a memory card. // on a memory card.