Flip in CL_* instead so it works in case v_flipped is toggled while holding down...
authorT <>
Mon, 24 Mar 2025 22:09:22 +0000 (23:09 +0100)
committerT <>
Mon, 24 Mar 2025 22:09:22 +0000 (23:09 +0100)
cl_input.c

index da79dde698110c4feb0924cf565743ffed994621..83cc93e20c3870042675119880e25dc0d3a0a952 100644 (file)
@@ -121,8 +121,6 @@ static void KeyUp (cmd_state_t *cmd, kbutton_t *b)
        b->state |= 4;          // impulse up
 }
 
-extern cvar_t v_flipped;
-
 static void IN_KLookDown(cmd_state_t *cmd) {KeyDown(cmd, &in_klook);}
 static void IN_KLookUp(cmd_state_t *cmd) {KeyUp(cmd, &in_klook);}
 static void IN_MLookDown(cmd_state_t *cmd) {KeyDown(cmd, &in_mlook);}
@@ -136,22 +134,10 @@ static void IN_UpDown(cmd_state_t *cmd) {KeyDown(cmd, &in_up);}
 static void IN_UpUp(cmd_state_t *cmd) {KeyUp(cmd, &in_up);}
 static void IN_DownDown(cmd_state_t *cmd) {KeyDown(cmd, &in_down);}
 static void IN_DownUp(cmd_state_t *cmd) {KeyUp(cmd, &in_down);}
-static void IN_LeftDown(cmd_state_t *cmd)
-{
-       KeyDown(cmd, v_flipped.integer ? &in_right : &in_left);
-}
-static void IN_LeftUp(cmd_state_t *cmd)
-{
-       KeyUp(cmd, v_flipped.integer ? &in_right : &in_left);
-}
-static void IN_RightDown(cmd_state_t *cmd)
-{
-       KeyDown(cmd, v_flipped.integer ? &in_left : &in_right);
-}
-static void IN_RightUp(cmd_state_t *cmd)
-{
-       KeyUp(cmd, v_flipped.integer ? &in_left : &in_right);
-}
+static void IN_LeftDown(cmd_state_t *cmd) {KeyDown(cmd, &in_left);}
+static void IN_LeftUp(cmd_state_t *cmd) {KeyUp(cmd, &in_left);}
+static void IN_RightDown(cmd_state_t *cmd) {KeyDown(cmd, &in_right);}
+static void IN_RightUp(cmd_state_t *cmd) {KeyUp(cmd, &in_right);}
 static void IN_ForwardDown(cmd_state_t *cmd) {KeyDown(cmd, &in_forward);}
 static void IN_ForwardUp(cmd_state_t *cmd) {KeyUp(cmd, &in_forward);}
 static void IN_BackDown(cmd_state_t *cmd) {KeyDown(cmd, &in_back);}
@@ -433,6 +419,8 @@ cvar_t cl_nodelta = {CF_CLIENT, "cl_nodelta", "0", "disables delta compression o
 
 cvar_t cl_csqc_generatemousemoveevents = {CF_CLIENT, "cl_csqc_generatemousemoveevents", "1", "enables calls to CSQC_InputEvent with type 2, for compliance with EXT_CSQC spec"};
 
+extern cvar_t v_flipped;
+
 /*
 ================
 CL_AdjustAngles
@@ -452,21 +440,21 @@ static void CL_AdjustAngles (void)
 
        if (!(in_strafe.state & 1))
        {
-               cl.viewangles[YAW] -= speed*cl_yawspeed.value*CL_KeyState (&in_right);
-               cl.viewangles[YAW] += speed*cl_yawspeed.value*CL_KeyState (&in_left);
+               cl.viewangles[YAW] -= speed * cl_yawspeed.value * CL_KeyState (&in_right) * (v_flipped.integer ? -1 : 1);
+               cl.viewangles[YAW] += speed * cl_yawspeed.value * CL_KeyState (&in_left) * (v_flipped.integer ? -1 : 1);
        }
        if (in_klook.state & 1)
        {
                V_StopPitchDrift ();
-               cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * CL_KeyState (&in_forward);
-               cl.viewangles[PITCH] += speed*cl_pitchspeed.value * CL_KeyState (&in_back);
+               cl.viewangles[PITCH] -= speed * cl_pitchspeed.value * CL_KeyState (&in_forward);
+               cl.viewangles[PITCH] += speed * cl_pitchspeed.value * CL_KeyState (&in_back);
        }
 
        up = CL_KeyState (&in_lookup);
        down = CL_KeyState(&in_lookdown);
 
-       cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * up;
-       cl.viewangles[PITCH] += speed*cl_pitchspeed.value * down;
+       cl.viewangles[PITCH] -= speed * cl_pitchspeed.value * up;
+       cl.viewangles[PITCH] += speed * cl_pitchspeed.value * down;
 
        if (up || down)
                V_StopPitchDrift ();
@@ -511,8 +499,8 @@ void CL_Input (void)
        // get basic movement from keyboard
        if (in_strafe.state & 1)
        {
-               cl.cmd.sidemove += cl_sidespeed.value * CL_KeyState (&in_right);
-               cl.cmd.sidemove -= cl_sidespeed.value * CL_KeyState (&in_left);
+               cl.cmd.sidemove += cl_sidespeed.value * CL_KeyState (&in_right) * (v_flipped.integer ? -1 : 1);
+               cl.cmd.sidemove -= cl_sidespeed.value * CL_KeyState (&in_left) * (v_flipped.integer ? -1 : 1);
        }
 
        cl.cmd.sidemove += cl_sidespeed.value * CL_KeyState (&in_moveright);