diff --git a/src/d_clisrv.c b/src/d_clisrv.c index be639034..9f65fdf8 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -2076,7 +2076,8 @@ static boolean CL_ServerConnectionTicker(boolean viams, const char *tmpsave, tic I_OsPolling(); key = I_GetKey(); - if (key == KEY_ESCAPE || key == KEY_JOY1+1) + // Any key can be used to abort network connection + if (key != KEY_NULL) { CONS_Printf(M_GetText("Network game synchronization aborted.\n")); // M_StartMessage(M_GetText("Network game synchronization aborted.\n\nPress ESC\n"), NULL, MM_NOTHING); diff --git a/src/g_input.c b/src/g_input.c index d7b7be91..871c1e60 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -120,7 +120,7 @@ void G_MapEventsToControls(event_t *ev) case ev_joystick2: // buttons are virtual keys i = ev->data1; - if (i >= JOYAXISSET || menuactive || CON_Ready() || chat_on) + if (i >= JOYAXISSET || menuactive) break; if (ev->data2 != INT32_MAX) joy2xmove[i] = ev->data2; if (ev->data3 != INT32_MAX) joy2ymove[i] = ev->data3; diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 9a940cbd..a308dfc2 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -1184,6 +1184,12 @@ boolean HU_Responder(event_t *ev) || ev->data1 == KEY_LALT || ev->data1 == KEY_RALT) return true; + // Ignore non-keyboard keys, except when the talk key is bound + if (ev->data1 >= KEY_MOUSE1 + && (ev->data1 != gamecontrol[gc_talkkey][0] + && ev->data1 != gamecontrol[gc_talkkey][1])) + return false; + c = (INT32)ev->data1; // I know this looks very messy but this works. If it ain't broke, don't fix it!