From 4d3c380f0d96d72f972997bcb8b1ae1d9706a063 Mon Sep 17 00:00:00 2001 From: ceski <56656010+ceski-1@users.noreply.github.com> Date: Sun, 3 Mar 2024 08:27:11 -0800 Subject: [PATCH] Apply deadzone to gamepad for strict mode check (#1550) --- src/g_game.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 8cc4a85c..9381211b 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1052,14 +1052,31 @@ static boolean G_StrictModeSkipEvent(event_t *ev) case ev_joyb_down: case ev_joyb_up: - case ev_joystick: - if (first_event && (ev->data1 || ev->data2 || ev->data3 || ev->data4)) + if (first_event) { first_event = false; enable_controller = true; } return !enable_controller; + case ev_joystick: + if (first_event) + { + *axes_data[AXIS_LEFTX] = ev->data1; + *axes_data[AXIS_LEFTY] = ev->data2; + *axes_data[AXIS_RIGHTX] = ev->data3; + *axes_data[AXIS_RIGHTY] = ev->data4; + I_CalcControllerAxes(); + if (axes[AXIS_STRAFE] || axes[AXIS_FORWARD] || axes[AXIS_TURN] || + axes[AXIS_LOOK]) + { + first_event = false; + enable_controller = true; + } + return true; // Already "ate" the event above. + } + return !enable_controller; + default: break; }