From ab101cc2288c382f7480a78f4f849cc65bd5f2e6 Mon Sep 17 00:00:00 2001 From: cloudwalk Date: Tue, 20 Oct 2020 10:58:27 +0000 Subject: [PATCH] Revert "host: Simplify wait timer calculation, removing client/server code from common code" This reverts commit 1dfb76a50d855048ba125cbea61489d39535e7f4. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@13024 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 3 --- host.c | 11 ++++++----- sv_main.c | 12 ++++++------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/cl_main.c b/cl_main.c index 2f99a303..2a2b9976 100644 --- a/cl_main.c +++ b/cl_main.c @@ -2754,9 +2754,6 @@ double CL_Frame (double time) static double wait; int pass1, pass2, pass3; - if(!host_isclient.integer) - return 0; - CL_VM_PreventInformationLeaks(); // get new key events diff --git a/host.c b/host.c index 92537f39..8cf8593d 100644 --- a/host.c +++ b/host.c @@ -363,10 +363,12 @@ double Host_Frame(double time) Mem_CheckSentinelsGlobal(); // if the accumulators haven't become positive yet, wait a while - if(!sv_timer || !cl_timer) - wait = min(cl_timer, sv_timer) * -1000000.0; + if (cls.state == ca_dedicated) + wait = sv_timer * -1000000.0; // dedicated + else if (!sv.active || svs.threaded) + wait = cl_timer * -1000000.0; // connected to server, main menu, or server is on different thread else - wait = max(cl_timer, sv_timer) * -1000000.0; + wait = max(cl_timer, sv_timer) * -1000000.0; // listen server or singleplayer if (!host.restless && wait >= 1) return wait; @@ -387,8 +389,7 @@ static inline void Host_Sleep(double time) time = 1; // because we cast to int time0 = Sys_DirtyTime(); - if (sv_checkforpacketsduringsleep.integer && !sys_usenoclockbutbenchmark.integer && !svs.threaded) - { + if (sv_checkforpacketsduringsleep.integer && !sys_usenoclockbutbenchmark.integer && !svs.threaded) { NetConn_SleepMicroseconds((int)time); if (cls.state != ca_dedicated) NetConn_ClientFrame(); // helps server browser get good ping values diff --git a/sv_main.c b/sv_main.c index d60e98e6..10b321e2 100644 --- a/sv_main.c +++ b/sv_main.c @@ -2480,9 +2480,6 @@ double SV_Frame(double time) char vabuf[1024]; qbool playing = false; - if(!sv.active) - return 0; - if (!svs.threaded) { svs.perf_acc_sleeptime = host.sleeptime; @@ -2525,8 +2522,11 @@ double SV_Frame(double time) * Receive packets on each main loop iteration, as the main loop may * be undersleeping due to select() detecting a new packet */ - NetConn_ServerFrame(); - SV_CheckTimeouts(); + if (sv.active) + { + NetConn_ServerFrame(); + SV_CheckTimeouts(); + } } /* @@ -2545,7 +2545,7 @@ double SV_Frame(double time) sv_timer = 0.1; } - if (sv_timer > 0 && !svs.threaded) + if (sv.active && sv_timer > 0 && !svs.threaded) { /* * Execute one or more server frames, with an upper limit on how much -- 2.39.2