mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-03 20:26:05 +00:00
Map buffered inputs to menucmd
This lets buffered tapping not count as one held input.
This commit is contained in:
parent
68ed9982b6
commit
3504f7ebd3
3 changed files with 27 additions and 9 deletions
|
|
@ -182,6 +182,7 @@ void D_ProcessEvents(void)
|
|||
event_t *ev;
|
||||
|
||||
boolean eaten;
|
||||
boolean menuresponse = false;
|
||||
|
||||
memset(deviceResponding, false, sizeof (deviceResponding));
|
||||
for (; eventtail != eventhead; eventtail = (eventtail+1) & (MAXEVENTS-1))
|
||||
|
|
@ -205,6 +206,7 @@ void D_ProcessEvents(void)
|
|||
}
|
||||
|
||||
// Menu input
|
||||
menuresponse = true;
|
||||
#ifdef HAVE_THREADS
|
||||
I_lock_mutex(&k_menu_mutex);
|
||||
#endif
|
||||
|
|
@ -244,6 +246,12 @@ void D_ProcessEvents(void)
|
|||
|
||||
G_Responder(ev);
|
||||
}
|
||||
|
||||
// Reset menu controls when no event is processed
|
||||
if (!menuresponse)
|
||||
{
|
||||
M_MapMenuControls(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -424,6 +424,7 @@ void Addons_option_Onchange(void);
|
|||
|
||||
void M_SortServerList(void);
|
||||
|
||||
void M_MapMenuControls(event_t *ev);
|
||||
boolean M_Responder(event_t *ev);
|
||||
boolean M_MenuButtonPressed(UINT8 pid, UINT32 bt);
|
||||
void M_StartControlPanel(void);
|
||||
|
|
|
|||
|
|
@ -828,8 +828,7 @@ boolean M_Responder(event_t *ev)
|
|||
menuKey = ev->data1;
|
||||
}
|
||||
|
||||
// update keys current state
|
||||
G_MapEventsToControls(ev);
|
||||
M_MapMenuControls(ev);
|
||||
|
||||
// Profiles: Control mapping.
|
||||
// We take the WHOLE EVENT for convenience.
|
||||
|
|
@ -1163,6 +1162,23 @@ static void M_UpdateMenuCMD(UINT8 i)
|
|||
}
|
||||
}
|
||||
|
||||
void M_MapMenuControls(event_t *ev)
|
||||
{
|
||||
INT32 i;
|
||||
|
||||
if (ev)
|
||||
{
|
||||
// update keys current state
|
||||
G_MapEventsToControls(ev);
|
||||
}
|
||||
|
||||
// Update menu CMD
|
||||
for (i = 0; i < MAXSPLITSCREENPLAYERS; i++)
|
||||
{
|
||||
M_UpdateMenuCMD(i);
|
||||
}
|
||||
}
|
||||
|
||||
boolean M_MenuButtonPressed(UINT8 pid, UINT32 bt)
|
||||
{
|
||||
if (menucmd[pid].buttonsHeld & bt)
|
||||
|
|
@ -1326,16 +1342,9 @@ static void M_MenuTypingInput(INT32 key)
|
|||
static void M_HandleMenuInput(void)
|
||||
{
|
||||
void (*routine)(INT32 choice); // for some casting problem
|
||||
INT32 i;
|
||||
UINT8 pid = 0; // todo: Add ability for any splitscreen player to bring up the menu.
|
||||
SINT8 lr = 0, ud = 0;
|
||||
|
||||
// Update menu CMD
|
||||
for (i = 0; i < MAXSPLITSCREENPLAYERS; i++)
|
||||
{
|
||||
M_UpdateMenuCMD(i);
|
||||
}
|
||||
|
||||
if (menuactive == false)
|
||||
{
|
||||
// We're not in the menu.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue