This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.42d in repository iortcw.
commit b55e35ed3935ad3e7db6b04b7c80bb92c5c26f92 Author: m4n4t4...@gmail.com <m4n4t4...@gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a> Date: Tue Jun 10 21:55:29 2014 +0000 Reimplement cl_avidemo command (screenshot method) for backward compatibility --- MP/code/client/cl_main.c | 30 +++++++++++++++++++++--------- SP/code/client/cl_main.c | 30 +++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/MP/code/client/cl_main.c b/MP/code/client/cl_main.c index 50b57fb..4f5231a 100644 --- a/MP/code/client/cl_main.c +++ b/MP/code/client/cl_main.c @@ -93,6 +93,7 @@ cvar_t *cl_timedemoLog; cvar_t *cl_autoRecordDemo; cvar_t *cl_aviFrameRate; cvar_t *cl_aviMotionJpeg; +cvar_t *cl_avidemo; cvar_t *cl_forceavidemo; cvar_t *cl_freelook; @@ -3168,16 +3169,26 @@ void CL_Frame ( int msec ) { } // if recording an avi, lock to a fixed fps - if ( CL_VideoRecording( ) && cl_aviFrameRate->integer && msec) { + if ( ( CL_VideoRecording( ) && cl_aviFrameRate->integer && msec ) || ( cl_avidemo->integer && msec ) ) { // save the current screen - if ( !clc.demoplaying || clc.state == CA_ACTIVE || cl_forceavidemo->integer ) { - float fps = MIN(cl_aviFrameRate->value * com_timescale->value, 1000.0f); - float frameDuration = MAX(1000.0f / fps, 1.0f) + clc.aviVideoFrameRemainder; - - CL_TakeVideoFrame( ); - - msec = (int)frameDuration; - clc.aviVideoFrameRemainder = frameDuration - msec; + if ( clc.state == CA_ACTIVE || cl_forceavidemo->integer ) { + if ( cl_avidemo->integer ) { // Legacy (screenshot) method + Cbuf_ExecuteText( EXEC_NOW, "screenshot silent\n" ); + + // fixed time for next frame + msec = ( 1000 / cl_avidemo->integer ) * com_timescale->value; + if ( msec == 0 ) { + msec = 1; + } + } else { // ioquake3 method + float fps = MIN(cl_aviFrameRate->value * com_timescale->value, 1000.0f); + float frameDuration = MAX(1000.0f / fps, 1.0f) + clc.aviVideoFrameRemainder; + + CL_TakeVideoFrame( ); + + msec = (int)frameDuration; + clc.aviVideoFrameRemainder = frameDuration - msec; + } } } @@ -4007,6 +4018,7 @@ void CL_Init( void ) { cl_autoRecordDemo = Cvar_Get ("cl_autoRecordDemo", "0", CVAR_ARCHIVE); cl_aviFrameRate = Cvar_Get ("cl_aviFrameRate", "25", CVAR_ARCHIVE); cl_aviMotionJpeg = Cvar_Get ("cl_aviMotionJpeg", "1", CVAR_ARCHIVE); + cl_avidemo = Cvar_Get( "cl_avidemo", "0", 0 ); cl_forceavidemo = Cvar_Get( "cl_forceavidemo", "0", 0 ); rconAddress = Cvar_Get( "rconAddress", "", 0 ); diff --git a/SP/code/client/cl_main.c b/SP/code/client/cl_main.c index e39dbdd..fe694ff 100644 --- a/SP/code/client/cl_main.c +++ b/SP/code/client/cl_main.c @@ -84,6 +84,7 @@ cvar_t *cl_timedemoLog; cvar_t *cl_autoRecordDemo; cvar_t *cl_aviFrameRate; cvar_t *cl_aviMotionJpeg; +cvar_t *cl_avidemo; cvar_t *cl_forceavidemo; cvar_t *cl_freelook; @@ -2970,16 +2971,26 @@ void CL_Frame( int msec ) { } // if recording an avi, lock to a fixed fps - if ( CL_VideoRecording( ) && cl_aviFrameRate->integer && msec) { + if ( ( CL_VideoRecording( ) && cl_aviFrameRate->integer && msec ) || ( cl_avidemo->integer && msec ) ) { // save the current screen - if ( !clc.demoplaying || clc.state == CA_ACTIVE || cl_forceavidemo->integer ) { - float fps = MIN(cl_aviFrameRate->value * com_timescale->value, 1000.0f); - float frameDuration = MAX(1000.0f / fps, 1.0f) + clc.aviVideoFrameRemainder; - - CL_TakeVideoFrame( ); - - msec = (int)frameDuration; - clc.aviVideoFrameRemainder = frameDuration - msec; + if ( clc.state == CA_ACTIVE || cl_forceavidemo->integer ) { + if ( cl_avidemo->integer ) { // Legacy (screenshot) method + Cbuf_ExecuteText( EXEC_NOW, "screenshot silent\n" ); + + // fixed time for next frame + msec = ( 1000 / cl_avidemo->integer ) * com_timescale->value; + if ( msec == 0 ) { + msec = 1; + } + } else { // ioquake3 method + float fps = MIN(cl_aviFrameRate->value * com_timescale->value, 1000.0f); + float frameDuration = MAX(1000.0f / fps, 1.0f) + clc.aviVideoFrameRemainder; + + CL_TakeVideoFrame( ); + + msec = (int)frameDuration; + clc.aviVideoFrameRemainder = frameDuration - msec; + } } } @@ -3673,6 +3684,7 @@ void CL_Init( void ) { cl_autoRecordDemo = Cvar_Get ("cl_autoRecordDemo", "0", CVAR_ARCHIVE); cl_aviFrameRate = Cvar_Get ("cl_aviFrameRate", "25", CVAR_ARCHIVE); cl_aviMotionJpeg = Cvar_Get ("cl_aviMotionJpeg", "1", CVAR_ARCHIVE); + cl_avidemo = Cvar_Get( "cl_avidemo", "0", 0 ); cl_forceavidemo = Cvar_Get( "cl_forceavidemo", "0", 0 ); rconAddress = Cvar_Get( "rconAddress", "", 0 ); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git _______________________________________________ Pkg-games-commits mailing list Pkg-games-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits