diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index c9227cd8e4..f9ae91c063 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -806,17 +806,20 @@ void ScreenEvaluation::MenuStart( PlayerNumber pn ) { if( m_bTryExtraStage ) m_Menu.TweenOffScreenToMenu( SM_GoToSelectMusic ); - else if( m_ResultMode == RM_ARCADE_STAGE && GAMESTATE->m_iCurrentStageIndex == PREFSMAN->m_iNumArcadeStages-1 ) + else if( m_ResultMode == RM_ARCADE_STAGE ) { - /* Tween the screen out, but leave the MenuElements where they are. - * Play the "swoosh" sound manually (would normally be played by the ME - * tween out). */ - SOUNDMAN->PlayOnce( THEME->GetPathTo("Sounds","menu swoosh") ); - TweenOffScreen(); - SCREENMAN->SendMessageToTopScreen( SM_GoToFinalEvaluation, MENU_ELEMENTS_TWEEN_TIME ); + if( GAMESTATE->m_iCurrentStageIndex < PREFSMAN->m_iNumArcadeStages-1 ) + m_Menu.TweenOffScreenToMenu( SM_GoToSelectMusic ); + else + { + /* Tween the screen out, but leave the MenuElements where they are. + * Play the "swoosh" sound manually (would normally be played by the ME + * tween out). */ + SOUNDMAN->PlayOnce( THEME->GetPathTo("Sounds","menu swoosh") ); + TweenOffScreen(); + SCREENMAN->SendMessageToTopScreen( SM_GoToFinalEvaluation, MENU_ELEMENTS_TWEEN_TIME ); + } } - else if( m_ResultMode == RM_ARCADE_STAGE && GAMESTATE->m_iCurrentStageIndex < PREFSMAN->m_iNumArcadeStages-1 ) - m_Menu.TweenOffScreenToMenu( SM_GoToSelectMusic ); else m_Menu.TweenOffScreenToBlack( SM_GoToGameFinished, false ); } diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 4835b9f75f..55f170404a 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -1508,14 +1508,14 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) ShowSavePrompt( SM_GoToScreenAfterFail ); break; } + if( GAMESTATE->m_PlayMode == PLAY_MODE_NONSTOP || GAMESTATE->m_PlayMode == PLAY_MODE_ONI || - GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS ) + GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS || + GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2()) SCREENMAN->SetNewScreen( "ScreenEvaluation" ); else if( PREFSMAN->m_bEventMode ) this->SendScreenMessage( SM_GoToScreenAfterBack, 0 ); - else if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) - SCREENMAN->SetNewScreen( "ScreenFinalEvaluation" ); else SCREENMAN->SetNewScreen( "ScreenGameOver" ); break;