mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-16 17:11:03 +00:00
Controller buttons read more succinctly
This commit is contained in:
parent
fb46007bc3
commit
adf638d1f4
2 changed files with 10 additions and 53 deletions
|
@ -220,8 +220,6 @@ enum QKEYS {
|
|||
K_STICK_RIGHT,
|
||||
K_SHOULDER_LEFT,
|
||||
K_SHOULDER_RIGHT,
|
||||
K_TRIG_LEFT,
|
||||
K_TRIG_RIGHT,
|
||||
K_DPAD_UP,
|
||||
K_DPAD_DOWN,
|
||||
K_DPAD_LEFT,
|
||||
|
@ -231,11 +229,13 @@ enum QKEYS {
|
|||
K_PADDLE_2,
|
||||
K_PADDLE_3,
|
||||
K_PADDLE_4,
|
||||
K_TOUCHPAD,
|
||||
K_TOUCHPAD, // SDL_CONTROLLER_BUTTON_MAX - 1
|
||||
K_TRIG_LEFT, // buttons for triggers (axes)
|
||||
K_TRIG_RIGHT,
|
||||
|
||||
// add other joystick/controller keys before this one
|
||||
// and adjust it accordingly, also remember to add corresponding _ALT key below!
|
||||
K_JOY_LAST_REGULAR = K_TOUCHPAD,
|
||||
K_JOY_LAST_REGULAR = K_TRIG_RIGHT,
|
||||
|
||||
/* Can't be mapped to any action (=> not regular) */
|
||||
K_JOY_BACK,
|
||||
|
@ -252,8 +252,6 @@ enum QKEYS {
|
|||
K_STICK_RIGHT_ALT,
|
||||
K_SHOULDER_LEFT_ALT,
|
||||
K_SHOULDER_RIGHT_ALT,
|
||||
K_TRIG_LEFT_ALT,
|
||||
K_TRIG_RIGHT_ALT,
|
||||
K_DPAD_UP_ALT,
|
||||
K_DPAD_DOWN_ALT,
|
||||
K_DPAD_LEFT_ALT,
|
||||
|
@ -264,6 +262,8 @@ enum QKEYS {
|
|||
K_PADDLE_3_ALT,
|
||||
K_PADDLE_4_ALT,
|
||||
K_TOUCHPAD_ALT,
|
||||
K_TRIG_LEFT_ALT,
|
||||
K_TRIG_RIGHT_ALT,
|
||||
|
||||
K_LAST
|
||||
};
|
||||
|
|
|
@ -78,7 +78,7 @@ typedef enum
|
|||
// IN_Update() called at the beginning of a frame to the
|
||||
// actual movement functions called at a later time.
|
||||
static float mouse_x, mouse_y;
|
||||
static int sdl_back_button = SDL_CONTROLLER_BUTTON_BACK;
|
||||
static unsigned char sdl_back_button = SDL_CONTROLLER_BUTTON_BACK;
|
||||
static int joystick_left_x, joystick_left_y, joystick_right_x, joystick_right_y;
|
||||
static float gyro_yaw, gyro_pitch;
|
||||
static qboolean mlooking;
|
||||
|
@ -495,45 +495,6 @@ IN_TranslateScancodeToQ2Key(SDL_Scancode sc)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
IN_TranslateGamepadBtnToQ2Key(int btn)
|
||||
{
|
||||
|
||||
#define MY_BTN_CASE(X,Y) case SDL_CONTROLLER_BUTTON_ ## X : return K_ ## Y;
|
||||
|
||||
switch( btn )
|
||||
{
|
||||
// case SDL_CONTROLLER_BUTTON_A : return K_BTN_A;
|
||||
MY_BTN_CASE(A,BTN_A)
|
||||
MY_BTN_CASE(B,BTN_B)
|
||||
MY_BTN_CASE(X,BTN_X)
|
||||
MY_BTN_CASE(Y,BTN_Y)
|
||||
MY_BTN_CASE(LEFTSHOULDER,SHOULDER_LEFT)
|
||||
MY_BTN_CASE(RIGHTSHOULDER,SHOULDER_RIGHT)
|
||||
MY_BTN_CASE(LEFTSTICK,STICK_LEFT)
|
||||
MY_BTN_CASE(RIGHTSTICK,STICK_RIGHT)
|
||||
MY_BTN_CASE(DPAD_UP,DPAD_UP)
|
||||
MY_BTN_CASE(DPAD_DOWN,DPAD_DOWN)
|
||||
MY_BTN_CASE(DPAD_LEFT,DPAD_LEFT)
|
||||
MY_BTN_CASE(DPAD_RIGHT,DPAD_RIGHT)
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 14) // support for newer buttons
|
||||
MY_BTN_CASE(PADDLE1,PADDLE_1)
|
||||
MY_BTN_CASE(PADDLE2,PADDLE_2)
|
||||
MY_BTN_CASE(PADDLE3,PADDLE_3)
|
||||
MY_BTN_CASE(PADDLE4,PADDLE_4)
|
||||
MY_BTN_CASE(MISC1,BTN_MISC1)
|
||||
MY_BTN_CASE(TOUCHPAD,TOUCHPAD)
|
||||
#endif
|
||||
MY_BTN_CASE(BACK,BTN_BACK)
|
||||
MY_BTN_CASE(GUIDE,BTN_GUIDE)
|
||||
MY_BTN_CASE(START,BTN_START)
|
||||
}
|
||||
|
||||
#undef MY_BTN_CASE
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void IN_Controller_Init(qboolean notify_user);
|
||||
static void IN_Controller_Shutdown(qboolean notify_user);
|
||||
|
||||
|
@ -763,20 +724,16 @@ IN_Update(void)
|
|||
case SDL_CONTROLLERBUTTONDOWN:
|
||||
{
|
||||
qboolean down = (event.type == SDL_CONTROLLERBUTTONDOWN);
|
||||
unsigned char btn = event.cbutton.button;
|
||||
|
||||
// Handle Back Button first, to override its original key
|
||||
if (event.cbutton.button == sdl_back_button)
|
||||
if (btn == sdl_back_button)
|
||||
{
|
||||
Key_Event(K_JOY_BACK, down, true);
|
||||
break;
|
||||
}
|
||||
|
||||
key = IN_TranslateGamepadBtnToQ2Key(event.cbutton.button);
|
||||
if(key != 0)
|
||||
{
|
||||
Key_Event(key, down, true);
|
||||
}
|
||||
|
||||
Key_Event(K_BTN_A + btn, down, true);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue