diff --git a/stepmania/src/ScreenSplash.cpp b/stepmania/src/ScreenSplash.cpp index 7d8a16d8c8..40adff3dac 100644 --- a/stepmania/src/ScreenSplash.cpp +++ b/stepmania/src/ScreenSplash.cpp @@ -36,23 +36,15 @@ void ScreenSplash::HandleScreenMessage( const ScreenMessage SM ) /* The screen load took fScreenLoadSeconds. Move on to the next screen after * no less than MINIMUM_DELAY seconds. */ this->PostScreenMessage( SM_GoToNextScreen, max( 0, MINIMUM_LOAD_DELAY_SECONDS-fScreenLoadSeconds) ); + return; } else if( SM == SM_BeginFadingOut ) { StartTransitioning( SM_GoToNextScreen ); + return; } - else if( SM == SM_GoToNextScreen ) - { - if( SCREENMAN->IsStackedScreen(SCREENMAN->GetTopScreen()) ) - SCREENMAN->PopTopScreen( SM_None ); - else - SCREENMAN->SetNewScreen( NEXT_SCREEN ); - } - else if( SM == SM_GoToPrevScreen ) - { - SCREENMAN->DeletePreparedScreens(); - SCREENMAN->SetNewScreen( PREV_SCREEN ); - } + + ScreenWithMenuElements::HandleScreenMessage( SM ); } void ScreenSplash::MenuBack( PlayerNumber pn ) diff --git a/stepmania/src/ScreenStage.cpp b/stepmania/src/ScreenStage.cpp index c510b2ded7..9480236d55 100644 --- a/stepmania/src/ScreenStage.cpp +++ b/stepmania/src/ScreenStage.cpp @@ -72,21 +72,16 @@ void ScreenStage::HandleScreenMessage( const ScreenMessage SM ) /* The screen load took fScreenLoadSeconds. Move on to the next screen after * no less than MINIMUM_DELAY seconds. */ this->PostScreenMessage( SM_BeginFadingOut, max( 0, MINIMUM_DELAY-fScreenLoadSeconds) ); + return; } else if( SM == SM_BeginFadingOut ) { m_Out.StartTransitioning(); this->PostScreenMessage( SM_GoToNextScreen, this->GetTweenTimeLeft() ); + return; } - else if( SM == SM_GoToNextScreen ) - { - SCREENMAN->SetNewScreen( NEXT_SCREEN ); - } - else if( SM == SM_GoToPrevScreen ) - { - SCREENMAN->DeletePreparedScreens(); - SCREENMAN->SetNewScreen( PREV_SCREEN ); - } + + Screen::HandleScreenMessage( SM ); } void ScreenStage::Update( float fDeltaTime )