From 4bd29b0d7948d81e0c6430874610ce4e8c14b636 Mon Sep 17 00:00:00 2001 From: havoc Date: Sun, 15 Apr 2007 21:36:53 +0000 Subject: [PATCH] changed cl_nettimesyncmode 2 to use tighter tolerances again (1 frame, not 2) added cl_nettimesyncmode 5 (new default) which is like 2 but has very tight tolerances (1/8th of frame delta) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7099 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_parse.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cl_parse.c b/cl_parse.c index 2b00f74e..9eed5a6c 100644 --- a/cl_parse.c +++ b/cl_parse.c @@ -167,7 +167,7 @@ cvar_t cl_sound_ric3 = {0, "cl_sound_ric3", "weapons/ric3.wav", "sound to play w cvar_t cl_sound_r_exp3 = {0, "cl_sound_r_exp3", "weapons/r_exp3.wav", "sound to play during TE_EXPLOSION and related effects (empty cvar disables sound)"}; cvar_t cl_serverextension_download = {0, "cl_serverextension_download", "0", "indicates whether the server supports the download command"}; cvar_t cl_joinbeforedownloadsfinish = {0, "cl_joinbeforedownloadsfinish", "1", "if non-zero the game will begin after the map is loaded before other downloads finish"}; -cvar_t cl_nettimesyncmode = {0, "cl_nettimesyncmode", "1", "selects method of time synchronization in client with regard to server packets, values are: 0 = no sync, 1 = exact sync (reset timing each packet), 2 = loose sync (reset timing only if it is out of bounds), 3 = tight sync and bounding, 4 = bounded loose sync (reset if significantly wrong, otherwise bound)"}; +cvar_t cl_nettimesyncmode = {0, "cl_nettimesyncmode", "5", "selects method of time synchronization in client with regard to server packets, values are: 0 = no sync, 1 = exact sync (reset timing each packet), 2 = loose sync (reset timing only if it is out of bounds), 3 = tight sync and bounding, 4 = bounded loose sync (reset if significantly wrong, otherwise bound), 5 = loose sync with low tolerance (reset timing if slightly out of bounds)"}; cvar_t cl_iplog_name = {CVAR_SAVE, "cl_iplog_name", "darkplaces_iplog.txt", "name of iplog file containing player addresses for iplog_list command and automatic ip logging when parsing status command"}; static qboolean QW_CL_CheckOrDownloadFile(const char *filename); @@ -2782,7 +2782,7 @@ static void CL_NetworkTimeReceived(double newtime) } if (cl_nettimesyncmode.integer == 2) { - if (cl.time < cl.mtime[1] || cl.time > cl.mtime[0] + (cl.mtime[0] - cl.mtime[1])) + if (cl.time < cl.mtime[1] || cl.time > cl.mtime[0]) cl.time = cl.mtime[1]; } else if (cl_nettimesyncmode.integer == 4) @@ -2793,6 +2793,11 @@ static void CL_NetworkTimeReceived(double newtime) // clamp it to the valid range cl.time = bound(cl.mtime[1], cl.time, cl.mtime[0]); } + else if (cl_nettimesyncmode.integer == 5) + { + if (cl.time < cl.mtime[1] || cl.time > cl.mtime[1] + (cl.mtime[0] - cl.mtime[1]) / (8.0)) + cl.time = cl.mtime[1]; + } else if (cl_nettimesyncmode.integer) cl.time = cl.mtime[1]; } -- 2.39.2