diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 2b66e4e791..99b6bcd2af 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -172,17 +172,32 @@ void Screen::HandleScreenMessage( const ScreenMessage SM ) if( SCREENMAN->IsStackedScreen(this) ) SCREENMAN->PopTopScreen( SM_None ); else - SCREENMAN->SetNewScreen( NEXT_SCREEN ); + SCREENMAN->SetNewScreen( GetNextScreen() ); break; case SM_GoToPrevScreen: if( SCREENMAN->IsStackedScreen(this) ) SCREENMAN->PopTopScreen( SM_None ); else - SCREENMAN->SetNewScreen( PREV_SCREEN ); + SCREENMAN->SetNewScreen( GetPrevScreen() ); break; } } +CString Screen::GetNextScreen() const +{ + if( !m_sNextScreen.empty() ) + return m_sNextScreen; + return NEXT_SCREEN; +} + +CString Screen::GetPrevScreen() const +{ + if( !m_sPrevScreen.empty() ) + return m_sPrevScreen; + return PREV_SCREEN; +} + + bool Screen::JoinInput( const MenuInput &MenuI ) { if( !GAMESTATE->PlayersCanJoin() ) diff --git a/stepmania/src/Screen.h b/stepmania/src/Screen.h index 17b33a99b1..e40f95618f 100644 --- a/stepmania/src/Screen.h +++ b/stepmania/src/Screen.h @@ -74,6 +74,12 @@ protected: ThemeMetric ALLOW_OPERATOR_MENU_BUTTON; + virtual CString GetNextScreen() const; + virtual CString GetPrevScreen() const; + + // If these are left blank, the NextScreen and PrevScreen metrics will be used. + CString m_sNextScreen, m_sPrevScreen; + public: // let subclass override if they want