Cleanup. Don't load ScreenNameEntry background if we're not actually

going to enter a score.
This commit is contained in:
Glenn Maynard
2003-10-05 21:42:56 +00:00
parent 71d558f1ca
commit b8e22b7c8c
2 changed files with 27 additions and 30 deletions
+26 -30
View File
@@ -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; p<NUM_PLAYERS; p++ )
m_bStillEnteringName[p] = GAMESTATE->m_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; p<NUM_PLAYERS; p++ )
for( p=0; p<NUM_PLAYERS; p++ )
{
// Find out if player deserves to enter their name
bool bNewHighScore = GAMESTATE->m_iRankingIndex[p] != -1;
m_bStillEnteringName[p] = bNewHighScore; // false if they made a new high score
for( int i=0; i<MAX_RANKING_NAME_LENGTH; i++ )
m_sSelectedName[p] += ' ';
if( !bNewHighScore )
if( !m_bStillEnteringName[p] )
continue; // skip
// remove modifiers that may have been on the last song
@@ -220,22 +227,6 @@ ScreenNameEntry::ScreenNameEntry( CString sClassName ) : Screen( sClassName )
}
bool bAnyStillEntering = false;
{
for( int p=0; p<NUM_PLAYERS; p++ )
bAnyStillEntering |= m_bStillEnteringName[p];
if( !bAnyStillEntering )
{
HandleScreenMessage( SM_GoToNextScreen );
return;
}
}
if( !PREFSMAN->m_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; p<NUM_PLAYERS; p++ )
if( m_bStillEnteringName[p] )
return true;
return false;
}
ScreenNameEntry::~ScreenNameEntry()
{
@@ -370,10 +368,6 @@ void ScreenNameEntry::HandleScreenMessage( const ScreenMessage SM )
{
GAMESTATE->RestoreSelectedOptions();
Grade max_grade = GRADE_E;
vector<Song*> 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<Song*> vSongs;
StageStats stats;
GAMESTATE->GetFinalEvalStatsAndSongs( stats, vSongs );
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->IsHumanPlayer(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<NUM_PLAYERS; p++ )
bAnyStillEntering |= m_bStillEnteringName[p];
if( !bAnyStillEntering && !m_Out.IsTransitioning() )
if( !AnyStillEntering() && !m_Out.IsTransitioning() )
m_Out.StartTransitioning( SM_GoToNextScreen );
}