summaryrefslogtreecommitdiff
path: root/source/sv_main.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2007-09-23 14:21:49 +0000
committerAndrey Nazarov <skuller@skuller.net>2007-09-23 14:21:49 +0000
commit7a907ce614e61c67097013a773e42e07b7c46fcc (patch)
tree01900d417db8ce68b5d0e3b14cb68c581c166173 /source/sv_main.c
parent8cb1f3121ea0120217d28d48221e9bf6529d073c (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.c17
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