Trimming joy support

This commit is contained in:
Eric Wasylishen 2016-02-08 15:04:19 -07:00
parent 6a27a05f82
commit 59ad64e28b
3 changed files with 5 additions and 134 deletions

View file

@ -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;

View file

@ -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])

View file

@ -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