mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-11-23 12:22:45 +00:00
Moved some ancient playsim mouse input code around so that it works properly with input events
This commit is contained in:
parent
9d6b5f7015
commit
2e0eb742eb
1 changed files with 29 additions and 20 deletions
|
@ -258,6 +258,33 @@ static int pagetic;
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
|
// [ZZ] this handles the mouse changes in the playsim.
|
||||||
|
// I have no idea why it had to be done before events are dispatched... also no idea why is this not in G_Responder or something.
|
||||||
|
static void D_ProcessMouseForPlaysim(event_t *ev)
|
||||||
|
{
|
||||||
|
//if (ev->type == EV_Mouse && !paused && menuactive == MENU_Off && ConsoleState != c_down && ConsoleState != c_falling && !E_CheckUiProcessors())
|
||||||
|
if (ev->type == EV_Mouse && !paused) // [ZZ] the other checks are replaced with responders eating the event.
|
||||||
|
{
|
||||||
|
if (Button_Mlook.bDown || freelook)
|
||||||
|
{
|
||||||
|
int look = int(ev->y * m_pitch * mouse_sensitivity * 16.0);
|
||||||
|
if (invertmouse)
|
||||||
|
look = -look;
|
||||||
|
G_AddViewPitch(look);
|
||||||
|
events[eventhead].y = 0;
|
||||||
|
}
|
||||||
|
if (!Button_Strafe.bDown && !lookstrafe)
|
||||||
|
{
|
||||||
|
G_AddViewAngle(int(ev->x * m_yaw * mouse_sensitivity * 8.0));
|
||||||
|
events[eventhead].x = 0;
|
||||||
|
}
|
||||||
|
if ((events[eventhead].x | events[eventhead].y) == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void D_ProcessEvents (void)
|
void D_ProcessEvents (void)
|
||||||
{
|
{
|
||||||
event_t *ev;
|
event_t *ev;
|
||||||
|
@ -290,6 +317,8 @@ void D_ProcessEvents (void)
|
||||||
// check events
|
// check events
|
||||||
if (E_Responder(ev)) // [ZZ] ZScript ate the event
|
if (E_Responder(ev)) // [ZZ] ZScript ate the event
|
||||||
continue;
|
continue;
|
||||||
|
// before passing this further, do some magic
|
||||||
|
D_ProcessMouseForPlaysim(ev);
|
||||||
G_Responder (ev);
|
G_Responder (ev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -310,26 +339,6 @@ void D_PostEvent (const event_t *ev)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
events[eventhead] = *ev;
|
events[eventhead] = *ev;
|
||||||
if (ev->type == EV_Mouse && !paused && menuactive == MENU_Off && ConsoleState != c_down && ConsoleState != c_falling && !E_CheckUiProcessors())
|
|
||||||
{
|
|
||||||
if (Button_Mlook.bDown || freelook)
|
|
||||||
{
|
|
||||||
int look = int(ev->y * m_pitch * mouse_sensitivity * 16.0);
|
|
||||||
if (invertmouse)
|
|
||||||
look = -look;
|
|
||||||
G_AddViewPitch (look);
|
|
||||||
events[eventhead].y = 0;
|
|
||||||
}
|
|
||||||
if (!Button_Strafe.bDown && !lookstrafe)
|
|
||||||
{
|
|
||||||
G_AddViewAngle (int(ev->x * m_yaw * mouse_sensitivity * 8.0));
|
|
||||||
events[eventhead].x = 0;
|
|
||||||
}
|
|
||||||
if ((events[eventhead].x | events[eventhead].y) == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
eventhead = (eventhead+1)&(MAXEVENTS-1);
|
eventhead = (eventhead+1)&(MAXEVENTS-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue