diff --git a/stepmania/src/ModeChoice.cpp b/stepmania/src/ModeChoice.cpp index bcf2242393..07408ee8d8 100644 --- a/stepmania/src/ModeChoice.cpp +++ b/stepmania/src/ModeChoice.cpp @@ -133,5 +133,10 @@ void ModeChoice::Apply( PlayerNumber pn ) if( dc != DIFFICULTY_INVALID && pn != PLAYER_INVALID ) GAMESTATE->m_PreferredDifficulty[pn] = dc; if( sAnnouncer != "" ) - ANNOUNCER->SwitchAnnouncer( sAnnouncer ); + ANNOUNCER->SwitchAnnouncer( sAnnouncer ); + + // HACK: Set life type to BATTERY just once here so we don't + // override the user's changes if they back out. + if( GAMESTATE->m_PlayMode == PLAY_MODE_ONI ) + GAMESTATE->m_SongOptions.m_LifeType = SongOptions::LIFE_BATTERY; } diff --git a/stepmania/src/ScreenSelectCourse.cpp b/stepmania/src/ScreenSelectCourse.cpp index bfb2e467c9..08c0913f86 100644 --- a/stepmania/src/ScreenSelectCourse.cpp +++ b/stepmania/src/ScreenSelectCourse.cpp @@ -272,18 +272,6 @@ void ScreenSelectCourse::Input( const DeviceInput& DeviceI, InputEventType type, Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); // default input handler } -/* Adjust game options. These settings may be overridden again later by the - * SongOptions menu. */ -void ScreenSelectCourse::AdjustOptions() -{ - if(GAMESTATE->m_pCurCourse->m_iLives != -1) - { - /* oni */ - GAMESTATE->m_SongOptions.m_LifeType = SongOptions::LIFE_BATTERY; - GAMESTATE->m_SongOptions.m_iBatteryLives = GAMESTATE->m_pCurCourse->m_iLives; - } -} - void ScreenSelectCourse::HandleScreenMessage( const ScreenMessage SM ) { Screen::HandleScreenMessage( SM ); @@ -363,12 +351,6 @@ void ScreenSelectCourse::MenuStart( PlayerNumber pn ) Course* pCourse = m_MusicWheel.GetSelectedCourse(); GAMESTATE->m_pCurCourse = pCourse; - // apply #LIVES - if( pCourse->m_iLives != -1 ) - { - GAMESTATE->m_SongOptions.m_LifeType = SongOptions::LIFE_BATTERY; - GAMESTATE->m_SongOptions.m_iBatteryLives = pCourse->m_iLives; - } // // Do NOT apply the first song's modifiers before going to the options screen. @@ -383,7 +365,12 @@ void ScreenSelectCourse::MenuStart( PlayerNumber pn ) // GAMESTATE->m_PlayerOptions[p].FromString( sModifiers ); //GAMESTATE->m_SongOptions.FromString( sModifiers ); - AdjustOptions(); + + // Apply number of lives without turning on LIFE_BATTERY. + // Don't turn on LIFE_BATTERY because it will override + // the user's choice if they Back out of gameplay or are in + // event mode. + GAMESTATE->m_SongOptions.m_iBatteryLives = GAMESTATE->m_pCurCourse->m_iLives; break; } diff --git a/stepmania/src/ScreenSelectCourse.h b/stepmania/src/ScreenSelectCourse.h index a77b2cfcad..e7a3b6d6c5 100644 --- a/stepmania/src/ScreenSelectCourse.h +++ b/stepmania/src/ScreenSelectCourse.h @@ -39,7 +39,6 @@ public: void MenuBack( PlayerNumber pn ); protected: - void AdjustOptions(); void AfterCourseChange(); void UpdateOptionsDisplays();