From 7305afa5ea94dffcdd5e71eb0533c59cb4fc8f3e Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 8 Mar 2024 04:52:03 -0800 Subject: [PATCH] D_ProcessEvents: fix old input events repeating themselves when pressing Y button in Time Attack --- src/d_main.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/d_main.cpp b/src/d_main.cpp index 9d1b25edb..3eafa8c67 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -272,9 +272,19 @@ void D_ProcessEvents(boolean callresponders) boolean eaten; G_ResetAllDeviceResponding(); - for (; eventtail != eventhead; eventtail = (eventtail+1) & (MAXEVENTS-1)) + + // Save these in local variables because eventtail != + // eventhead was evaluating true when they were equal, + // but only when using the Y button to restart a Time + // Attack?? + INT32 tail = eventtail; + INT32 head = eventhead; + + eventtail = eventhead; + + for (; tail != head; tail = (tail+1) & (MAXEVENTS-1)) { - ev = &events[eventtail]; + ev = &events[tail]; HandleGamepadDeviceEvents(ev);