summaryrefslogtreecommitdiff
path: root/src/cl_main.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2011-05-26 13:25:08 +0400
committerAndrey Nazarov <skuller@skuller.net>2011-05-26 13:25:08 +0400
commitd7bcacd9fb01162c70f5f44ed9bea360c1ad4be4 (patch)
treea6b2de2fccbea7b703281bd5f61521c3cb1077ff /src/cl_main.c
parentf5624d2154c1aabc67a45c1e82cd25550df33a14 (diff)
Improve client event loop.
Execute command buffers directly inside CL_ProcessEvents. Break sub-msec spin loop when important event occurs.
Diffstat (limited to 'src/cl_main.c')
-rw-r--r--src/cl_main.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cl_main.c b/src/cl_main.c
index 3406d1b..726d177 100644
--- a/src/cl_main.c
+++ b/src/cl_main.c
@@ -2973,13 +2973,11 @@ unsigned CL_Frame( unsigned msec ) {
return UINT_MAX;
}
- CL_ProcessEvents();
-
- Cbuf_Execute( &cl_cmdbuf );
-
main_extra += msec;
cls.realtime += msec;
+ CL_ProcessEvents();
+
ref_frame = phys_frame = qtrue;
switch( sync_mode ) {
case SYNC_FULL:
@@ -3142,9 +3140,9 @@ run_fx:
CL_ProcessEvents
============
*/
-void CL_ProcessEvents( void ) {
+qboolean CL_ProcessEvents( void ) {
if( !cl_running->integer ) {
- return;
+ return qfalse;
}
CL_RunRefresh();
@@ -3164,9 +3162,15 @@ void CL_ProcessEvents( void ) {
CL_PacketEvent();
}
+ // process console and stuffed commands
+ Cbuf_Execute( &cmd_buffer );
+ Cbuf_Execute( &cl_cmdbuf );
+
#if USE_CURL
HTTP_RunDownloads();
#endif
+
+ return cl.sendPacketNow;
}
//============================================================================