mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-04-20 09:55:38 +00:00
Trimming joy support
This commit is contained in:
parent
6a27a05f82
commit
59ad64e28b
3 changed files with 5 additions and 134 deletions
|
@ -446,40 +446,22 @@ static int IN_KeyForControllerButton(SDL_GameControllerButton button)
|
|||
case SDL_CONTROLLER_BUTTON_X: return K_X360_X;
|
||||
case SDL_CONTROLLER_BUTTON_Y: return K_X360_Y;
|
||||
case SDL_CONTROLLER_BUTTON_BACK: return K_ESCAPE;
|
||||
//case SDL_CONTROLLER_BUTTON_GUIDE: return K_X360_GUIDE;
|
||||
case SDL_CONTROLLER_BUTTON_START: return K_ESCAPE;
|
||||
case SDL_CONTROLLER_BUTTON_LEFTSTICK: return K_X360_LEFT_THUMB;
|
||||
case SDL_CONTROLLER_BUTTON_RIGHTSTICK: return K_X360_RIGHT_THUMB;
|
||||
case SDL_CONTROLLER_BUTTON_LEFTSHOULDER: return K_X360_LEFT_SHOULDER;
|
||||
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: return K_X360_RIGHT_SHOULDER;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_UP: return K_X360_DPAD_UP;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_DOWN: return K_X360_DPAD_DOWN;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_LEFT: return K_X360_DPAD_LEFT;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_RIGHT: return K_X360_DPAD_RIGHT;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// adapted from DP
|
||||
static int IN_EmulatedKeyForControllerKey(int button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case K_X360_DPAD_UP: return K_UPARROW;
|
||||
case K_X360_DPAD_DOWN: return K_DOWNARROW;
|
||||
case K_X360_DPAD_LEFT: return K_LEFTARROW;
|
||||
case K_X360_DPAD_RIGHT: return K_RIGHTARROW;
|
||||
case K_X360_START: return K_ESCAPE;
|
||||
case K_X360_BACK: return K_ESCAPE;
|
||||
case K_X360_A: return K_ENTER;
|
||||
case K_X360_B: return K_ESCAPE;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_UP: return K_UPARROW;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_DOWN: return K_DOWNARROW;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_LEFT: return K_LEFTARROW;
|
||||
case SDL_CONTROLLER_BUTTON_DPAD_RIGHT: return K_RIGHTARROW;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void IN_ControllerButton(SDL_JoystickID instanceid, SDL_GameControllerButton button, qboolean down)
|
||||
{
|
||||
int key, emulatedkey;
|
||||
int key;
|
||||
|
||||
if (instanceid != joy_active_instaceid)
|
||||
return;
|
||||
|
@ -488,27 +470,6 @@ void IN_ControllerButton(SDL_JoystickID instanceid, SDL_GameControllerButton but
|
|||
|
||||
if (key)
|
||||
Key_Event(key, down);
|
||||
|
||||
// also send emulated keyboard key
|
||||
// emulatedkey = IN_EmulatedKeyForControllerKey(key);
|
||||
// if (emulatedkey)
|
||||
// Key_Event(emulatedkey, down);
|
||||
}
|
||||
|
||||
#define DOWN_THRESHOLD 0.5
|
||||
#define UP_THRESHOLD 0.25
|
||||
|
||||
void IN_ControllerAxisButton(float oldval, float newval, int negativekey, int positivekey)
|
||||
{
|
||||
if (!(oldval < -DOWN_THRESHOLD) && (newval < -DOWN_THRESHOLD))
|
||||
Key_Event(negativekey, true);
|
||||
else if (!(oldval > -UP_THRESHOLD) && (newval > -UP_THRESHOLD))
|
||||
Key_Event(negativekey, false);
|
||||
|
||||
if (!(oldval > DOWN_THRESHOLD) && (newval > DOWN_THRESHOLD))
|
||||
Key_Event(positivekey, true);
|
||||
else if (!(oldval < UP_THRESHOLD) && (newval < UP_THRESHOLD))
|
||||
Key_Event(positivekey, false);
|
||||
}
|
||||
|
||||
void IN_ControllerAxis(SDL_JoystickID instanceid, SDL_GameControllerAxis axis, Sint16 value)
|
||||
|
@ -523,19 +484,15 @@ void IN_ControllerAxis(SDL_JoystickID instanceid, SDL_GameControllerAxis axis, S
|
|||
{
|
||||
// TODO: swap move/look cvar
|
||||
case SDL_CONTROLLER_AXIS_LEFTX:
|
||||
// IN_ControllerAxisButton(_rawDualAxis.left.x, axisValue, K_X360_LEFT_THUMB_LEFT, K_X360_LEFT_THUMB_RIGHT);
|
||||
_rawDualAxis.left.x = axisValue;
|
||||
break;
|
||||
case SDL_CONTROLLER_AXIS_LEFTY:
|
||||
//IN_ControllerAxisButton(_rawDualAxis.left.y, axisValue, K_X360_LEFT_THUMB_UP, K_X360_LEFT_THUMB_DOWN);
|
||||
_rawDualAxis.left.y = axisValue;
|
||||
break;
|
||||
case SDL_CONTROLLER_AXIS_RIGHTX:
|
||||
//IN_ControllerAxisButton(_rawDualAxis.right.x, axisValue, K_X360_RIGHT_THUMB_LEFT, K_X360_RIGHT_THUMB_RIGHT);
|
||||
_rawDualAxis.right.x = axisValue;
|
||||
break;
|
||||
case SDL_CONTROLLER_AXIS_RIGHTY:
|
||||
//IN_ControllerAxisButton(_rawDualAxis.right.y, axisValue, K_X360_RIGHT_THUMB_UP, K_X360_RIGHT_THUMB_DOWN);
|
||||
_rawDualAxis.right.y = axisValue;
|
||||
break;
|
||||
|
||||
|
|
|
@ -161,10 +161,6 @@ keyname_t keynames[] =
|
|||
{"BACKQUOTE", '`'}, // because a raw backquote may toggle the console
|
||||
{"TILDE", '~'}, // because a raw tilde may toggle the console
|
||||
|
||||
{"X360_DPAD_UP", K_X360_DPAD_UP},
|
||||
{"X360_DPAD_DOWN", K_X360_DPAD_DOWN},
|
||||
{"X360_DPAD_LEFT", K_X360_DPAD_LEFT},
|
||||
{"X360_DPAD_RIGHT", K_X360_DPAD_RIGHT},
|
||||
{"X360_START", K_X360_START},
|
||||
{"X360_BACK", K_X360_BACK},
|
||||
{"X360_LEFT_THUMB", K_X360_LEFT_THUMB},
|
||||
|
@ -178,16 +174,6 @@ keyname_t keynames[] =
|
|||
{"X360_LEFT_TRIGGER", K_X360_LEFT_TRIGGER},
|
||||
{"X360_RIGHT_TRIGGER", K_X360_RIGHT_TRIGGER},
|
||||
//{"X360_GUIDE", K_X360_GUIDE},
|
||||
#if 0
|
||||
{"K_X360_LEFT_THUMB_UP", K_X360_LEFT_THUMB_UP},
|
||||
{"K_X360_LEFT_THUMB_DOWN", K_X360_LEFT_THUMB_DOWN},
|
||||
{"K_X360_LEFT_THUMB_LEFT", K_X360_LEFT_THUMB_LEFT},
|
||||
{"K_X360_LEFT_THUMB_RIGHT", K_X360_LEFT_THUMB_RIGHT},
|
||||
{"K_X360_RIGHT_THUMB_UP", K_X360_RIGHT_THUMB_UP},
|
||||
{"K_X360_RIGHT_THUMB_DOWN", K_X360_RIGHT_THUMB_DOWN},
|
||||
{"K_X360_RIGHT_THUMB_LEFT", K_X360_RIGHT_THUMB_LEFT},
|
||||
{"K_X360_RIGHT_THUMB_RIGHT", K_X360_RIGHT_THUMB_RIGHT},
|
||||
#endif
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
|
@ -948,42 +934,6 @@ void Key_GetGrabbedInput (int *lastkey, int *lastchar)
|
|||
*lastchar = key_inputgrab.lastchar;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int IN_IsControllerKey(int button)
|
||||
{
|
||||
return button >= K_X360_DPAD_UP && button <= K_X360_RIGHT_THUMB_RIGHT;
|
||||
}
|
||||
|
||||
static int IN_IsControllerThumbKey(int button)
|
||||
{
|
||||
return button >= K_X360_LEFT_THUMB_UP && button <= K_X360_RIGHT_THUMB_RIGHT;
|
||||
}
|
||||
|
||||
static int IN_EmulatedKeyForControllerKey(int button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case K_X360_DPAD_UP: return K_UPARROW;
|
||||
case K_X360_DPAD_DOWN: return K_DOWNARROW;
|
||||
case K_X360_DPAD_LEFT: return K_LEFTARROW;
|
||||
case K_X360_DPAD_RIGHT: return K_RIGHTARROW;
|
||||
case K_X360_LEFT_THUMB_UP: return K_UPARROW;
|
||||
case K_X360_LEFT_THUMB_DOWN: return K_DOWNARROW;
|
||||
case K_X360_LEFT_THUMB_LEFT: return K_LEFTARROW;
|
||||
case K_X360_LEFT_THUMB_RIGHT: return K_RIGHTARROW;
|
||||
// case K_X360_RIGHT_THUMB_UP: return K_UPARROW;
|
||||
// case K_X360_RIGHT_THUMB_DOWN: return K_DOWNARROW;
|
||||
// case K_X360_RIGHT_THUMB_LEFT: return K_LEFTARROW;
|
||||
// case K_X360_RIGHT_THUMB_RIGHT: return K_RIGHTARROW;
|
||||
// case K_X360_START: return K_ESCAPE;
|
||||
// case K_X360_BACK: return K_ESCAPE;
|
||||
case K_X360_A: return K_ENTER;
|
||||
case K_X360_B: return K_ESCAPE;
|
||||
default: return button;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
===================
|
||||
Key_Event
|
||||
|
@ -999,28 +949,6 @@ void Key_Event (int key, qboolean down)
|
|||
|
||||
if (key < 0 || key >= MAX_KEYS)
|
||||
return;
|
||||
|
||||
#if 0
|
||||
if (IN_IsControllerKey(key))
|
||||
{
|
||||
int emukey = IN_EmulatedKeyForControllerKey(key);
|
||||
|
||||
if (key_dest != key_game)
|
||||
{
|
||||
key = emukey;
|
||||
}
|
||||
else
|
||||
{
|
||||
// handle keyup when leaving menu with an emulated key
|
||||
if (!down &&
|
||||
!keydown[key] &&
|
||||
keydown[emukey])
|
||||
{
|
||||
key = emukey;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// handle fullscreen toggle
|
||||
if (down && (key == K_ENTER || key == K_KP_ENTER) && keydown[K_ALT])
|
||||
|
|
|
@ -143,10 +143,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#define K_MOUSE5 242
|
||||
|
||||
// SDL2 game controller keys
|
||||
#define K_X360_DPAD_UP 256
|
||||
#define K_X360_DPAD_DOWN 257
|
||||
#define K_X360_DPAD_LEFT 258
|
||||
#define K_X360_DPAD_RIGHT 259
|
||||
#define K_X360_START 260
|
||||
#define K_X360_BACK 261
|
||||
#define K_X360_LEFT_THUMB 262
|
||||
|
@ -159,16 +155,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#define K_X360_Y 269
|
||||
#define K_X360_LEFT_TRIGGER 270
|
||||
#define K_X360_RIGHT_TRIGGER 271
|
||||
#if 0
|
||||
#define K_X360_LEFT_THUMB_UP 272
|
||||
#define K_X360_LEFT_THUMB_DOWN 273
|
||||
#define K_X360_LEFT_THUMB_LEFT 274
|
||||
#define K_X360_LEFT_THUMB_RIGHT 275
|
||||
#define K_X360_RIGHT_THUMB_UP 276
|
||||
#define K_X360_RIGHT_THUMB_DOWN 277
|
||||
#define K_X360_RIGHT_THUMB_LEFT 278
|
||||
#define K_X360_RIGHT_THUMB_RIGHT 279
|
||||
#endif
|
||||
#define MAX_KEYS 280
|
||||
|
||||
#define MAXCMDLINE 256
|
||||
|
|
Loading…
Reference in a new issue