diff --git a/stepmania/src/GameInput.h b/stepmania/src/GameInput.h index dd7981f6b3..b60d0ce965 100644 --- a/stepmania/src/GameInput.h +++ b/stepmania/src/GameInput.h @@ -16,24 +16,7 @@ enum GameController }; #define FOREACH_GameController( gc ) FOREACH_ENUM( GameController, gc ) -typedef int GameButton; -RString GameButtonToString( const InputScheme* pInputs, GameButton i ); -RString GameButtonToLocalizedString( const InputScheme* pInputs, GameButton i ); -GameButton StringToGameButton( const InputScheme* pInputs, const RString& s ); - -enum GameButtonType -{ - GameButtonType_Step, - GameButtonType_Fret, - GameButtonType_Strum, - GameButtonType_INVALID -}; - -const GameButton NUM_GameButton = 20; -const GameButton GameButton_Invalid = NUM_GameButton+1; -#define FOREACH_GameButton( gb ) FOREACH_ENUM( GameButton, gb ) - -enum // common GameButtons +enum GameButton { GAME_BUTTON_MENULEFT, GAME_BUTTON_MENURIGHT, @@ -44,130 +27,127 @@ enum // common GameButtons GAME_BUTTON_BACK, GAME_BUTTON_COIN, GAME_BUTTON_OPERATOR, - GAME_BUTTON_NEXT + GAME_BUTTON_CUSTOM_01, + GAME_BUTTON_CUSTOM_02, + GAME_BUTTON_CUSTOM_03, + GAME_BUTTON_CUSTOM_04, + GAME_BUTTON_CUSTOM_05, + GAME_BUTTON_CUSTOM_06, + GAME_BUTTON_CUSTOM_07, + GAME_BUTTON_CUSTOM_08, + GAME_BUTTON_CUSTOM_09, + GAME_BUTTON_CUSTOM_10, + GAME_BUTTON_CUSTOM_11, + GAME_BUTTON_CUSTOM_12, + GAME_BUTTON_CUSTOM_13, + GAME_BUTTON_CUSTOM_14, + GAME_BUTTON_CUSTOM_15, + GAME_BUTTON_CUSTOM_16, + GAME_BUTTON_CUSTOM_17, + GAME_BUTTON_CUSTOM_18, + GAME_BUTTON_CUSTOM_19, + + NUM_GameButton, + GameButton_Invalid }; -enum // DanceButtons -{ - DANCE_BUTTON_LEFT = GAME_BUTTON_NEXT, - DANCE_BUTTON_RIGHT, - DANCE_BUTTON_UP, - DANCE_BUTTON_DOWN, - DANCE_BUTTON_UPLEFT, - DANCE_BUTTON_UPRIGHT, - NUM_DANCE_BUTTONS, // leave this at the end -}; +RString GameButtonToString( const InputScheme* pInputs, GameButton i ); +RString GameButtonToLocalizedString( const InputScheme* pInputs, GameButton i ); +GameButton StringToGameButton( const InputScheme* pInputs, const RString& s ); -enum // PumpButtons -{ - PUMP_BUTTON_UPLEFT = GAME_BUTTON_NEXT, - PUMP_BUTTON_UPRIGHT, - PUMP_BUTTON_CENTER, - PUMP_BUTTON_DOWNLEFT, - PUMP_BUTTON_DOWNRIGHT, - NUM_PUMP_BUTTONS, // leave this at the end -}; +#define FOREACH_GameButton( gb ) FOREACH_ENUM( GameButton, gb ) -enum // EZ2Buttons -{ - EZ2_BUTTON_FOOTUPLEFT = GAME_BUTTON_NEXT, - EZ2_BUTTON_FOOTUPRIGHT, - EZ2_BUTTON_FOOTDOWN, - EZ2_BUTTON_HANDUPLEFT, - EZ2_BUTTON_HANDUPRIGHT, - EZ2_BUTTON_HANDLRLEFT, - EZ2_BUTTON_HANDLRRIGHT, - NUM_EZ2_BUTTONS, // leave this at the end -}; +#define GAME_BUTTON_NEXT GAME_BUTTON_CUSTOM_01 -enum // ParaButtons -{ - PARA_BUTTON_LEFT = GAME_BUTTON_NEXT, - PARA_BUTTON_UPLEFT, - PARA_BUTTON_UP, - PARA_BUTTON_UPRIGHT, - PARA_BUTTON_RIGHT, - NUM_PARA_BUTTONS, // leave this at the end -}; +#define DANCE_BUTTON_LEFT GAME_BUTTON_CUSTOM_01 +#define DANCE_BUTTON_RIGHT GAME_BUTTON_CUSTOM_02 +#define DANCE_BUTTON_UP GAME_BUTTON_CUSTOM_03 +#define DANCE_BUTTON_DOWN GAME_BUTTON_CUSTOM_04 +#define DANCE_BUTTON_UPLEFT GAME_BUTTON_CUSTOM_05 +#define DANCE_BUTTON_UPRIGHT GAME_BUTTON_CUSTOM_06 +#define NUM_DANCE_BUTTONS GAME_BUTTON_CUSTOM_07 -enum // 3DDX Buttons -{ - DS3DDX_BUTTON_HANDLEFT = GAME_BUTTON_NEXT, - DS3DDX_BUTTON_FOOTDOWNLEFT, - DS3DDX_BUTTON_FOOTUPLEFT, - DS3DDX_BUTTON_HANDUP, - DS3DDX_BUTTON_HANDDOWN, - DS3DDX_BUTTON_FOOTUPRIGHT, - DS3DDX_BUTTON_FOOTDOWNRIGHT, - DS3DDX_BUTTON_HANDRIGHT, - NUM_DS3DDX_BUTTONS, // leave this at the end. -}; +#define PUMP_BUTTON_UPLEFT GAME_BUTTON_CUSTOM_01 +#define PUMP_BUTTON_UPRIGHT GAME_BUTTON_CUSTOM_02 +#define PUMP_BUTTON_CENTER GAME_BUTTON_CUSTOM_03 +#define PUMP_BUTTON_DOWNLEFT GAME_BUTTON_CUSTOM_04 +#define PUMP_BUTTON_DOWNRIGHT GAME_BUTTON_CUSTOM_05 +#define NUM_PUMP_BUTTONS GAME_BUTTON_CUSTOM_06 -enum // BEAT Buttons -{ - BEAT_BUTTON_KEY1 = GAME_BUTTON_NEXT, - BEAT_BUTTON_KEY2, - BEAT_BUTTON_KEY3, - BEAT_BUTTON_KEY4, - BEAT_BUTTON_KEY5, - BEAT_BUTTON_KEY6, - BEAT_BUTTON_KEY7, - BEAT_BUTTON_SCRATCHUP, - /* XXX special case: this button is an alias of BEAT_BUTTON_SCRATCHUP for track - * matching. */ - BEAT_BUTTON_SCRATCHDOWN, - NUM_BEAT_BUTTONS, // leave this at the end. -}; +#define EZ2_BUTTON_FOOTUPLEFT GAME_BUTTON_CUSTOM_01 +#define EZ2_BUTTON_FOOTUPRIGHT GAME_BUTTON_CUSTOM_02 +#define EZ2_BUTTON_FOOTDOWN GAME_BUTTON_CUSTOM_03 +#define EZ2_BUTTON_HANDUPLEFT GAME_BUTTON_CUSTOM_04 +#define EZ2_BUTTON_HANDUPRIGHT GAME_BUTTON_CUSTOM_05 +#define EZ2_BUTTON_HANDLRLEFT GAME_BUTTON_CUSTOM_06 +#define EZ2_BUTTON_HANDLRRIGHT GAME_BUTTON_CUSTOM_07 +#define NUM_EZ2_BUTTONS GAME_BUTTON_CUSTOM_08 -enum // ManiaxButtons -{ - MANIAX_BUTTON_HANDUPLEFT = GAME_BUTTON_NEXT, - MANIAX_BUTTON_HANDUPRIGHT, - MANIAX_BUTTON_HANDLRLEFT, - MANIAX_BUTTON_HANDLRRIGHT, - NUM_MANIAX_BUTTONS, // leave this at the end -}; +#define PARA_BUTTON_LEFT GAME_BUTTON_CUSTOM_01 +#define PARA_BUTTON_UPLEFT GAME_BUTTON_CUSTOM_02 +#define PARA_BUTTON_UP GAME_BUTTON_CUSTOM_03 +#define PARA_BUTTON_UPRIGHT GAME_BUTTON_CUSTOM_04 +#define PARA_BUTTON_RIGHT GAME_BUTTON_CUSTOM_05 +#define NUM_PARA_BUTTONS GAME_BUTTON_CUSTOM_06 -enum // TechnoButtons -{ - TECHNO_BUTTON_LEFT = GAME_BUTTON_NEXT, - TECHNO_BUTTON_RIGHT, - TECHNO_BUTTON_UP, - TECHNO_BUTTON_DOWN, - TECHNO_BUTTON_UPLEFT, - TECHNO_BUTTON_UPRIGHT, - TECHNO_BUTTON_CENTER, - TECHNO_BUTTON_DOWNLEFT, - TECHNO_BUTTON_DOWNRIGHT, - NUM_TECHNO_BUTTONS, // leave this at the end -}; +#define DS3DDX_BUTTON_HANDLEFT GAME_BUTTON_CUSTOM_01 +#define DS3DDX_BUTTON_FOOTDOWNLEFT GAME_BUTTON_CUSTOM_02 +#define DS3DDX_BUTTON_FOOTUPLEFT GAME_BUTTON_CUSTOM_03 +#define DS3DDX_BUTTON_HANDUP GAME_BUTTON_CUSTOM_04 +#define DS3DDX_BUTTON_HANDDOWN GAME_BUTTON_CUSTOM_05 +#define DS3DDX_BUTTON_FOOTUPRIGHT GAME_BUTTON_CUSTOM_06 +#define DS3DDX_BUTTON_FOOTDOWNRIGHT GAME_BUTTON_CUSTOM_07 +#define DS3DDX_BUTTON_HANDRIGHT GAME_BUTTON_CUSTOM_08 +#define NUM_DS3DDX_BUTTONS GAME_BUTTON_CUSTOM_09 -enum // PnM Buttons -{ - POPN_BUTTON_LEFT_WHITE = GAME_BUTTON_NEXT, - POPN_BUTTON_LEFT_YELLOW, - POPN_BUTTON_LEFT_GREEN, - POPN_BUTTON_LEFT_BLUE, - POPN_BUTTON_RED, - POPN_BUTTON_RIGHT_BLUE, - POPN_BUTTON_RIGHT_GREEN, - POPN_BUTTON_RIGHT_YELLOW, - POPN_BUTTON_RIGHT_WHITE, - NUM_POPN_BUTTONS, // leave this at the end -}; +#define BEAT_BUTTON_KEY1 GAME_BUTTON_CUSTOM_01 +#define BEAT_BUTTON_KEY2 GAME_BUTTON_CUSTOM_02 +#define BEAT_BUTTON_KEY3 GAME_BUTTON_CUSTOM_03 +#define BEAT_BUTTON_KEY4 GAME_BUTTON_CUSTOM_04 +#define BEAT_BUTTON_KEY5 GAME_BUTTON_CUSTOM_05 +#define BEAT_BUTTON_KEY6 GAME_BUTTON_CUSTOM_06 +#define BEAT_BUTTON_KEY7 GAME_BUTTON_CUSTOM_07 +#define BEAT_BUTTON_SCRATCHUP GAME_BUTTON_CUSTOM_08 +#define BEAT_BUTTON_SCRATCHDOWN GAME_BUTTON_CUSTOM_09 +#define NUM_BEAT_BUTTONS GAME_BUTTON_CUSTOM_10 -enum // LightsButtons -{ - LIGHTS_BUTTON_MARQUEE_UP_LEFT = GAME_BUTTON_NEXT, - LIGHTS_BUTTON_MARQUEE_UP_RIGHT, - LIGHTS_BUTTON_MARQUEE_LR_LEFT, - LIGHTS_BUTTON_MARQUEE_LR_RIGHT, - LIGHTS_BUTTON_BUTTONS_LEFT, - LIGHTS_BUTTON_BUTTONS_RIGHT, - LIGHTS_BUTTON_BASS_LEFT, - LIGHTS_BUTTON_BASS_RIGHT, - NUM_LIGHTS_BUTTONS, // leave this at the end -}; +#define MANIAX_BUTTON_HANDUPLEFT GAME_BUTTON_CUSTOM_01 +#define MANIAX_BUTTON_HANDUPRIGHT GAME_BUTTON_CUSTOM_02 +#define MANIAX_BUTTON_HANDLRLEFT GAME_BUTTON_CUSTOM_03 +#define MANIAX_BUTTON_HANDLRRIGHT GAME_BUTTON_CUSTOM_04 +#define NUM_MANIAX_BUTTONS GAME_BUTTON_CUSTOM_05 + +#define TECHNO_BUTTON_LEFT GAME_BUTTON_CUSTOM_01 +#define TECHNO_BUTTON_RIGHT GAME_BUTTON_CUSTOM_02 +#define TECHNO_BUTTON_UP GAME_BUTTON_CUSTOM_03 +#define TECHNO_BUTTON_DOWN GAME_BUTTON_CUSTOM_04 +#define TECHNO_BUTTON_UPLEFT GAME_BUTTON_CUSTOM_05 +#define TECHNO_BUTTON_UPRIGHT GAME_BUTTON_CUSTOM_06 +#define TECHNO_BUTTON_CENTER GAME_BUTTON_CUSTOM_07 +#define TECHNO_BUTTON_DOWNLEFT GAME_BUTTON_CUSTOM_08 +#define TECHNO_BUTTON_DOWNRIGHT GAME_BUTTON_CUSTOM_09 +#define NUM_TECHNO_BUTTONS GAME_BUTTON_CUSTOM_10 + +#define POPN_BUTTON_LEFT_WHITE GAME_BUTTON_CUSTOM_01 +#define POPN_BUTTON_LEFT_YELLOW GAME_BUTTON_CUSTOM_02 +#define POPN_BUTTON_LEFT_GREEN GAME_BUTTON_CUSTOM_03 +#define POPN_BUTTON_LEFT_BLUE GAME_BUTTON_CUSTOM_04 +#define POPN_BUTTON_RED GAME_BUTTON_CUSTOM_05 +#define POPN_BUTTON_RIGHT_BLUE GAME_BUTTON_CUSTOM_06 +#define POPN_BUTTON_RIGHT_GREEN GAME_BUTTON_CUSTOM_07 +#define POPN_BUTTON_RIGHT_YELLOW GAME_BUTTON_CUSTOM_08 +#define POPN_BUTTON_RIGHT_WHITE GAME_BUTTON_CUSTOM_09 +#define NUM_POPN_BUTTONS GAME_BUTTON_CUSTOM_10 + +#define LIGHTS_BUTTON_MARQUEE_UP_LEFT GAME_BUTTON_CUSTOM_01 +#define LIGHTS_BUTTON_MARQUEE_UP_RIGHT GAME_BUTTON_CUSTOM_02 +#define LIGHTS_BUTTON_MARQUEE_LR_LEFT GAME_BUTTON_CUSTOM_03 +#define LIGHTS_BUTTON_MARQUEE_LR_RIGHT GAME_BUTTON_CUSTOM_04 +#define LIGHTS_BUTTON_BUTTONS_LEFT GAME_BUTTON_CUSTOM_05 +#define LIGHTS_BUTTON_BUTTONS_RIGHT GAME_BUTTON_CUSTOM_06 +#define LIGHTS_BUTTON_BASS_LEFT GAME_BUTTON_CUSTOM_07 +#define LIGHTS_BUTTON_BASS_RIGHT GAME_BUTTON_CUSTOM_08 +#define NUM_LIGHTS_BUTTONS GAME_BUTTON_CUSTOM_09 struct GameInput diff --git a/stepmania/src/InputMapper.cpp b/stepmania/src/InputMapper.cpp index cb333a3549..e19ec2db06 100644 --- a/stepmania/src/InputMapper.cpp +++ b/stepmania/src/InputMapper.cpp @@ -952,9 +952,9 @@ MultiPlayer InputMapper::InputDeviceToMultiPlayer( InputDevice id ) GameButton InputScheme::ButtonNameToIndex( const RString &sButtonName ) const { - for( int i=0; iGetInputScheme()->m_iButtonsPerController && m_iInputColumn[gc][i-GAME_BUTTON_NEXT] != END_MAPPING; ++i ) + for( GameButton gb=GAME_BUTTON_NEXT; gb < INPUTMAPPER->GetInputScheme()->m_iButtonsPerController && m_iInputColumn[gc][gb-GAME_BUTTON_NEXT] != END_MAPPING; gb=(GameButton)(gb+1) ) { - if( m_iInputColumn[gc][i-GAME_BUTTON_NEXT] == iCol ) - return GameInput( gc, i ); + if( m_iInputColumn[gc][gb-GAME_BUTTON_NEXT] == iCol ) + return GameInput( gc, gb ); } }