diff --git a/changelog.txt b/changelog.txt index 130ce14..07022e6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -25,6 +25,10 @@ chg: with r_backend GL3, depth fade with MSAA now requires GLSL 4.00 at a minimu chg: with r_backend GL3, alpha to coverage now requires GLSL 4.00 at a minimum +fix: the nextdemo variable wasn't used to start the playback of a new demo when: + - a drop error happened during demo playback + - the engine failed to open the current demo file + fix: the Linux/FreeBSD client could crash during start-up fix: with r_backend D3D11, the alpha channel's blend factors now match the original Q3 behavior diff --git a/code/client/cl_main.cpp b/code/client/cl_main.cpp index 0889328..e5be06d 100644 --- a/code/client/cl_main.cpp +++ b/code/client/cl_main.cpp @@ -375,6 +375,7 @@ void CL_PlayDemo_f() CL_WalkDemoExt( demoPath, &fh ); if ( fh == 0 ) { Com_Printf( "Couldn't open demo %s\n", demoPath ); + CL_NextDemo(); return; } diff --git a/code/qcommon/common.cpp b/code/qcommon/common.cpp index ed64f1d..03d2e08 100644 --- a/code/qcommon/common.cpp +++ b/code/qcommon/common.cpp @@ -308,10 +308,10 @@ void QDECL Com_ErrorExt( int code, int module, qbool realError, const char *fmt, const qbool demo = CL_DemoPlaying(); CL_Disconnect( qtrue ); CL_FlushMemory(); // shuts down the VMs and starts them back up - if ( realError ) - CL_ForwardUIError( code == ERR_DROP ? EXT_ERRLEV_DROP : EXT_ERRLEV_DISC, module, com_errorMessage ); - else if ( demo ) + if ( demo && *Cvar_VariableString("nextdemo") != '\0' ) CL_NextDemo(); + else if ( realError ) + CL_ForwardUIError( code == ERR_DROP ? EXT_ERRLEV_DROP : EXT_ERRLEV_DISC, module, com_errorMessage ); #endif com_errorEntered = qfalse; longjmp (abortframe, -1);