diff --git a/Quake/cl_input.c b/Quake/cl_input.c index 174b61c0..781a4f7c 100644 --- a/Quake/cl_input.c +++ b/Quake/cl_input.c @@ -246,7 +246,7 @@ void CL_AdjustAngles (void) float speed; float up, down; - if (in_speed.state & 1) + if ((cl_forwardspeed.value > 200) ^ (in_speed.state & 1)) speed = host_frametime * cl_anglespeedkey.value; else speed = host_frametime; @@ -324,7 +324,11 @@ void CL_BaseMove (usercmd_t *cmd) // // adjust for speed key // - if (in_speed.state & 1) + if (cl_forwardspeed.value > 200 && cl_movespeedkey.value != 0) + { + cmd->forwardmove /= cl_movespeedkey.value; + } + if ((cl_forwardspeed.value > 200) ^ (in_speed.state & 1)) { cmd->forwardmove *= cl_movespeedkey.value; cmd->sidemove *= cl_movespeedkey.value; diff --git a/Quake/menu.c b/Quake/menu.c index 7567dd8d..4e06d9e5 100644 --- a/Quake/menu.c +++ b/Quake/menu.c @@ -1037,15 +1037,15 @@ void M_AdjustSliders (int dir) break; case OPT_ALWAYRUN: // always run - if (cl_forwardspeed.value > 200) + if (cl_forwardspeed.value > 200 || cl_movespeedkey.value <= 1) { - Cvar_Set ("cl_forwardspeed", "200"); - Cvar_Set ("cl_backspeed", "200"); + Cvar_SetValue ("cl_forwardspeed", 200); + Cvar_SetValue ("cl_backspeed", 200); } else { - Cvar_Set ("cl_forwardspeed", "400"); - Cvar_Set ("cl_backspeed", "400"); + Cvar_SetValue ("cl_forwardspeed", 200 * cl_movespeedkey.value); + Cvar_SetValue ("cl_backspeed", 200 * cl_movespeedkey.value); } break;