diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index 406a5d64b5..c12f975a96 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -24,6 +24,7 @@ #include "GameManager.h" #include "GameState.h" #include "RageSound.h" +#include "ScreenSelectCourse.h" enum { @@ -131,7 +132,11 @@ void ScreenPlayerOptions::ExportOptions() void ScreenPlayerOptions::GoToPrevState() { - SCREENMAN->SetNewScreen( new ScreenSelectMusic ); + if(GAMESTATE->m_PlayMode == PLAY_MODE_ONI || + GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS) + SCREENMAN->SetNewScreen( new ScreenSelectCourse ); + else + SCREENMAN->SetNewScreen( new ScreenSelectMusic ); } void ScreenPlayerOptions::GoToNextState() diff --git a/stepmania/src/ScreenSelectDifficulty.cpp b/stepmania/src/ScreenSelectDifficulty.cpp index 80c792d7e7..c98cc06805 100644 --- a/stepmania/src/ScreenSelectDifficulty.cpp +++ b/stepmania/src/ScreenSelectDifficulty.cpp @@ -295,19 +295,23 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM ) case 1: case 2: // something on page 1 was chosen GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE; - SCREENMAN->SetNewScreen( new ScreenSelectGroup ); break; case 3: GAMESTATE->m_PlayMode = PLAY_MODE_ONI; - SCREENMAN->SetNewScreen( new ScreenSelectCourse ); break; case 4: GAMESTATE->m_PlayMode = PLAY_MODE_ENDLESS; - SCREENMAN->SetNewScreen( new ScreenSelectCourse ); break; default: ASSERT(0); // bad selection } + + if(GAMESTATE->m_PlayMode == PLAY_MODE_ONI || + GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS) + SCREENMAN->SetNewScreen( new ScreenSelectCourse ); + else + SCREENMAN->SetNewScreen( new ScreenSelectGroup ); + break; case SM_StartTweeningOffScreen: TweenOffScreen();