create new profiles without reloading all old ones

This commit is contained in:
Glenn Maynard
2005-08-12 18:40:12 +00:00
parent d01af9bde2
commit 39656d87ec
3 changed files with 18 additions and 11 deletions
+11 -6
View File
@@ -1889,15 +1889,20 @@ void Profile::BackupToDir( CString sFromDir, CString sToDir )
FileCopy( sFromDir+DONT_SHARE_SIG, sToDir+DONT_SHARE_SIG );
}
bool Profile::CreateNewProfile( CString sProfileDir, CString sName, bool bFillWithRandomCharacter )
Profile *Profile::CreateNewProfile( CString sProfileDir, CString sName, bool bFillWithRandomCharacter )
{
Profile pro;
pro.m_sDisplayName = sName;
Profile *pProfile = new Profile;
pProfile->m_sDisplayName = sName;
if( bFillWithRandomCharacter )
pro.m_sCharacter = GAMESTATE->GetRandomCharacter()->m_sName;
bool bResult = pro.SaveAllToDir( sProfileDir, PREFSMAN->m_bSignProfileData );
pProfile->m_sCharacter = GAMESTATE->GetRandomCharacter()->m_sName;
if( !pProfile->SaveAllToDir(sProfileDir, PREFSMAN->m_bSignProfileData) )
{
delete pProfile;
return NULL;
}
FlushDirCache();
return bResult;
return pProfile;
}
+1 -1
View File
@@ -332,7 +332,7 @@ public:
void SaveStatsWebPageToDir( CString sDir ) const;
void SaveMachinePublicKeyToDir( CString sDir ) const;
static bool CreateNewProfile( CString sProfileDir, CString sName, bool bFillWithRandomCharacter );
static Profile *CreateNewProfile( CString sProfileDir, CString sName, bool bFillWithRandomCharacter );
static void BackupToDir( CString sFromDir, CString sToDir );
// Lua
+6 -4
View File
@@ -378,10 +378,11 @@ bool ProfileManager::CreateLocalProfile( CString sName, CString &sProfileIDOut )
bool ProfileManager::CreateLocalProfileByID( CString sName, CString sProfileID )
{
CString sProfileDir = LocalProfileIdToDir( sProfileID );
if( !Profile::CreateNewProfile(sProfileDir, sName, true) )
Profile *pProfile = Profile::CreateNewProfile( sProfileDir, sName, true );
if( pProfile == NULL )
return false;
RefreshLocalProfilesFromDisk();
g_mapLocalProfileIdToProfile[sProfileID] = pProfile;
return true;
}
@@ -434,8 +435,9 @@ void ProfileManager::LoadMachineProfile()
Profile::LoadResult lr = m_pMachineProfile->LoadAllFromDir(MACHINE_PROFILE_DIR, false);
if( lr == Profile::failed_no_profile )
{
Profile::CreateNewProfile( MACHINE_PROFILE_DIR, "Machine", false );
m_pMachineProfile->LoadAllFromDir( MACHINE_PROFILE_DIR, false );
Profile *pProfile = Profile::CreateNewProfile( MACHINE_PROFILE_DIR, "Machine", false );
delete m_pMachineProfile;
m_pMachineProfile = pProfile;
}
// If the machine name has changed, make sure we use the new name