handle repeating input in ScreenMiniMenu

This commit is contained in:
Chris Danford
2003-10-08 06:31:39 +00:00
parent bf2a0cce19
commit 3ef4f01f39
3 changed files with 31 additions and 26 deletions
+1 -1
View File
@@ -129,7 +129,7 @@ void Screen::Input( const DeviceInput& DeviceI, const InputEventType type, const
/* Don't make the user hold the back button if they're pressing escape. */ /* Don't make the user hold the back button if they're pressing escape. */
if( DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_ESCAPE ) if( DeviceI.device == DEVICE_KEYBOARD && DeviceI.button == SDLK_ESCAPE )
{ {
this->MenuBack( MenuI.player ); this->MenuBack( MenuI.player, type );
return; return;
} }
+24 -19
View File
@@ -144,19 +144,6 @@ void ScreenMiniMenu::Input( const DeviceInput& DeviceI, const InputEventType typ
if( m_In.IsTransitioning() || m_Out.IsTransitioning() ) if( m_In.IsTransitioning() || m_Out.IsTransitioning() )
return; return;
if( DeviceI.device==DEVICE_KEYBOARD && type==IET_FIRST_PRESS )
{
switch( DeviceI.button )
{
case SDLK_LEFT:
this->MenuLeft( StyleI.player );
return;
case SDLK_RIGHT:
this->MenuRight( StyleI.player );
return;
}
}
Screen::Input( DeviceI, type, GameI, MenuI, StyleI ); Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
} }
@@ -173,8 +160,11 @@ void ScreenMiniMenu::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenMiniMenu::MenuUp( PlayerNumber pn ) void ScreenMiniMenu::MenuUp( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
if( GetGoUpSpot() != -1 ) if( GetGoUpSpot() != -1 )
{ {
BeforeLineChanged(); BeforeLineChanged();
@@ -183,8 +173,11 @@ void ScreenMiniMenu::MenuUp( PlayerNumber pn )
} }
} }
void ScreenMiniMenu::MenuDown( PlayerNumber pn ) void ScreenMiniMenu::MenuDown( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
if( GetGoDownSpot() != -1 ) if( GetGoDownSpot() != -1 )
{ {
BeforeLineChanged(); BeforeLineChanged();
@@ -193,8 +186,11 @@ void ScreenMiniMenu::MenuDown( PlayerNumber pn )
} }
} }
void ScreenMiniMenu::MenuLeft( PlayerNumber pn ) void ScreenMiniMenu::MenuLeft( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
if( CanGoLeft() ) if( CanGoLeft() )
{ {
m_iCurAnswers[m_iCurLine]--; m_iCurAnswers[m_iCurLine]--;
@@ -202,8 +198,11 @@ void ScreenMiniMenu::MenuLeft( PlayerNumber pn )
} }
} }
void ScreenMiniMenu::MenuRight( PlayerNumber pn ) void ScreenMiniMenu::MenuRight( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
if( CanGoRight() ) if( CanGoRight() )
{ {
m_iCurAnswers[m_iCurLine]++; m_iCurAnswers[m_iCurLine]++;
@@ -211,8 +210,11 @@ void ScreenMiniMenu::MenuRight( PlayerNumber pn )
} }
} }
void ScreenMiniMenu::MenuStart( PlayerNumber pn ) void ScreenMiniMenu::MenuStart( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
m_Out.StartTransitioning( SM_GoToOK ); m_Out.StartTransitioning( SM_GoToOK );
SOUND->PlayOnce( THEME->GetPathToS("Common start") ); SOUND->PlayOnce( THEME->GetPathToS("Common start") );
@@ -221,8 +223,11 @@ void ScreenMiniMenu::MenuStart( PlayerNumber pn )
COPY( s_iLastAnswers, m_iCurAnswers ); COPY( s_iLastAnswers, m_iCurAnswers );
} }
void ScreenMiniMenu::MenuBack( PlayerNumber pn ) void ScreenMiniMenu::MenuBack( PlayerNumber pn, const InputEventType type )
{ {
if( type == IET_RELEASE )
return;
m_Out.StartTransitioning( SM_GoToCancel ); m_Out.StartTransitioning( SM_GoToCancel );
} }
+6 -6
View File
@@ -75,12 +75,12 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void HandleScreenMessage( const ScreenMessage SM );
protected: protected:
void MenuUp( PlayerNumber pn ); void MenuUp( PlayerNumber pn, const InputEventType type );
void MenuDown( PlayerNumber pn ); void MenuDown( PlayerNumber pn, const InputEventType type );
void MenuLeft( PlayerNumber pn ); void MenuLeft( PlayerNumber pn, const InputEventType type );
void MenuRight( PlayerNumber pn ); void MenuRight( PlayerNumber pn, const InputEventType type );
void MenuBack( PlayerNumber pn ); void MenuBack( PlayerNumber pn, const InputEventType type );
void MenuStart( PlayerNumber pn ); void MenuStart( PlayerNumber pn, const InputEventType type );
int GetGoUpSpot(); // return -1 if can't go up int GetGoUpSpot(); // return -1 if can't go up
int GetGoDownSpot(); // return -1 if can't go down int GetGoDownSpot(); // return -1 if can't go down