clean up input logic, don't be performing music wheel actions if a song was already chosen

This commit is contained in:
Chris Danford
2004-01-18 04:45:59 +00:00
parent 0a34c30419
commit c53f175d14
+22 -25
View File
@@ -638,7 +638,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
{
// LOG->Trace( "ScreenSelectMusic::Input()" );
// debugging?
if( DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_F9 )
{
if( type != IET_FIRST_PRESS ) return;
@@ -650,10 +650,30 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
return;
}
if( !GameI.IsValid() ) return; // don't care
if( m_bMadeChoice && MenuI.IsValid() && MenuI.button == MENU_BUTTON_START && !GAMESTATE->IsExtraStage() && !GAMESTATE->IsExtraStage2() )
{
if(m_bGoToOptions) return; /* got it already */
if(!m_bAllowOptionsMenu) return; /* not allowed */
if( !m_bAllowOptionsMenuRepeat &&
(type == IET_SLOW_REPEAT || type == IET_FAST_REPEAT ))
return; /* not allowed yet */
m_bGoToOptions = true;
m_sprOptionsMessage.SetState( 1 );
SOUND->PlayOnce( THEME->GetPathToS("Common start") );
return;
}
if( m_Menu.IsTransitioning() )
return; // ignore
if( m_bMadeChoice ) return; // ignore
if( MenuI.button == MENU_BUTTON_RIGHT || MenuI.button == MENU_BUTTON_LEFT )
{
if( !GAMESTATE->IsHumanPlayer(MenuI.player) ) return;
/* If we're rouletting, hands off. */
if(m_MusicWheel.IsRouletting())
@@ -712,29 +732,6 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, InputEventType type,
}
}
if( type == IET_RELEASE ) 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_bGoToOptions) return; /* got it already */
if(!m_bAllowOptionsMenu) return; /* not allowed */
if( !m_bAllowOptionsMenuRepeat &&
(type == IET_SLOW_REPEAT || type == IET_FAST_REPEAT ))
return; /* not allowed yet */
m_bGoToOptions = true;
m_sprOptionsMessage.SetState( 1 );
SOUND->PlayOnce( THEME->GetPathToS("Common start") );
return;
}
if( m_Menu.IsTransitioning() ) return; // ignore
if( m_bMadeChoice )
return;
PlayerNumber pn = GAMESTATE->GetCurrentStyleDef()->ControllerToPlayerNumber( GameI.controller );