diff options
author | Andrey Nazarov <skuller@skuller.net> | 2008-02-14 18:12:41 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2008-02-14 18:12:41 +0000 |
commit | a5afaf65af8ef50d1ce8bbd9e2133239013c26f7 (patch) | |
tree | 699e5d4a3402ef403d98697f8b1e423036783c10 /source/cl_main.c | |
parent | 5fb93fcf0ba8877e8bda060370d2c722494971f5 (diff) |
Stop client demo recording when `changing' command is received.
Prevent cl.time calculations from overflowing on high server frames.
Diffstat (limited to 'source/cl_main.c')
-rw-r--r-- | source/cl_main.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/source/cl_main.c b/source/cl_main.c index eab6301..ad40c38 100644 --- a/source/cl_main.c +++ b/source/cl_main.c @@ -989,6 +989,9 @@ static void CL_Changing_f( void ) { return; } + if ( cls.demorecording ) + CL_Stop_f(); + S_StopAllSounds(); Com_Printf( "Changing map...\n" ); @@ -2463,23 +2466,21 @@ CL_CheatsOK ================== */ qboolean CL_CheatsOK( void ) { - if ( cls.state < ca_connected ) { + if( cls.state < ca_connected || cls.demoplayback ) { return qtrue; } - if ( cls.demoplayback ) { - return qtrue; + if( !sv_running->integer ) { + return qfalse; } // developer option - if ( sv_running->integer ) { - if( sv_running->integer != ss_game || Cvar_VariableInteger( "cheats" ) ) { - return qtrue; - } + if( Cvar_VariableInteger( "cheats" ) ) { + return qtrue; } // single player can cheat - if ( atoi( cl.configstrings[ CS_MAXCLIENTS ] ) < 2 ) { + if( cls.state > ca_connected && cl.maxclients < 2 ) { return qtrue; } @@ -2504,16 +2505,16 @@ static void CL_SetClientTime( void ) { int prevtime; if( com_timedemo->integer ) { - cl.time = cl.serverTime; + cl.time = cl.servertime; cl.lerpfrac = 1.0f; return; } - prevtime = cl.serverTime - cl.frametime; - if( cl.time > cl.serverTime ) { + prevtime = cl.servertime - cl.frametime; + if( cl.time > cl.servertime ) { if( cl_showclamp->integer ) - Com_Printf( "high clamp %i\n", cl.time - cl.serverTime ); - cl.time = cl.serverTime; + Com_Printf( "high clamp %i\n", cl.time - cl.servertime ); + cl.time = cl.servertime; cl.lerpfrac = 1.0f; } else if( cl.time < prevtime ) { if( cl_showclamp->integer ) |