- negated the meaning of SB_AIMMODE.

This is because 'classic' aim mode will reset the view if the mouseaim key is not pressed.
The problem with this is that an empty input packet will trigger a view reset. If the meaning is inverted the default aim mode is free mouse view which doesn't try to alter any view state and is therefore preferable for an empty packet.

Fixes #292
This commit is contained in:
Christoph Oelckers 2020-08-31 20:51:22 +02:00
parent ac5abd8aac
commit 3204a3e5fc
5 changed files with 6 additions and 6 deletions

View file

@ -99,7 +99,7 @@ void ctrlGetInput(void)
ApplyGlobalInput(gInput, &info);
bool mouseaim = !!(gInput.actions & SB_AIMMODE);
bool mouseaim = !(gInput.actions & SB_AIMMODE);
if (!mouseaim) gInput.actions |= SB_CENTERVIEW;
if (buttonMap.ButtonDown(gamefunc_Shrink_Screen))

View file

@ -383,7 +383,7 @@ void ApplyGlobalInput(InputPacket& input, ControlInfo *info)
if (G_CheckAutorun(buttonMap.ButtonDown(gamefunc_Run)))
input.actions |= SB_RUN;
if (in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming))
if (!in_mousemode && !buttonMap.ButtonDown(gamefunc_Mouse_Aiming))
input.actions |= SB_AIMMODE;
if (buttonMap.ButtonDown(gamefunc_Look_Up))

View file

@ -165,7 +165,7 @@ void PlayerInterruptKeys(bool after)
input_angle = fix16_sadd(input_angle, fix16_from_dbl(scaleAdjustmentToInterval(info.dyaw)));
}
bool mouseaim = !!(localInput.actions & SB_AIMMODE);
bool mouseaim = !(localInput.actions & SB_AIMMODE);
if (mouseaim)
tempinput.q16horz = fix16_sadd(tempinput.q16horz, fix16_from_float(info.mousey));

View file

@ -114,7 +114,7 @@ void hud_input(int snum)
p = &ps[snum];
i = p->aim_mode;
p->aim_mode = PlayerInput(snum, SB_AIMMODE);
p->aim_mode = !PlayerInput(snum, SB_AIMMODE);
if (p->aim_mode < i)
p->return_to_center = 9;
@ -637,7 +637,7 @@ int getticssincelastupdate()
static void processMovement(player_struct *p, InputPacket &input, ControlInfo &info, double scaleFactor)
{
bool mouseaim = !!(loc.actions & SB_AIMMODE);
bool mouseaim = !(loc.actions & SB_AIMMODE);
// JBF: Run key behaviour is selectable
int running = !!(loc.actions & SB_RUN);

View file

@ -113,7 +113,7 @@ getinput(InputPacket *loc, SWBOOL tied)
ApplyGlobalInput(*loc, &info);
bool mouseaim = !!(loc->actions & SB_AIMMODE);
bool mouseaim = !(loc->actions & SB_AIMMODE);
if (!CommEnabled)
{