fix release input event triggering "go to options"
This commit is contained in:
@@ -91,14 +91,19 @@ int OptionToPreferredColumn( CString sOptionText )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIconRow::Refresh( PlayerNumber pn )
|
void OptionIconRow::Load( PlayerNumber pn )
|
||||||
|
{
|
||||||
|
m_PlayerNumber = pn;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionIconRow::Refresh()
|
||||||
{
|
{
|
||||||
// init
|
// init
|
||||||
unsigned i;
|
unsigned i;
|
||||||
for( i=0; i<NUM_OPTION_COLS; i++ )
|
for( i=0; i<NUM_OPTION_COLS; i++ )
|
||||||
m_OptionIcon[i].Load( pn, "", i==0 );
|
m_OptionIcon[i].Load( m_PlayerNumber, "", i==0 );
|
||||||
|
|
||||||
CString sOptions = GAMESTATE->m_PlayerOptions[pn].GetString();
|
CString sOptions = GAMESTATE->m_PlayerOptions[m_PlayerNumber].GetString();
|
||||||
CStringArray asOptions;
|
CStringArray asOptions;
|
||||||
split( sOptions, ", ", asOptions, true );
|
split( sOptions, ", ", asOptions, true );
|
||||||
|
|
||||||
@@ -128,7 +133,7 @@ void OptionIconRow::Refresh( PlayerNumber pn )
|
|||||||
}
|
}
|
||||||
|
|
||||||
for( i=0; i<NUM_OPTION_COLS-1; i++ )
|
for( i=0; i<NUM_OPTION_COLS-1; i++ )
|
||||||
m_OptionIcon[i+1].Load( pn, asTabs[i], false );
|
m_OptionIcon[i+1].Load( m_PlayerNumber, asTabs[i], false );
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIconRow::DrawPrimitives()
|
void OptionIconRow::DrawPrimitives()
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ class OptionIconRow : public ActorFrame
|
|||||||
public:
|
public:
|
||||||
OptionIconRow();
|
OptionIconRow();
|
||||||
|
|
||||||
void Refresh( PlayerNumber pn );
|
void Load( PlayerNumber pn );
|
||||||
|
void Refresh();
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -245,7 +245,8 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName
|
|||||||
this->AddChild( &m_AutoGenIcon[p] );
|
this->AddChild( &m_AutoGenIcon[p] );
|
||||||
|
|
||||||
m_OptionIconRow[p].SetName( ssprintf("OptionIconsP%d",p+1) );
|
m_OptionIconRow[p].SetName( ssprintf("OptionIconsP%d",p+1) );
|
||||||
m_OptionIconRow[p].Refresh( (PlayerNumber)p );
|
m_OptionIconRow[p].Load( (PlayerNumber)p );
|
||||||
|
m_OptionIconRow[p].Refresh();
|
||||||
SET_XY( m_OptionIconRow[p] );
|
SET_XY( m_OptionIconRow[p] );
|
||||||
this->AddChild( &m_OptionIconRow[p] );
|
this->AddChild( &m_OptionIconRow[p] );
|
||||||
|
|
||||||
@@ -652,7 +653,12 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
|
|||||||
|
|
||||||
if( !GameI.IsValid() ) return; // don't care
|
if( !GameI.IsValid() ) return; // don't care
|
||||||
|
|
||||||
if( m_bMadeChoice && MenuI.IsValid() && MenuI.button == MENU_BUTTON_START && !GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage2() )
|
if( m_bMadeChoice &&
|
||||||
|
MenuI.IsValid() &&
|
||||||
|
MenuI.button == MENU_BUTTON_START &&
|
||||||
|
type != IET_RELEASE &&
|
||||||
|
!GAMESTATE->IsExtraStage() &&
|
||||||
|
!GAMESTATE->IsExtraStage2() )
|
||||||
{
|
{
|
||||||
if(m_bGoToOptions) return; /* got it already */
|
if(m_bGoToOptions) return; /* got it already */
|
||||||
if(!m_bAllowOptionsMenu) return; /* not allowed */
|
if(!m_bAllowOptionsMenu) return; /* not allowed */
|
||||||
@@ -1414,7 +1420,7 @@ void ScreenSelectMusic::UpdateOptionsDisplays()
|
|||||||
|
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
m_OptionIconRow[p].Refresh( (PlayerNumber)p );
|
m_OptionIconRow[p].Refresh();
|
||||||
|
|
||||||
if( GAMESTATE->IsHumanPlayer(p) )
|
if( GAMESTATE->IsHumanPlayer(p) )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user