Allow for 'confirmation only' double press mechanisms as a choice for two part selection on ScreenSelectMusic

This commit is contained in:
Andrew Livy
2009-05-07 17:08:16 +00:00
parent 88c7a447a5
commit b5129ddd94
3 changed files with 34 additions and 14 deletions
+2 -1
View File
@@ -429,6 +429,7 @@ PreviousSongButton="MenuLeft"
NextSongButton="MenuRight"
UseOptionsList=false
TwoPartSelection=false
TwoPartConfirmsOnly=false
UsePlayerSelectMenu=false
StepsDisplayP1X=
StepsDisplayP1Y=
@@ -454,7 +455,7 @@ OptionsAreaP2X=SCREEN_CENTER_X+166
OptionsAreaP2Y=SCREEN_CENTER_Y+148
OptionsAreaP2OnCommand=
OptionsAreaP2OffCommand=
SelectMenuChangesDifficulty=true
SelectMenuChangesDifficulty=false
WrapChangeSteps=false
[ScreenSelectCourse]
+29 -13
View File
@@ -83,6 +83,7 @@ void ScreenSelectMusic::Init()
USE_PLAYER_SELECT_MENU.Load( m_sName, "UsePlayerSelectMenu" );
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") );
@@ -577,25 +578,40 @@ 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 );
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 );
}
}
else if( input.MenuI == m_GameButtonNextSong )
}
else // two part selection without step selection
{
// moving the menu de-confirms your song choice.
if((input.MenuI == m_GameButtonPreviousSong || m_GameButtonNextSong) && input.MenuI != GAME_BUTTON_START)
{
if( GAMESTATE->IsAnExtraStageAndSelectionLocked() )
if(GAMESTATE->IsAnExtraStageAndSelectionLocked())
m_soundLocked.Play();
else
ChangeSteps( input.pn, +1 );
}
m_SelectionState = SelectionState_SelectingSong;
}
}
if( input.type == IET_FIRST_PRESS && DetectCodes(input) )
+3
View File
@@ -86,6 +86,9 @@ protected:
ThemeMetric<bool> USE_PLAYER_SELECT_MENU;
ThemeMetric<bool> SELECT_MENU_CHANGES_DIFFICULTY;
ThemeMetric<bool> TWO_PART_SELECTION;
ThemeMetric<bool> TWO_PART_CONFIRMS_ONLY;
ThemeMetric<bool> WRAP_CHANGE_STEPS;
bool CanChangeSong() const { return m_SelectionState == SelectionState_SelectingSong; }