diff --git a/stepmania/src/ScreenSelectCharacter.cpp b/stepmania/src/ScreenSelectCharacter.cpp index db9c46197d..6b9ebb88cc 100644 --- a/stepmania/src/ScreenSelectCharacter.cpp +++ b/stepmania/src/ScreenSelectCharacter.cpp @@ -59,7 +59,28 @@ void ScreenSelectCharacter::Init() vector apCharacters; GAMESTATE->GetCharacters( apCharacters ); - ASSERT_M( !apCharacters.empty(), "No characters are available" ); + if( apCharacters.empty() ) + { + this->PostScreenMessage( SM_GoToNextScreen, 0 ); + return; + } + + switch( GAMESTATE->m_PlayMode ) + { + // For Rave/Battle mode, we force the players to select characters + // (by not returning in this switch) + case PLAY_MODE_BATTLE: + case PLAY_MODE_RAVE: + break; + + default: + /* Non Rave/Battle mode, just skip this screen if disabled. */ + if( PREFSMAN->m_ShowDancingCharacters != PrefsManager::CO_SELECT ) + { + this->PostScreenMessage( SM_GoToNextScreen, 0 ); + return; + } + } FOREACH_PlayerNumber( p ) {