// already read this frame's message
return;
}
+ if (cls.td_lastframe == -1)
+ {
+ // we start counting on the second frame
+ // (after parsing connection stuff)
+ cls.td_startframe = host_framecount + 1;
+ }
cls.td_lastframe = host_framecount;
- // if this is the second frame, grab the real td_starttime
- // so the bogus time on the first frame doesn't count
- if (host_framecount == cls.td_startframe + 1)
+ // if this is the first official frame we can now grab the real
+ // td_starttime so the bogus time on the first frame doesn't
+ // count against the final report
+ if (host_framecount == cls.td_startframe)
cls.td_starttime = realtime;
}
else if (cl.time <= cl.mtime[0])
track = -1;
// get the demo name
- strncpy (name, Cmd_Argv(1), sizeof (name) - 1);
- name[sizeof (name) - 1] = '\0';
- FS_DefaultExtension (name, ".dem");
+ strlcpy (name, Cmd_Argv(1), sizeof (name));
+ FS_DefaultExtension (name, ".dem", sizeof (name));
// start the map up
if (c > 2)
// disconnect from server
CL_Disconnect ();
+ // update networking ports (this is mainly just needed at startup)
+ NetConn_ClientFrame();
+
// open the demo file
- strcpy (name, Cmd_Argv(1));
- FS_DefaultExtension (name, ".dem");
+ strlcpy (name, Cmd_Argv(1), sizeof (name));
+ FS_DefaultExtension (name, ".dem", sizeof (name));
Con_Printf ("Playing demo from %s.\n", name);
cls.demofile = FS_Open (name, "rb", false);
scr_con_current = 0;
cls.timedemo = true;
- cls.td_startframe = host_framecount;
- cls.td_lastframe = -1; // get a new message this frame
+ // get first message this frame
+ cls.td_lastframe = -1;
}