diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index e179f1ca42..317a149326 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -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]!="" ) diff --git a/stepmania/src/ScreenNameEntry.cpp b/stepmania/src/ScreenNameEntry.cpp index 63460460e4..a4a94d6bb4 100644 --- a/stepmania/src/ScreenNameEntry.cpp +++ b/stepmania/src/ScreenNameEntry.cpp @@ -25,6 +25,7 @@ #include "Course.h" #include "AnnouncerManager.h" #include +#include "ProfileManager.h" // @@ -168,9 +169,16 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName ) for( p=0; pGetProfile((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( tAddChild( &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 ); } diff --git a/stepmania/src/ScreenNameEntryTraditional.cpp b/stepmania/src/ScreenNameEntryTraditional.cpp index a535daa41b..b27d96687b 100644 --- a/stepmania/src/ScreenNameEntryTraditional.cpp +++ b/stepmania/src/ScreenNameEntryTraditional.cpp @@ -29,6 +29,7 @@ #include "AnnouncerManager.h" #include "song.h" #include +#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] ); diff --git a/stepmania/src/ScreenTitleMenu.cpp b/stepmania/src/ScreenTitleMenu.cpp index d0f995e87d..dee5531e1b 100644 --- a/stepmania/src/ScreenTitleMenu.cpp +++ b/stepmania/src/ScreenTitleMenu.cpp @@ -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 );