handle failure in SGameplay, not SContinue; fixes name entry
not knowing a player is finished
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user