save and restore last used ranking name from/to profile

This commit is contained in:
Chris Danford
2003-11-09 10:14:52 +00:00
parent 2920700f7a
commit 7681bd508b
4 changed files with 33 additions and 7 deletions
+6 -1
View File
@@ -198,7 +198,12 @@ void ScreenSystemLayer::RefreshCreditsMessages()
{
Profile* pProfile = PROFILEMAN->GetProfile( (PlayerNumber)p );
if( pProfile )
sPlayerInfo = pProfile->m_sName;
{
if( !pProfile->m_sLastUsedHighScoreName.empty() )
sPlayerInfo = pProfile->m_sLastUsedHighScoreName;
else
sPlayerInfo = pProfile->m_sName;
}
else if( GAMESTATE->m_bIsOnSystemMenu ) // no mem card
sPlayerInfo = "";
else if( PREFSMAN->m_sMemoryCardDir[p]!="" )
+17 -2
View File
@@ -25,6 +25,7 @@
#include "Course.h"
#include "AnnouncerManager.h"
#include <math.h>
#include "ProfileManager.h"
//
@@ -168,9 +169,16 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName )
for( p=0; p<NUM_PLAYERS; p++ )
{
for( int i=0; i<MAX_RANKING_NAME_LENGTH; i++ )
m_sSelectedName[p] += ' ';
// load last used ranking name if any
Profile* pProfile = PROFILEMAN->GetProfile((PlayerNumber)p);
if( pProfile && !pProfile->m_sLastUsedHighScoreName.empty() )
m_sSelectedName[p] = pProfile->m_sLastUsedHighScoreName;
// resize string to MAX_RANKING_NAME_LENGTH
m_sSelectedName[p] = ssprintf( "%*.*s", MAX_RANKING_NAME_LENGTH, MAX_RANKING_NAME_LENGTH, m_sSelectedName[p].c_str() );
ASSERT( m_sSelectedName[p].length() == MAX_RANKING_NAME_LENGTH );
// don't load player if they aren't going to enter their name
if( !m_bStillEnteringName[p] )
continue; // skip
@@ -210,6 +218,8 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName )
m_textSelectedChars[p][t].SetY( GRAY_ARROWS_Y );
m_textSelectedChars[p][t].SetDiffuse( g_SelectedCharsColor );
m_textSelectedChars[p][t].SetZoom( CHARS_ZOOM_LARGE );
if( t<m_sSelectedName[p].length() )
m_textSelectedChars[p][t].SetText( m_sSelectedName[p].substr(t,1) );
this->AddChild( &m_textSelectedChars[p][t] ); // draw these manually
m_textScrollingChars[p][t].LoadFromFont( THEME->GetPathToF("ScreenNameEntry letters") );
@@ -421,6 +431,11 @@ void ScreenNameEntry::MenuStart( PlayerNumber pn )
GAMESTATE->StoreRankingName( pn, m_sSelectedName[pn] );
// save last used ranking name
Profile* pProfile = PROFILEMAN->GetProfile(pn);
if( pProfile )
pProfile->m_sLastUsedHighScoreName = m_sSelectedName[pn];
if( !AnyStillEntering() && !m_Out.IsTransitioning() )
m_Out.StartTransitioning( SM_GoToNextScreen );
}
@@ -29,6 +29,7 @@
#include "AnnouncerManager.h"
#include "song.h"
#include <math.h>
#include "ProfileManager.h"
//
@@ -419,6 +420,11 @@ void ScreenNameEntryTraditional::Finish( PlayerNumber pn )
GAMESTATE->StoreRankingName( pn, selection );
// save last used ranking name
Profile* pProfile = PROFILEMAN->GetProfile(pn);
if( pProfile )
pProfile->m_sLastUsedHighScoreName = selection;
OFF_COMMAND( m_Keyboard[pn] );
for( int i = 0; i < (int)m_textAlphabet[pn].size(); ++i )
OFF_COMMAND( m_textAlphabet[pn][i] );
+4 -4
View File
@@ -81,6 +81,10 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
CodeDetector::RefreshCacheItems();
m_sprLogo.Load( THEME->GetPathToG(ssprintf("ScreenLogo %s",GAMESTATE->GetCurrentGameDef()->m_szName)) );
m_sprLogo.Command( PREFSMAN->m_iCoinMode==COIN_HOME ? LOGO_HOME_ON_COMMAND : LOGO_ON_COMMAND );
this->AddChild( &m_sprLogo );
if( PREFSMAN->m_iCoinMode != COIN_HOME )
{
switch( PREFSMAN->m_Premium )
@@ -96,10 +100,6 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
}
}
m_sprLogo.Load( THEME->GetPathToG(ssprintf("ScreenLogo %s",GAMESTATE->GetCurrentGameDef()->m_szName)) );
m_sprLogo.Command( PREFSMAN->m_iCoinMode==COIN_HOME ? LOGO_HOME_ON_COMMAND : LOGO_ON_COMMAND );
this->AddChild( &m_sprLogo );
m_textVersion.LoadFromFont( THEME->GetPathToF("Common normal") );
m_textVersion.Command( VERSION_ON_COMMAND );
m_textVersion.SetText( PRODUCT_VER );