on SPO, ignore MenuStart repeats until we get one FirstPressed
This commit is contained in:
@@ -115,6 +115,7 @@ ScreenOptions::ScreenOptions( CString sClassName ) : Screen(sClassName)
|
|||||||
{
|
{
|
||||||
m_iCurrentRow[p] = 0;
|
m_iCurrentRow[p] = 0;
|
||||||
m_bWasOnExit[p] = false;
|
m_bWasOnExit[p] = false;
|
||||||
|
m_bGotAtLeastOneStartPressed[p] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_framePage.Command( FRAME_ON_COMMAND );
|
m_framePage.Command( FRAME_ON_COMMAND );
|
||||||
@@ -1091,8 +1092,18 @@ void ScreenOptions::StartGoToNextState()
|
|||||||
|
|
||||||
void ScreenOptions::MenuStart( PlayerNumber pn, const InputEventType type )
|
void ScreenOptions::MenuStart( PlayerNumber pn, const InputEventType type )
|
||||||
{
|
{
|
||||||
if( type == IET_RELEASE )
|
switch( type )
|
||||||
return;
|
{
|
||||||
|
case IET_FIRST_PRESS:
|
||||||
|
m_bGotAtLeastOneStartPressed[pn] = true;
|
||||||
|
break;
|
||||||
|
case IET_RELEASE:
|
||||||
|
return; // ignore
|
||||||
|
default: // repeat type
|
||||||
|
if( !m_bGotAtLeastOneStartPressed[pn] )
|
||||||
|
return; // don't allow repeat
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
Row &row = *m_Rows[m_iCurrentRow[pn]];
|
Row &row = *m_Rows[m_iCurrentRow[pn]];
|
||||||
OptionRowData &data = row.m_RowDef;
|
OptionRowData &data = row.m_RowDef;
|
||||||
|
|||||||
@@ -171,6 +171,11 @@ protected:
|
|||||||
AutoActor m_sprMore;
|
AutoActor m_sprMore;
|
||||||
bool m_bMoreShown, m_bWasOnExit[NUM_PLAYERS];
|
bool m_bMoreShown, m_bWasOnExit[NUM_PLAYERS];
|
||||||
|
|
||||||
|
// TRICKY: People hold Start to get to PlayerOptions, then
|
||||||
|
// the repeat events cause them to zip to the bottom. So, ignore
|
||||||
|
// Start repeat events until we've seen one first pressed event.
|
||||||
|
bool m_bGotAtLeastOneStartPressed[NUM_PLAYERS];
|
||||||
|
|
||||||
RageSound m_SoundChangeCol;
|
RageSound m_SoundChangeCol;
|
||||||
RageSound m_SoundNextRow;
|
RageSound m_SoundNextRow;
|
||||||
RageSound m_SoundPrevRow;
|
RageSound m_SoundPrevRow;
|
||||||
|
|||||||
Reference in New Issue
Block a user