#include <time.h>
#include "libcurl.h"
-#ifdef CONFIG_CD
#include "cdaudio.h"
-#endif
#include "cl_video.h"
#include "progsvm.h"
#include "csprogs.h"
Host_Init();
realtime = 0;
+ host_dirtytime = Sys_DirtyTime();
for (;;)
{
if (setjmp(host_abortframe))
wait = 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)wait);
+ if (cls.state != ca_dedicated)
+ NetConn_ClientFrame(); // helps server browser get good ping values
+ // TODO can we do the same for ServerFrame? Probably not.
+ }
else
Sys_Sleep((int)wait);
delta = Sys_DirtyTime() - time0;
R_TimeReport("client");
CL_UpdateScreen();
+ CL_MeshEntities_Reset();
R_TimeReport("render");
if (host_speeds.integer)
else
S_Update(&r_refdef.view.matrix);
-#ifdef CONFIG_CD
CDAudio_Update();
R_TimeReport("audio");
-#endif
// reset gathering of mouse input
in_mouse_x = in_mouse_y = 0;
// make sure we open sockets before opening video because the Windows Firewall "unblock?" dialog can screw up the graphics context on some graphics drivers
NetConn_UpdateSockets();
VID_Start();
-#ifdef CONFIG_CD
CDAudio_Startup();
-#endif
}
}
VID_Init();
Render_Init();
S_Init();
-#ifdef CONFIG_CD
CDAudio_Init();
-#endif
Key_Init();
CL_Init();
}
Host_SaveConfig();
-#ifdef CONFIG_CD
CDAudio_Shutdown ();
-#endif
S_Terminate ();
Curl_Shutdown ();
NetConn_Shutdown ();