diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 9a9f7f2f13..1f95960805 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -36,6 +36,8 @@ bool Screen::SortMessagesByDelayRemaining(const Screen::QueuedScreenMessage &m1, void Screen::Init() { + m_smSendOnPop = SM_None; + this->RunCommands( THEME->GetMetricA(m_sName, "ScreenInitCommand") ); vector asList; @@ -197,13 +199,13 @@ void Screen::HandleScreenMessage( const ScreenMessage SM ) break; case SM_GoToNextScreen: if( SCREENMAN->IsStackedScreen(this) ) - SCREENMAN->PopTopScreen( SM_None ); + SCREENMAN->PopTopScreen( m_smSendOnPop ); else SCREENMAN->SetNewScreen( GetNextScreen() ); break; case SM_GoToPrevScreen: if( SCREENMAN->IsStackedScreen(this) ) - SCREENMAN->PopTopScreen( SM_None ); + SCREENMAN->PopTopScreen( m_smSendOnPop ); else SCREENMAN->SetNewScreen( GetPrevScreen() ); break; diff --git a/stepmania/src/Screen.h b/stepmania/src/Screen.h index bf0b61c8e5..eefc3c7394 100644 --- a/stepmania/src/Screen.h +++ b/stepmania/src/Screen.h @@ -79,6 +79,7 @@ protected: // If these are left blank, the NextScreen and PrevScreen metrics will be used. CString m_sNextScreen, m_sPrevScreen; + ScreenMessage m_smSendOnPop; public: