diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cl_main.c | 16 | ||||
-rw-r--r-- | src/cl_public.h | 2 | ||||
-rw-r--r-- | src/common.c | 7 | ||||
-rw-r--r-- | src/sv_main.c | 5 |
4 files changed, 19 insertions, 11 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; } //============================================================================ diff --git a/src/cl_public.h b/src/cl_public.h index 4c65705..223771c 100644 --- a/src/cl_public.h +++ b/src/cl_public.h @@ -47,7 +47,7 @@ typedef enum { ACT_ACTIVATED } active_t; -void CL_ProcessEvents( void ); +qboolean CL_ProcessEvents( void ); #if USE_ICMP void CL_ErrorEvent( void ); #endif diff --git a/src/common.c b/src/common.c index adb384e..ffe22ed 100644 --- a/src/common.c +++ b/src/common.c @@ -2134,9 +2134,11 @@ void Qcommon_Frame( void ) { // spin until msec is non-zero if running a client if( !dedicated->integer && !com_timedemo->integer ) { while( msec < 1 ) { - CL_ProcessEvents(); + qboolean break_now = CL_ProcessEvents(); com_eventTime = Sys_Milliseconds(); msec = com_eventTime - oldtime; + if( break_now ) + break; } } #endif @@ -2200,9 +2202,6 @@ void Qcommon_Frame( void ) { all, ev, sv, gm, cl, rf ); } #endif - - // this is the only place where console commands are processed. - Cbuf_Execute( &cmd_buffer ); } /* diff --git a/src/sv_main.c b/src/sv_main.c index 9ede239..2517779 100644 --- a/src/sv_main.c +++ b/src/sv_main.c @@ -1622,6 +1622,11 @@ unsigned SV_Frame( unsigned msec ) { // advance local server time svs.realtime += msec; + if( Com_IsDedicated() ) { + // process console commands if not running a client + Cbuf_Execute( &cmd_buffer ); + } + #if USE_MVD_CLIENT // run connections to MVD/GTV servers MVD_Frame(); |