This commit is contained in:
Eric Wasylishen 2016-02-08 14:57:24 -07:00
parent 5c0ae3b4cd
commit dfc605398e
5 changed files with 83 additions and 9 deletions

View file

@ -924,7 +924,8 @@ int SCR_ModalMessage (const char *text, float timeout) //johnfitz -- timeout
} while (lastchar != 'y' && lastchar != 'Y' &&
lastchar != 'n' && lastchar != 'N' &&
lastkey != K_ESCAPE &&
lastkey != K_ENTER && //ericw -- K_ENTER used by x360 controller
lastkey != K_X360_A &&
lastkey != K_X360_B &&
time2 <= time1);
Key_EndInputGrab ();
@ -935,7 +936,7 @@ int SCR_ModalMessage (const char *text, float timeout) //johnfitz -- timeout
return false;
//johnfitz
return (lastchar == 'y' || lastchar == 'Y' || lastkey == K_ENTER);
return (lastchar == 'y' || lastchar == 'Y' || lastkey == K_X360_A);
}

View file

@ -523,19 +523,19 @@ 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);
// 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);
//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);
//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);
//IN_ControllerAxisButton(_rawDualAxis.right.y, axisValue, K_X360_RIGHT_THUMB_UP, K_X360_RIGHT_THUMB_DOWN);
_rawDualAxis.right.y = axisValue;
break;

View file

@ -178,6 +178,7 @@ 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},
@ -186,7 +187,7 @@ keyname_t keynames[] =
{"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}
};
@ -947,6 +948,7 @@ 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;
@ -980,6 +982,7 @@ static int IN_EmulatedKeyForControllerKey(int button)
default: return button;
}
}
#endif
/*
===================
@ -997,6 +1000,7 @@ 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);
@ -1016,6 +1020,7 @@ void Key_Event (int key, qboolean down)
}
}
}
#endif
// handle fullscreen toggle
if (down && (key == K_ENTER || key == K_KP_ENTER) && keydown[K_ALT])
@ -1032,7 +1037,7 @@ void Key_Event (int key, qboolean down)
if (key_dest == key_game && !con_forcedup)
return; // ignore autorepeats in game mode
}
else if (key >= 200 && !keybindings[key] && !IN_IsControllerThumbKey(key))
else if (key >= 200 && !keybindings[key])
Con_Printf ("%s is unbound, hit F4 to set.\n", Key_KeynumToString(key));
}
else if (!keydown[key])

View file

@ -159,6 +159,7 @@ 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
@ -167,7 +168,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#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

View file

@ -276,6 +276,7 @@ void M_Main_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
IN_Activate();
key_dest = key_game;
m_state = m_none;
@ -287,12 +288,14 @@ void M_Main_Key (int key)
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
if (++m_main_cursor >= MAIN_ITEMS)
m_main_cursor = 0;
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
if (--m_main_cursor < 0)
m_main_cursor = MAIN_ITEMS - 1;
@ -300,6 +303,7 @@ void M_Main_Key (int key)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_entersound = true;
switch (m_main_cursor)
@ -364,16 +368,19 @@ void M_SinglePlayer_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Main_f ();
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
if (++m_singleplayer_cursor >= SINGLEPLAYER_ITEMS)
m_singleplayer_cursor = 0;
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
if (--m_singleplayer_cursor < 0)
m_singleplayer_cursor = SINGLEPLAYER_ITEMS - 1;
@ -381,6 +388,7 @@ void M_SinglePlayer_Key (int key)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_entersound = true;
switch (m_singleplayer_cursor)
@ -514,11 +522,13 @@ void M_Load_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_SinglePlayer_f ();
break;
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
S_LocalSound ("misc/menu2.wav");
if (!loadable[load_cursor])
return;
@ -536,6 +546,8 @@ void M_Load_Key (int k)
case K_UPARROW:
case K_LEFTARROW:
case K_X360_DPAD_UP:
case K_X360_DPAD_LEFT:
S_LocalSound ("misc/menu1.wav");
load_cursor--;
if (load_cursor < 0)
@ -544,6 +556,8 @@ void M_Load_Key (int k)
case K_DOWNARROW:
case K_RIGHTARROW:
case K_X360_DPAD_DOWN:
case K_X360_DPAD_RIGHT:
S_LocalSound ("misc/menu1.wav");
load_cursor++;
if (load_cursor >= MAX_SAVEGAMES)
@ -558,11 +572,13 @@ void M_Save_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_SinglePlayer_f ();
break;
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_state = m_none;
IN_Activate();
key_dest = key_game;
@ -571,6 +587,8 @@ void M_Save_Key (int k)
case K_UPARROW:
case K_LEFTARROW:
case K_X360_DPAD_UP:
case K_X360_DPAD_LEFT:
S_LocalSound ("misc/menu1.wav");
load_cursor--;
if (load_cursor < 0)
@ -579,6 +597,8 @@ void M_Save_Key (int k)
case K_DOWNARROW:
case K_RIGHTARROW:
case K_X360_DPAD_DOWN:
case K_X360_DPAD_RIGHT:
S_LocalSound ("misc/menu1.wav");
load_cursor++;
if (load_cursor >= MAX_SAVEGAMES)
@ -628,16 +648,19 @@ void M_MultiPlayer_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Main_f ();
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
if (++m_multiplayer_cursor >= MULTIPLAYER_ITEMS)
m_multiplayer_cursor = 0;
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
if (--m_multiplayer_cursor < 0)
m_multiplayer_cursor = MULTIPLAYER_ITEMS - 1;
@ -645,6 +668,7 @@ void M_MultiPlayer_Key (int key)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_entersound = true;
switch (m_multiplayer_cursor)
{
@ -735,10 +759,12 @@ void M_Setup_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_MultiPlayer_f ();
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
setup_cursor--;
if (setup_cursor < 0)
@ -746,6 +772,7 @@ void M_Setup_Key (int k)
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
setup_cursor++;
if (setup_cursor >= NUM_SETUP_CMDS)
@ -753,6 +780,7 @@ void M_Setup_Key (int k)
break;
case K_LEFTARROW:
case K_X360_DPAD_LEFT:
if (setup_cursor < 2)
return;
S_LocalSound ("misc/menu3.wav");
@ -762,6 +790,7 @@ void M_Setup_Key (int k)
setup_bottom = setup_bottom - 1;
break;
case K_RIGHTARROW:
case K_X360_DPAD_RIGHT:
if (setup_cursor < 2)
return;
forward:
@ -774,6 +803,7 @@ forward:
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
if (setup_cursor == 0 || setup_cursor == 1)
return;
@ -926,16 +956,19 @@ again:
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_MultiPlayer_f ();
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
if (++m_net_cursor >= m_net_items)
m_net_cursor = 0;
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
if (--m_net_cursor < 0)
m_net_cursor = m_net_items - 1;
@ -943,6 +976,7 @@ again:
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_entersound = true;
M_Menu_LanConfig_f ();
break;
@ -1209,11 +1243,13 @@ void M_Options_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Main_f ();
break;
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
m_entersound = true;
switch (options_cursor)
{
@ -1242,6 +1278,7 @@ void M_Options_Key (int k)
return;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
options_cursor--;
if (options_cursor < 0)
@ -1249,6 +1286,7 @@ void M_Options_Key (int k)
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
options_cursor++;
if (options_cursor >= OPTIONS_ITEMS)
@ -1256,10 +1294,12 @@ void M_Options_Key (int k)
break;
case K_LEFTARROW:
case K_X360_DPAD_LEFT:
M_AdjustSliders (-1);
break;
case K_RIGHTARROW:
case K_X360_DPAD_RIGHT:
M_AdjustSliders (1);
break;
}
@ -1429,11 +1469,14 @@ void M_Keys_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Options_f ();
break;
case K_LEFTARROW:
case K_UPARROW:
case K_X360_DPAD_LEFT:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
keys_cursor--;
if (keys_cursor < 0)
@ -1442,6 +1485,8 @@ void M_Keys_Key (int k)
case K_DOWNARROW:
case K_RIGHTARROW:
case K_X360_DPAD_DOWN:
case K_X360_DPAD_RIGHT:
S_LocalSound ("misc/menu1.wav");
keys_cursor++;
if (keys_cursor >= (int)NUMCOMMANDS)
@ -1450,6 +1495,7 @@ void M_Keys_Key (int k)
case K_ENTER: // go into bind mode
case K_KP_ENTER:
case K_X360_A:
M_FindKeysForCommand (bindnames[keys_cursor][0], keys);
S_LocalSound ("misc/menu2.wav");
if (keys[1] != -1)
@ -1515,11 +1561,14 @@ void M_Help_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Main_f ();
break;
case K_UPARROW:
case K_RIGHTARROW:
case K_X360_DPAD_UP:
case K_X360_DPAD_RIGHT:
m_entersound = true;
if (++help_page >= NUM_HELP_PAGES)
help_page = 0;
@ -1527,6 +1576,8 @@ void M_Help_Key (int key)
case K_DOWNARROW:
case K_LEFTARROW:
case K_X360_DPAD_DOWN:
case K_X360_DPAD_LEFT:
m_entersound = true;
if (--help_page < 0)
help_page = NUM_HELP_PAGES-1;
@ -1744,10 +1795,12 @@ void M_LanConfig_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Net_f ();
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
lanConfig_cursor--;
if (lanConfig_cursor < 0)
@ -1755,6 +1808,7 @@ void M_LanConfig_Key (int key)
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
lanConfig_cursor++;
if (lanConfig_cursor >= NUM_LANCONFIG_CMDS)
@ -1763,6 +1817,7 @@ void M_LanConfig_Key (int key)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
if (lanConfig_cursor == 0)
break;
@ -2254,10 +2309,12 @@ void M_GameOptions_Key (int key)
switch (key)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_Net_f ();
break;
case K_UPARROW:
case K_X360_DPAD_UP:
S_LocalSound ("misc/menu1.wav");
gameoptions_cursor--;
if (gameoptions_cursor < 0)
@ -2265,6 +2322,7 @@ void M_GameOptions_Key (int key)
break;
case K_DOWNARROW:
case K_X360_DPAD_DOWN:
S_LocalSound ("misc/menu1.wav");
gameoptions_cursor++;
if (gameoptions_cursor >= NUM_GAMEOPTIONS)
@ -2272,6 +2330,7 @@ void M_GameOptions_Key (int key)
break;
case K_LEFTARROW:
case K_X360_DPAD_LEFT:
if (gameoptions_cursor == 0)
break;
S_LocalSound ("misc/menu3.wav");
@ -2279,6 +2338,7 @@ void M_GameOptions_Key (int key)
break;
case K_RIGHTARROW:
case K_X360_DPAD_RIGHT:
if (gameoptions_cursor == 0)
break;
S_LocalSound ("misc/menu3.wav");
@ -2287,6 +2347,7 @@ void M_GameOptions_Key (int key)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
S_LocalSound ("misc/menu2.wav");
if (gameoptions_cursor == 0)
{
@ -2418,6 +2479,7 @@ void M_ServerList_Key (int k)
switch (k)
{
case K_ESCAPE:
case K_X360_B:
M_Menu_LanConfig_f ();
break;
@ -2427,6 +2489,8 @@ void M_ServerList_Key (int k)
case K_UPARROW:
case K_LEFTARROW:
case K_X360_DPAD_UP:
case K_X360_DPAD_LEFT:
S_LocalSound ("misc/menu1.wav");
slist_cursor--;
if (slist_cursor < 0)
@ -2435,6 +2499,8 @@ void M_ServerList_Key (int k)
case K_DOWNARROW:
case K_RIGHTARROW:
case K_X360_DPAD_DOWN:
case K_X360_DPAD_RIGHT:
S_LocalSound ("misc/menu1.wav");
slist_cursor++;
if (slist_cursor >= hostCacheCount)
@ -2443,6 +2509,7 @@ void M_ServerList_Key (int k)
case K_ENTER:
case K_KP_ENTER:
case K_X360_A:
S_LocalSound ("misc/menu2.wav");
m_return_state = m_state;
m_return_onerror = true;