cl.mtime[0] = newtime;
if (cls.timedemo || (cl.islocalgame && !sv_fixedframeratesingleplayer.integer) || cl.mtime[1] == cl.mtime[0] || cls.signon < SIGNONS)
cl.time = cl.mtime[1] = newtime;
- else if (cls.protocol != PROTOCOL_QUAKEWORLD && !cls.demoplayback)
+ else if (cls.demoplayback)
+ {
+ // when time falls behind during demo playback it means the cl.mtime[1] was altered
+ // due to a large time gap, so treat it as an instant change in time
+ // (this can also happen during heavy packet loss in the demo)
+ if (cl.time < newtime - 0.1)
+ cl.mtime[1] = cl.time = newtime;
+ }
+ else if (cls.protocol != PROTOCOL_QUAKEWORLD)
{
cl.mtime[1] = max(cl.mtime[1], cl.mtime[0] - 0.1);
if (developer.integer >= 100 && vid_activewindow)
d bug darkplaces client: svc_effect should post a warning and do nothing if given a framerate below 1 (Willis)
d bug darkplaces client: te_customflash isn't working? (Wazat)
d bug darkplaces client: userinfo strings are not being updated by name/color commands
+d bug darkplaces client: when playing back a demo in slow motion it is very noticable that the camera rotates into position on the first frame (Stribbs)
+d bug darkplaces client: when playing back nehahra demos they often contain large time skips at scene cuts which are interpolating slowly over several seconds (Stribbs)
d bug darkplaces collision: check Urre's sltest.bsp and slopestuck.dem and fix the sticking bug, which only happens with sv_newflymove 1 (Urre)
d bug darkplaces collision: frikbots are falling through the map (Sajt)
d bug darkplaces commands: say command is not posting to server console (Vermeulen)