easier fail mode only for each player's first stage; don't give it to

everyone for everyone else's first
This commit is contained in:
Glenn Maynard
2007-05-12 23:51:56 +00:00
parent 8278b2e9a1
commit a72131f0b0
+4 -7
View File
@@ -1314,23 +1314,20 @@ PlayerOptions::FailType GameState::GetPlayerFailType( const PlayerState *pPlayer
if( m_pCurSteps[pn] )
dc = m_pCurSteps[pn]->GetDifficulty();
bool bFirstStageForAny = false;
bool bFirstStage = false;
if( !IsEventMode() )
{
FOREACH_HumanPlayer( p )
bFirstStageForAny |= m_iPlayerStageTokens[p] == PREFSMAN->m_iSongsPerPlay-1; // HACK; -1 because this is called during gameplay
}
bFirstStage |= m_iPlayerStageTokens[pPlayerState->m_PlayerNumber] == PREFSMAN->m_iSongsPerPlay-1; // HACK; -1 because this is called during gameplay
/* Easy and beginner are never harder than FAIL_IMMEDIATE_CONTINUE. */
if( dc <= Difficulty_Easy )
setmax( ft, PlayerOptions::FAIL_IMMEDIATE_CONTINUE );
if( dc <= Difficulty_Easy && bFirstStageForAny && PREFSMAN->m_bFailOffForFirstStageEasy )
if( dc <= Difficulty_Easy && bFirstStage && PREFSMAN->m_bFailOffForFirstStageEasy )
setmax( ft, PlayerOptions::FAIL_OFF );
/* If beginner's steps were chosen, and this is the first stage,
* turn off failure completely. */
if( dc == Difficulty_Beginner && bFirstStageForAny )
if( dc == Difficulty_Beginner && bFirstStage )
setmax( ft, PlayerOptions::FAIL_OFF );
if( dc == Difficulty_Beginner && PREFSMAN->m_bFailOffInBeginner )