diff --git a/stepmania/src/ScreenNameEntry.cpp b/stepmania/src/ScreenNameEntry.cpp index 9ba72cf27d..5c09f358a1 100644 --- a/stepmania/src/ScreenNameEntry.cpp +++ b/stepmania/src/ScreenNameEntry.cpp @@ -117,7 +117,6 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName ) // GAMESTATE->m_iRankingIndex[PLAYER_1] = 0; - /* Save options. We'll reset them to display letters, and we must put them * back when we're done. */ GAMESTATE->StoreSelectedOptions(); @@ -129,21 +128,29 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName ) GAMESTATE->m_SongOptions = SongOptions(); } + int p; + // Find out if players deserve to enter their name + for( p=0; pm_iRankingIndex[p] != -1; + + if( !AnyStillEntering() ) + { + /* Nobody made a high score. */ + HandleScreenMessage( SM_GoToNextScreen ); + return; + } GAMESTATE->m_bPastHereWeGo = true; // enable the gray arrows m_Background.LoadFromAniDir( THEME->GetPathToB("ScreenNameEntry background") ); this->AddChild( &m_Background ); - for( int p=0; pm_iRankingIndex[p] != -1; - m_bStillEnteringName[p] = bNewHighScore; // false if they made a new high score for( int i=0; im_bMenuTimer ) m_Timer.Disable(); else @@ -257,6 +248,13 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName ) m_fFakeBeat = 0; } +bool ScreenNameEntry::AnyStillEntering() const +{ + for( int p=0; pRestoreSelectedOptions(); - Grade max_grade = GRADE_E; - vector vSongs; - StageStats stats; - GAMESTATE->GetFinalEvalStatsAndSongs( stats, vSongs ); /* Hack: go back to the select course screen in event mode. */ if( PREFSMAN->m_bEventMode && GAMESTATE->IsCourseMode() ) { @@ -381,6 +375,11 @@ void ScreenNameEntry::HandleScreenMessage( const ScreenMessage SM ) break; } + Grade max_grade = GRADE_E; + vector vSongs; + StageStats stats; + GAMESTATE->GetFinalEvalStatsAndSongs( stats, vSongs ); + for( int p=0; pIsHumanPlayer(p) ) max_grade = max( max_grade, stats.GetGrade((PlayerNumber)p) ); @@ -417,9 +416,6 @@ void ScreenNameEntry::MenuStart( PlayerNumber pn ) SONGMAN->m_MachineScores[GAMESTATE->m_RankingNotesType][GAMESTATE->m_RankingCategory[pn]][GAMESTATE->m_iRankingIndex[pn]].sName = m_sSelectedName[pn]; } - bool bAnyStillEntering = false; - for( int p=0; p