aborts the current host frame and goes on with the next one
================
*/
+void Host_AbortCurrentFrame(void) DP_FUNC_NORETURN;
void Host_AbortCurrentFrame(void)
{
// in case we were previously nice, make us mean again
double wait;
int pass1, pass2, pass3, i;
char vabuf[1024];
+ qboolean playing;
Host_Init();
realtime = 0;
- dirtytime = Sys_DirtyTime();
for (;;)
{
if (setjmp(host_abortframe))
if(host_client->spawned)
if(host_client->netconnection)
playing = true;
- if(svs.perf_acc_realtime > 5)
+ if(sv.time < 10)
+ {
+ // don't accumulate time for the first 10 seconds of a match
+ // so things can settle
+ svs.perf_acc_realtime = svs.perf_acc_sleeptime = svs.perf_acc_lost = svs.perf_acc_offset = svs.perf_acc_offset_squared = svs.perf_acc_offset_max = svs.perf_acc_offset_samples = 0;
+ }
+ else if(svs.perf_acc_realtime > 5)
{
svs.perf_cpuload = 1 - svs.perf_acc_sleeptime / svs.perf_acc_realtime;
svs.perf_lost = svs.perf_acc_lost / svs.perf_acc_realtime;
SV_SendClientMessages();
if (sv.paused == 1 && realtime > sv.pausedstart && sv.pausedstart > 0) {
- prog->globals.generic[OFS_PARM0] = realtime - sv.pausedstart;
+ prog->globals.fp[OFS_PARM0] = realtime - sv.pausedstart;
PRVM_serverglobalfloat(time) = sv.time;
prog->ExecuteProgram(prog, PRVM_serverfunction(SV_PausedTic), "QC function SV_PausedTic is missing");
}
if (cls.demopaused)
clframetime = 0;
}
+ else
+ {
+ // host_framerate overrides all else
+ if (host_framerate.value)
+ clframetime = host_framerate.value;
- // host_framerate overrides all else
- if (host_framerate.value)
- clframetime = host_framerate.value;
-
- if (cl.paused || (cl.islocalgame && (key_dest != key_game || key_consoleactive || cl.csqc_paused)))
- clframetime = 0;
+ if (cl.paused || (cl.islocalgame && (key_dest != key_game || key_consoleactive || cl.csqc_paused)))
+ clframetime = 0;
+ }
if (cls.timedemo)
clframetime = cl.realframetime = cl_timer;
}
// put up the loading image so the user doesn't stare at a black screen...
- SCR_BeginLoadingPlaque();
+ SCR_BeginLoadingPlaque(true);
if (cls.state != ca_dedicated)
{