From c04d54878c44b5a2da6d601a05b6c4c871223d17 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 16 Sep 2003 05:57:23 +0000 Subject: [PATCH] Fix major skip after choosing style. --- stepmania/src/ScreenSelect.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/stepmania/src/ScreenSelect.cpp b/stepmania/src/ScreenSelect.cpp index 1f4652b6c5..d46be72f94 100644 --- a/stepmania/src/ScreenSelect.cpp +++ b/stepmania/src/ScreenSelect.cpp @@ -176,10 +176,6 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM ) { case SM_AllDoneChoosing: { - for( int p=0; pIsHumanPlayer(p) ) - m_aModeChoices[this->GetSelectionIndex((PlayerNumber)p)].Apply( (PlayerNumber)p ); - GAMESTATE->m_bPlayersCanJoin = false; SCREENMAN->RefreshCreditsMessages(); @@ -200,6 +196,13 @@ void ScreenSelect::HandleScreenMessage( const ScreenMessage SM ) break; case SM_GoToNextScreen: { + /* Apply here, not in SM_AllDoneChoosing, because applying can take a very + * long time (200+ms), and at SM_AllDoneChoosing, we're still tweening stuff + * off-screen. */ + for( int p=0; pIsHumanPlayer(p) ) + m_aModeChoices[this->GetSelectionIndex((PlayerNumber)p)].Apply( (PlayerNumber)p ); + int iSelectionIndex = GetSelectionIndex(GAMESTATE->m_MasterPlayerNumber); SCREENMAN->SetNewScreen( NEXT_SCREEN(iSelectionIndex) ); }