diff --git a/quakespasm/Quake/gl_screen.c b/quakespasm/Quake/gl_screen.c index c380a57d..3c78ee19 100644 --- a/quakespasm/Quake/gl_screen.c +++ b/quakespasm/Quake/gl_screen.c @@ -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); } diff --git a/quakespasm/Quake/in_sdl.c b/quakespasm/Quake/in_sdl.c index c4b177de..4e469c97 100644 --- a/quakespasm/Quake/in_sdl.c +++ b/quakespasm/Quake/in_sdl.c @@ -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; diff --git a/quakespasm/Quake/keys.c b/quakespasm/Quake/keys.c index 2c9baa22..ee96a898 100644 --- a/quakespasm/Quake/keys.c +++ b/quakespasm/Quake/keys.c @@ -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]) diff --git a/quakespasm/Quake/keys.h b/quakespasm/Quake/keys.h index e90bbef0..10c9666c 100644 --- a/quakespasm/Quake/keys.h +++ b/quakespasm/Quake/keys.h @@ -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 diff --git a/quakespasm/Quake/menu.c b/quakespasm/Quake/menu.c index 58043a09..72b51586 100644 --- a/quakespasm/Quake/menu.c +++ b/quakespasm/Quake/menu.c @@ -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;