diff options
author | Andrey Nazarov <skuller@skuller.net> | 2007-09-23 14:21:49 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2007-09-23 14:21:49 +0000 |
commit | 7a907ce614e61c67097013a773e42e07b7c46fcc (patch) | |
tree | 01900d417db8ce68b5d0e3b14cb68c581c166173 /source/sv_main.c | |
parent | 8cb1f3121ea0120217d28d48221e9bf6529d073c (diff) |
Fixed sv_paused not being reset in some situations which lead to
stalled server connects when listen server is running.
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 |