diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index aca3c8b819..8761e51496 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -14,6 +14,9 @@ #include "PlayerState.h" #include "Foreach.h" +#define PREV_SCREEN THEME->GetMetric ("ScreenPlayerOptions","PrevScreen") +#define NEXT_SCREEN THEME->GetMetric ("ScreenPlayerOptions","NextScreen") + REGISTER_SCREEN_CLASS( ScreenPlayerOptions ); ScreenPlayerOptions::ScreenPlayerOptions( CString sClassName ) : ScreenOptionsMaster( sClassName ) @@ -155,6 +158,31 @@ void ScreenPlayerOptions::HandleScreenMessage( const ScreenMessage SM ) ScreenOptionsMaster::HandleScreenMessage( SM ); } +void ScreenPlayerOptions::GoToPrevScreen() +{ + if( SCREENMAN->IsStackedScreen(this) ) + { + SCREENMAN->PopTopScreen( SM_BackFromPlayerOptions ); + } + else + { + SCREENMAN->DeletePreparedScreens(); + SCREENMAN->SetNewScreen( PREV_SCREEN ); + } +} + +void ScreenPlayerOptions::GoToNextScreen() +{ + if( SCREENMAN->IsStackedScreen(this) ) + { + SCREENMAN->PopTopScreen( SM_BackFromPlayerOptions ); + } + else + { + SCREENMAN->SetNewScreen( NEXT_SCREEN ); + } +} + void ScreenPlayerOptions::UpdateDisqualified( int row, PlayerNumber pn ) { ASSERT( GAMESTATE->IsHumanPlayer(pn) ); diff --git a/stepmania/src/ScreenPlayerOptions.h b/stepmania/src/ScreenPlayerOptions.h index c4c023bb13..5e6ef31824 100644 --- a/stepmania/src/ScreenPlayerOptions.h +++ b/stepmania/src/ScreenPlayerOptions.h @@ -24,6 +24,9 @@ public: virtual void PushSelf( lua_State *L ); private: + void GoToNextScreen(); + void GoToPrevScreen(); + vector m_bRowCausesDisqualified[NUM_PLAYERS]; void UpdateDisqualified( int row, PlayerNumber pn );