- Don't copy delayed events in D_ProcessEvents(), instead store the current pointer.

This commit is contained in:
Mitchell Richters 2022-10-22 13:09:53 +11:00
parent 479616a80f
commit 3f9a2a2103

View file

@ -67,7 +67,7 @@ CVAR(Float, m_sensitivity_y, 2, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
void D_ProcessEvents (void)
{
FixedBitArray<NUM_KEYS> keywasdown;
TArray<event_t> delayedevents;
TArray<event_t*> delayedevents;
keywasdown.Zero();
while (eventtail != eventhead)
@ -77,7 +77,7 @@ void D_ProcessEvents (void)
if (ev->type == EV_KeyUp && keywasdown[ev->data1])
{
delayedevents.Push(*ev);
delayedevents.Push(ev);
continue;
}
@ -97,9 +97,9 @@ void D_ProcessEvents (void)
if (sysCallbacks.G_Responder(ev) && ev->type == EV_KeyDown) keywasdown.Set(ev->data1);
}
for (auto& ev: delayedevents)
for (auto ev: delayedevents)
{
D_PostEvent(&ev);
D_PostEvent(ev);
}
}