diff options
Diffstat (limited to 'source/sv_main.c')
-rw-r--r-- | source/sv_main.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/source/sv_main.c b/source/sv_main.c index b850bf8..879ef59 100644 --- a/source/sv_main.c +++ b/source/sv_main.c @@ -1334,24 +1334,29 @@ static void SV_RunGameFrame( void ) { static qboolean SV_CheckPaused( void ) { client_t *client; - sv_paused->integer = 0; if( sv.state == ss_broadcast ) { - cl_paused->integer = 0; - return qfalse; // never pause in MVD client mode + goto nopause; // never pause in MVD client mode } + if( cl_paused->integer ) { FOR_EACH_CLIENT( client ) { if( client->state != cs_spawned ) { break; // never pause if loading } if( !NET_IsLocalAddress( &client->netchan->remote_address ) ) { - cl_paused->integer = 0; - return qfalse; // never pause in multiplayer + goto nopause; // never pause in multiplayer } } - sv_paused->integer = 1; + if( !sv_paused->integer ) { + Cvar_Set( "sv_paused", "1" ); + } return qtrue; // don't run if paused } + +nopause: + if( sv_paused->integer ) { + Cvar_Set( "sv_paused", "0" ); + } return qfalse; } #endif |