diff --git a/stepmania/src/ScreenContinue.cpp b/stepmania/src/ScreenContinue.cpp index 8bd6aa3770..fe04409d83 100644 --- a/stepmania/src/ScreenContinue.cpp +++ b/stepmania/src/ScreenContinue.cpp @@ -40,12 +40,6 @@ void ScreenContinue::BeginScreen() FOREACH_HumanPlayer( p ) { bool bPlayerDone = GAMESTATE->m_iPlayerStageTokens[p] <= 0; - if( !STATSMAN->m_vPlayedStageStats.empty() ) - { - const StageStats &ss = STATSMAN->m_vPlayedStageStats.back(); - if( ss.m_player[p].m_bFailed ) - bPlayerDone = true; - } if( bPlayerDone ) GAMESTATE->UnjoinPlayer( p ); } diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index b764d26d63..f9f3ab60a8 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -2246,6 +2246,13 @@ void ScreenGameplay::StageFinished( bool bBackedOut ) return; } + /* If all players failed, kill. */ + if( STATSMAN->m_CurStageStats.AllFailed() ) + { + FOREACH_HumanPlayer( p ) + GAMESTATE->m_iPlayerStageTokens[p] = 0; + } + // save current stage stats STATSMAN->m_vPlayedStageStats.push_back( STATSMAN->m_CurStageStats );