diff --git a/src/ScreenDimensions.cpp b/src/ScreenDimensions.cpp index 746849406f..963f4a88c6 100644 --- a/src/ScreenDimensions.cpp +++ b/src/ScreenDimensions.cpp @@ -13,14 +13,12 @@ static ThemeMetric THEME_SCREEN_HEIGHT("Common","ScreenHeight"); * of the dimensions up to meet the requested aspect ratio. */ -/* - * The theme resolution isn't necessarily 4:3; a natively widescreen +/* The theme resolution isn't necessarily 4:3; a natively widescreen * theme would have eg. 16:9 or 16:10. * * Note that "aspect ratio" here always means DAR (display aspect ratio: the * aspect ratio of the physical display); we don't care about the PAR (pixel - * aspect ratio: the aspect ratio of a pixel). - */ + * aspect ratio: the aspect ratio of a pixel). */ float ScreenDimensions::GetThemeAspectRatio() { diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 254bd5d871..e01a56e7e7 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -86,6 +86,7 @@ void ScreenSelectMusic::Init() OPTIONS_LIST_TIMEOUT.Load( m_sName, "OptionsListTimeout" ); SELECT_MENU_CHANGES_DIFFICULTY.Load( m_sName, "SelectMenuChangesDifficulty" ); TWO_PART_SELECTION.Load( m_sName, "TwoPartSelection" ); + TWO_PART_CONFIRMS_ONLY.Load( m_sName, "TwoPartConfirmsOnly" ); WRAP_CHANGE_STEPS.Load( m_sName, "WrapChangeSteps" ); m_GameButtonPreviousSong = INPUTMAPPER->GetInputScheme()->ButtonNameToIndex( THEME->GetMetric(m_sName,"PreviousSongButton") ); @@ -596,24 +597,27 @@ void ScreenSelectMusic::Input( const InputEventPlus &input ) } } - if( m_SelectionState == SelectionState_SelectingSteps && - input.type == IET_FIRST_PRESS && - (input.MenuI == m_GameButtonNextSong || input.MenuI == m_GameButtonPreviousSong) && - !m_bStepsChosen[input.pn] ) + if(!TWO_PART_CONFIRMS_ONLY) { - if( input.MenuI == m_GameButtonPreviousSong ) + if( m_SelectionState == SelectionState_SelectingSteps && + input.type == IET_FIRST_PRESS && + (input.MenuI == m_GameButtonNextSong || input.MenuI == m_GameButtonPreviousSong) && + !m_bStepsChosen[input.pn] ) { - if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) - m_soundLocked.Play(); - else - ChangeSteps( input.pn, -1 ); - } - else if( input.MenuI == m_GameButtonNextSong ) - { - if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) - m_soundLocked.Play(); - else - ChangeSteps( input.pn, +1 ); + if( input.MenuI == m_GameButtonPreviousSong ) + { + if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) + m_soundLocked.Play(); + else + ChangeSteps( input.pn, -1 ); + } + else if( input.MenuI == m_GameButtonNextSong ) + { + if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) + m_soundLocked.Play(); + else + ChangeSteps( input.pn, +1 ); + } } } @@ -928,7 +932,6 @@ void ScreenSelectMusic::MenuStart( const InputEventPlus &input ) { DEFAULT_FAIL( m_SelectionState ); case SelectionState_SelectingSong: - // If false, we don't have a selection just yet. if( !m_MusicWheel.Select() ) return; @@ -1013,6 +1016,8 @@ void ScreenSelectMusic::MenuStart( const InputEventPlus &input ) } bool bAllPlayersDoneSelectingSteps = bInitiatedByMenuTimer || bAllOtherHumanPlayersDone; + if(TWO_PART_CONFIRMS_ONLY) + bAllPlayersDoneSelectingSteps = true; /* TRICKY: if we have a Routine chart selected, we need to ensure * the following: @@ -1126,6 +1131,15 @@ void ScreenSelectMusic::MenuStart( const InputEventPlus &input ) m_soundStart.Play(); + // If the MenuTimer has forced us to move on && TWO_PART_CONFIRMS_ONLY, + // set Selection State to finalized and move on. + if(TWO_PART_CONFIRMS_ONLY) + { + if(m_MenuTimer->GetSeconds() < 1) + { + m_SelectionState = SelectionState_Finalized; + } + } if( m_SelectionState == SelectionState_Finalized ) { diff --git a/src/ScreenSelectMusic.h b/src/ScreenSelectMusic.h index 56dee1d380..8318077029 100644 --- a/src/ScreenSelectMusic.h +++ b/src/ScreenSelectMusic.h @@ -85,6 +85,7 @@ protected: ThemeMetric SELECT_MENU_NAME; ThemeMetric SELECT_MENU_CHANGES_DIFFICULTY; ThemeMetric TWO_PART_SELECTION; + ThemeMetric TWO_PART_CONFIRMS_ONLY; ThemeMetric WRAP_CHANGE_STEPS; bool CanChangeSong() const { return m_SelectionState == SelectionState_SelectingSong; }