From 0bc9261eb3504fc9697517d5fb3bd2165e847266 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 16 Jul 2005 05:28:34 +0000 Subject: [PATCH] return ID of the created profile --- stepmania/src/ProfileManager.cpp | 6 +++++- stepmania/src/ProfileManager.h | 2 +- stepmania/src/ScreenSelectProfile.cpp | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/stepmania/src/ProfileManager.cpp b/stepmania/src/ProfileManager.cpp index dfff816b16..9f28593a63 100644 --- a/stepmania/src/ProfileManager.cpp +++ b/stepmania/src/ProfileManager.cpp @@ -322,7 +322,7 @@ Profile &ProfileManager::GetLocalProfile( const CString &sProfileID ) return *iter->second; } -bool ProfileManager::CreateLocalProfile( CString sName ) +bool ProfileManager::CreateLocalProfile( CString sName, CString &sProfileIDOut ) { ASSERT( !sName.empty() ); @@ -343,6 +343,10 @@ bool ProfileManager::CreateLocalProfile( CString sName ) return false; bool bResult = Profile::CreateNewProfile( sProfileDir, sName ); + if( bResult ) + sProfileIDOut = sProfileID; + else + sProfileIDOut = ""; RefreshLocalProfilesFromDisk(); return bResult; } diff --git a/stepmania/src/ProfileManager.h b/stepmania/src/ProfileManager.h index bccd97b8bd..15e93e9635 100644 --- a/stepmania/src/ProfileManager.h +++ b/stepmania/src/ProfileManager.h @@ -30,7 +30,7 @@ public: void RefreshLocalProfilesFromDisk(); Profile &GetLocalProfile( const CString &sProfileID ); - bool CreateLocalProfile( CString sName ); + bool CreateLocalProfile( CString sName, CString &sProfileIDOut ); bool RenameLocalProfile( CString sProfileID, CString sNewName ); bool DeleteLocalProfile( CString sProfileID ); CString GetNewLocalProfileDefaultName() const; diff --git a/stepmania/src/ScreenSelectProfile.cpp b/stepmania/src/ScreenSelectProfile.cpp index a8ccf4c898..746df3c146 100644 --- a/stepmania/src/ScreenSelectProfile.cpp +++ b/stepmania/src/ScreenSelectProfile.cpp @@ -87,7 +87,7 @@ void ScreenSelectProfile::HandleScreenMessage( const ScreenMessage SM ) ASSERT( GAMESTATE->m_sLastSelectedProfileID.empty() ) // create - bool bResult = PROFILEMAN->CreateLocalProfile( sNewName ); + bool bResult = PROFILEMAN->CreateLocalProfile( sNewName, GAMESTATE->m_sLastSelectedProfileID ); if( bResult ) SCREENMAN->SetNewScreen( NEXT_SCREEN ); else