Fix getting another extra stage if pick extra stage is on and you play the chosen song.

This commit is contained in:
Steve Checkoway
2006-07-03 03:46:34 +00:00
parent 380f97f903
commit fae99b18f1
+22 -13
View File
@@ -965,6 +965,27 @@ bool GameState::HasEarnedExtraStage() const
if( m_bBackedOutOfFinalStage )
return false;
if( !IsFinalStage() && !IsExtraStage() )
return false;
bool bOnePassed = false;
FOREACH_EnabledPlayer( pn )
{
if( this->m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_HARD &&
this->m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_CHALLENGE )
continue; /* not hard enough! */
if( STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= Grade_Tier03 )
{
bOnePassed = true;
break;
}
}
if( !bOnePassed )
return false;
/* If PickExtraStage, allow EX2 if the chosen song was correct. */
if( PREFSMAN->m_bPickExtraStage && this->IsExtraStage() )
@@ -978,19 +999,7 @@ bool GameState::HasEarnedExtraStage() const
return stats.vpPlayedSongs.size() && stats.vpPlayedSongs.back() == pSong;
}
if( (this->IsFinalStage() || this->IsExtraStage()) )
{
FOREACH_EnabledPlayer( pn )
{
if( this->m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_HARD &&
this->m_pCurSteps[pn]->GetDifficulty() != DIFFICULTY_CHALLENGE )
continue; /* not hard enough! */
if( STATSMAN->m_CurStageStats.m_player[pn].GetGrade() <= Grade_Tier03 )
return true;
}
}
return false;
return true;
}
PlayerNumber GameState::GetBestPlayer() const