void CL_UpdateMoveVars(void)
{
if (cls.protocol == PROTOCOL_QUAKEWORLD)
- {
- cl.movevars_timescale = 1;
cl.movevars_ticrate = 1.0 / bound(1, cl_netinputpacketspersecond.value, 100);
- // scale playback speed of demos by slowmo cvar
- if (cls.demoplayback)
- cl.movevars_timescale *= slowmo.value;
- }
else if (cl.stats[STAT_MOVEVARS_TICRATE])
{
cl.movevars_ticrate = cl.statsf[STAT_MOVEVARS_TICRATE];
cl.movevars_friction = cl.statsf[STAT_MOVEVARS_FRICTION];
cl.movevars_wallfriction = cl.statsf[STAT_MOVEVARS_WALLFRICTION];
cl.movevars_waterfriction = cl.statsf[STAT_MOVEVARS_WATERFRICTION];
- // scale playback speed of demos by slowmo cvar
- if (cls.demoplayback)
- cl.movevars_timescale *= slowmo.value;
}
else
{
// apply slowmo scaling
clframetime *= cl.movevars_timescale;
+ // scale playback speed of demos by slowmo cvar
+ if (cls.demoplayback)
+ {
+ clframetime *= slowmo.value;
+ // if demo playback is paused, don't advance time at all
+ if (cls.demopaused)
+ clframetime = 0;
+ }
// host_framerate overrides all else
if (host_framerate.value)