This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.5a in repository iortcw.
commit 74b5c8fb39e21fc4dcf272d04c20640fddb7635e Author: MAN-AT-ARMS <[email protected]> Date: Fri Oct 28 13:52:39 2016 -0400 All: Fix removing/creating PID file for base game when switching to/from mods Use ioquake3 fix --- MP/code/qcommon/files.c | 21 +++++++++++++++++---- MP/code/sys/sys_main.c | 7 +------ SP/code/qcommon/files.c | 21 +++++++++++++++++---- SP/code/sys/sys_main.c | 7 +------ 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/MP/code/qcommon/files.c b/MP/code/qcommon/files.c index 174540b..603550e 100644 --- a/MP/code/qcommon/files.c +++ b/MP/code/qcommon/files.c @@ -308,6 +308,8 @@ static char *fs_serverReferencedPakNames[MAX_SEARCH_PATHS]; // pk3 names // last valid game folder used char lastValidBase[MAX_OSPATH]; +char lastValidComBaseGame[MAX_OSPATH]; +char lastValidFsBaseGame[MAX_OSPATH]; char lastValidGame[MAX_OSPATH]; #ifdef FS_MISSING @@ -4231,6 +4233,8 @@ void FS_InitFilesystem( void ) { #endif Q_strncpyz( lastValidBase, fs_basepath->string, sizeof( lastValidBase ) ); + Q_strncpyz( lastValidComBaseGame, com_basegame->string, sizeof( lastValidComBaseGame ) ); + Q_strncpyz( lastValidFsBaseGame, fs_basegame->string, sizeof( lastValidFsBaseGame ) ); Q_strncpyz( lastValidGame, fs_gamedirvar->string, sizeof( lastValidGame ) ); } @@ -4241,6 +4245,7 @@ FS_Restart ================ */ void FS_Restart( int checksumFeed ) { + const char *lastGameDir; // free anything we currently have loaded FS_Shutdown( qfalse ); @@ -4267,8 +4272,12 @@ void FS_Restart( int checksumFeed ) { if ( lastValidBase[0] ) { FS_PureServerSetLoadedPaks( "", "" ); Cvar_Set( "fs_basepath", lastValidBase ); - Cvar_Set("fs_game", lastValidGame); + Cvar_Set( "com_basegame", lastValidComBaseGame ); + Cvar_Set( "fs_basegame", lastValidFsBaseGame ); + Cvar_Set( "fs_game", lastValidGame ); lastValidBase[0] = '\0'; + lastValidComBaseGame[0] = '\0'; + lastValidFsBaseGame[0] = '\0'; lastValidGame[0] = '\0'; FS_Restart( checksumFeed ); Com_Error( ERR_DROP, "Invalid game folder" ); @@ -4277,9 +4286,11 @@ void FS_Restart( int checksumFeed ) { Com_Error( ERR_FATAL, "Couldn't load default.cfg" ); } - if ( Q_stricmp( fs_gamedirvar->string, lastValidGame ) ) { - Sys_RemovePIDFile( lastValidGame ); - Sys_InitPIDFile( fs_gamedirvar->string ); + lastGameDir = ( lastValidGame[0] ) ? lastValidGame : lastValidComBaseGame; + + if ( Q_stricmp( FS_GetCurrentGameDir(), lastGameDir ) ) { + Sys_RemovePIDFile( lastGameDir ); + Sys_InitPIDFile( FS_GetCurrentGameDir() ); // skip the wolfconfig.cfg if "safe" is on the command line if ( !Com_SafeMode() ) { @@ -4288,6 +4299,8 @@ void FS_Restart( int checksumFeed ) { } Q_strncpyz( lastValidBase, fs_basepath->string, sizeof( lastValidBase ) ); + Q_strncpyz( lastValidComBaseGame, com_basegame->string, sizeof( lastValidComBaseGame ) ); + Q_strncpyz( lastValidFsBaseGame, fs_basegame->string, sizeof( lastValidFsBaseGame ) ); Q_strncpyz( lastValidGame, fs_gamedirvar->string, sizeof( lastValidGame ) ); } diff --git a/MP/code/sys/sys_main.c b/MP/code/sys/sys_main.c index ce607f6..b4181da 100644 --- a/MP/code/sys/sys_main.c +++ b/MP/code/sys/sys_main.c @@ -184,12 +184,7 @@ Sys_RemovePIDFile */ void Sys_RemovePIDFile( const char *gamedir ) { - char *pidFile; - - if ( gamedir[0] == '\0' ) - pidFile = Sys_PIDFileName( BASEGAME ); - else - pidFile = Sys_PIDFileName( gamedir ); + char *pidFile = Sys_PIDFileName( gamedir ); if( pidFile != NULL ) remove( pidFile ); diff --git a/SP/code/qcommon/files.c b/SP/code/qcommon/files.c index 6cd6706..340b105 100644 --- a/SP/code/qcommon/files.c +++ b/SP/code/qcommon/files.c @@ -334,6 +334,8 @@ static char *fs_serverReferencedPakNames[MAX_SEARCH_PATHS]; // pk3 names // last valid game folder used char lastValidBase[MAX_OSPATH]; +char lastValidComBaseGame[MAX_OSPATH]; +char lastValidFsBaseGame[MAX_OSPATH]; char lastValidGame[MAX_OSPATH]; #ifdef FS_MISSING @@ -4242,6 +4244,8 @@ void FS_InitFilesystem( void ) { } Q_strncpyz( lastValidBase, fs_basepath->string, sizeof( lastValidBase ) ); + Q_strncpyz( lastValidComBaseGame, com_basegame->string, sizeof( lastValidComBaseGame ) ); + Q_strncpyz( lastValidFsBaseGame, fs_basegame->string, sizeof( lastValidFsBaseGame ) ); Q_strncpyz( lastValidGame, fs_gamedirvar->string, sizeof( lastValidGame ) ); } @@ -4252,6 +4256,7 @@ FS_Restart ================ */ void FS_Restart( int checksumFeed ) { + const char *lastGameDir; // free anything we currently have loaded FS_Shutdown( qfalse ); @@ -4278,8 +4283,12 @@ void FS_Restart( int checksumFeed ) { if ( lastValidBase[0] ) { FS_PureServerSetLoadedPaks( "", "" ); Cvar_Set( "fs_basepath", lastValidBase ); - Cvar_Set("fs_game", lastValidGame); + Cvar_Set( "com_basegame", lastValidComBaseGame ); + Cvar_Set( "fs_basegame", lastValidFsBaseGame ); + Cvar_Set( "fs_game", lastValidGame ); lastValidBase[0] = '\0'; + lastValidComBaseGame[0] = '\0'; + lastValidFsBaseGame[0] = '\0'; lastValidGame[0] = '\0'; FS_Restart( checksumFeed ); Com_Error( ERR_DROP, "Invalid game folder" ); @@ -4288,9 +4297,11 @@ void FS_Restart( int checksumFeed ) { Com_Error( ERR_FATAL, "Couldn't load default.cfg" ); } - if ( Q_stricmp( fs_gamedirvar->string, lastValidGame ) ) { - Sys_RemovePIDFile( lastValidGame ); - Sys_InitPIDFile( fs_gamedirvar->string ); + lastGameDir = ( lastValidGame[0] ) ? lastValidGame : lastValidComBaseGame; + + if ( Q_stricmp( FS_GetCurrentGameDir(), lastGameDir ) ) { + Sys_RemovePIDFile( lastGameDir ); + Sys_InitPIDFile( FS_GetCurrentGameDir() ); // skip the wolfconfig.cfg if "safe" is on the command line if ( !Com_SafeMode() ) { @@ -4299,6 +4310,8 @@ void FS_Restart( int checksumFeed ) { } Q_strncpyz( lastValidBase, fs_basepath->string, sizeof( lastValidBase ) ); + Q_strncpyz( lastValidComBaseGame, com_basegame->string, sizeof( lastValidComBaseGame ) ); + Q_strncpyz( lastValidFsBaseGame, fs_basegame->string, sizeof( lastValidFsBaseGame ) ); Q_strncpyz( lastValidGame, fs_gamedirvar->string, sizeof( lastValidGame ) ); } diff --git a/SP/code/sys/sys_main.c b/SP/code/sys/sys_main.c index fac8197..d24f402 100644 --- a/SP/code/sys/sys_main.c +++ b/SP/code/sys/sys_main.c @@ -184,12 +184,7 @@ Sys_RemovePIDFile */ void Sys_RemovePIDFile( const char *gamedir ) { - char *pidFile; - - if ( gamedir[0] == '\0' ) - pidFile = Sys_PIDFileName( BASEGAME ); - else - pidFile = Sys_PIDFileName( gamedir ); + char *pidFile = Sys_PIDFileName( gamedir ); if( pidFile != NULL ) remove( pidFile ); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

