Clamp pitchspeed properly.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5611 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2020-01-23 18:53:52 +00:00
parent 95f13b3a34
commit a3d6a3fdec

View file

@ -860,18 +860,18 @@ void CL_AdjustAngles (int pnum, double frametime)
if (in_speed.state[pnum] & 1) if (in_speed.state[pnum] & 1)
{ {
if (ruleset_allow_frj.ival) if (ruleset_allow_frj.ival)
speed = frametime * cl_anglespeedkey.value; speed = cl_anglespeedkey.value;
else else
speed = frametime * bound(-2, cl_anglespeedkey.value, 2); speed = bound(-2, cl_anglespeedkey.value, 2);
} }
else else
speed = frametime; speed = 1;
if (in_rotate && pnum==0 && !(cl.fpd & FPD_LIMIT_YAW)) if (in_rotate && pnum==0 && !(cl.fpd & FPD_LIMIT_YAW))
{ {
quant = in_rotate; quant = in_rotate;
if (!cl_instantrotate.ival) if (!cl_instantrotate.ival)
quant *= speed; quant *= speed*frametime;
in_rotate -= quant; in_rotate -= quant;
if (ruleset_allow_frj.ival) if (ruleset_allow_frj.ival)
cl.playerview[pnum].viewanglechange[YAW] += quant; cl.playerview[pnum].viewanglechange[YAW] += quant;
@ -879,34 +879,38 @@ void CL_AdjustAngles (int pnum, double frametime)
if (!(in_strafe.state[pnum] & 1)) if (!(in_strafe.state[pnum] & 1))
{ {
quant = cl_yawspeed.value; quant = cl_yawspeed.value*speed;
if ((cl.fpd & FPD_LIMIT_YAW) || !ruleset_allow_frj.ival) if ((cl.fpd & FPD_LIMIT_YAW) || !ruleset_allow_frj.ival)
quant = bound(-900, quant, 900); quant = bound(-900, quant, 900);
cl.playerview[pnum].viewanglechange[YAW] -= speed*quant * CL_KeyState (&in_right, pnum, false); quant *= frametime;
cl.playerview[pnum].viewanglechange[YAW] += speed*quant * CL_KeyState (&in_left, pnum, false); cl.playerview[pnum].viewanglechange[YAW] -= quant * CL_KeyState (&in_right, pnum, false);
cl.playerview[pnum].viewanglechange[YAW] += quant * CL_KeyState (&in_left, pnum, false);
} }
if (in_klook.state[pnum] & 1) if (in_klook.state[pnum] & 1)
{ {
V_StopPitchDrift (&cl.playerview[pnum]); V_StopPitchDrift (&cl.playerview[pnum]);
quant = cl_pitchspeed.value; quant = cl_pitchspeed.value*speed;
if ((cl.fpd & FPD_LIMIT_PITCH) || !ruleset_allow_frj.ival) if ((cl.fpd & FPD_LIMIT_PITCH) || !ruleset_allow_frj.ival)
quant = bound(-700, quant, 700); quant = bound(-700, quant, 700);
cl.playerview[pnum].viewanglechange[PITCH] -= speed*quant * CL_KeyState (&in_forward, pnum, false); quant *= frametime;
cl.playerview[pnum].viewanglechange[PITCH] += speed*quant * CL_KeyState (&in_back, pnum, false); cl.playerview[pnum].viewanglechange[PITCH] -= quant * CL_KeyState (&in_forward, pnum, false);
cl.playerview[pnum].viewanglechange[PITCH] += quant * CL_KeyState (&in_back, pnum, false);
} }
quant = cl_rollspeed.value; quant = cl_rollspeed.value*speed;
cl.playerview[pnum].viewanglechange[ROLL] -= speed*quant * CL_KeyState (&in_rollleft, pnum, false); quant *= frametime;
cl.playerview[pnum].viewanglechange[ROLL] += speed*quant * CL_KeyState (&in_rollright, pnum, false); cl.playerview[pnum].viewanglechange[ROLL] -= quant * CL_KeyState (&in_rollleft, pnum, false);
cl.playerview[pnum].viewanglechange[ROLL] += quant * CL_KeyState (&in_rollright, pnum, false);
up = CL_KeyState (&in_lookup, pnum, false); up = CL_KeyState (&in_lookup, pnum, false);
down = CL_KeyState(&in_lookdown, pnum, false); down = CL_KeyState(&in_lookdown, pnum, false);
quant = cl_pitchspeed.value; quant = cl_pitchspeed.value*speed;
if ((cl.fpd & FPD_LIMIT_PITCH) || !ruleset_allow_frj.ival) if ((cl.fpd & FPD_LIMIT_PITCH) || !ruleset_allow_frj.ival)
quant = bound(-700, quant, 700); quant = bound(-700, quant, 700);
cl.playerview[pnum].viewanglechange[PITCH] -= speed*cl_pitchspeed.ival * up; quant *= frametime;
cl.playerview[pnum].viewanglechange[PITCH] += speed*cl_pitchspeed.ival * down; cl.playerview[pnum].viewanglechange[PITCH] -= quant * up;
cl.playerview[pnum].viewanglechange[PITCH] += quant * down;
if (up || down) if (up || down)
V_StopPitchDrift (&cl.playerview[pnum]); V_StopPitchDrift (&cl.playerview[pnum]);