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 16a7af1ba0d97830339c243bd3a62250eedcdaf8
Author: zturtle...@gmail.com 
<zturtle...@gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date:   Sun May 4 00:45:46 2014 +0000

    MP: Don't load unzipped dlls from homepath
    
    Unzipped dlls in homepath are extracted from pk3s. Ignore them. If dlls are 
found in a pk3, the ones on disk in homepath will be checked/overwritten and 
then used. This way unpure VMs can be choosen based on pk3s, which may have 
QVMs that should override DLLs if vm_xxx 2.
---
 MP/code/qcommon/files.c   | 20 +++++++++++---------
 MP/code/qcommon/qcommon.h |  2 +-
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/MP/code/qcommon/files.c b/MP/code/qcommon/files.c
index 204ceff..0922b2e 100644
--- a/MP/code/qcommon/files.c
+++ b/MP/code/qcommon/files.c
@@ -233,6 +233,7 @@ typedef struct {
        char path[MAX_OSPATH];              // c:\quake3
        char            fullpath[MAX_OSPATH];           // c:\quake3\baseq3
        char gamedir[MAX_OSPATH];           // baseq3
+       qboolean        allowUnzippedDLLs;              // whether to load 
unzipped dlls from directory
 } directory_t;
 
 typedef struct searchpath_s {
@@ -1550,7 +1551,7 @@ int FS_FindVM(void **startSearch, char *found, int 
foundlen, const char *name, q
                                return VMI_COMPILED;
                        }
 
-                       if(FS_FileInPathExists(netpath))
+                       if(dir->allowUnzippedDLLs && 
FS_FileInPathExists(netpath))
                        {
                                Q_strncpyz(found, netpath, foundlen);
                                *startSearch = search;
@@ -3144,7 +3145,7 @@ then loads the zip headers
 ================
 */
 #define MAX_PAKFILES    1024
-void FS_AddGameDirectory( const char *path, const char *dir ) {
+void FS_AddGameDirectory( const char *path, const char *dir, qboolean 
allowUnzippedDLLs ) {
        searchpath_t    *sp;
        int i;
        searchpath_t    *search;
@@ -3233,6 +3234,7 @@ void FS_AddGameDirectory( const char *path, const char 
*dir ) {
        Q_strncpyz(search->dir->path, path, sizeof(search->dir->path));
        Q_strncpyz(search->dir->fullpath, curpath, 
sizeof(search->dir->fullpath));
        Q_strncpyz(search->dir->gamedir, dir, sizeof(search->dir->gamedir));
+       search->dir->allowUnzippedDLLs = allowUnzippedDLLs;
 
        search->next = fs_searchpaths;
        fs_searchpaths = search;
@@ -3518,7 +3520,7 @@ static void FS_Startup( const char *gameName ) {
 
        // add search path elements in reverse priority order
        if ( fs_basepath->string[0] ) {
-               FS_AddGameDirectory( fs_basepath->string, gameName );
+               FS_AddGameDirectory( fs_basepath->string, gameName, qtrue );
        }
        // fs_homepath is somewhat particular to *nix systems, only add if 
relevant
        
@@ -3526,32 +3528,32 @@ static void FS_Startup( const char *gameName ) {
        fs_apppath = Cvar_Get ("fs_apppath", Sys_DefaultAppPath(), 
CVAR_INIT|CVAR_PROTECTED );
        // Make MacOSX also include the base path included with the .app bundle
        if (fs_apppath->string[0])
-               FS_AddGameDirectory(fs_apppath->string, gameName);
+               FS_AddGameDirectory(fs_apppath->string, gameName, qtrue);
        #endif
        
        // NOTE: same filtering below for mods and basegame
        if (fs_homepath->string[0] && 
Q_stricmp(fs_homepath->string,fs_basepath->string)) {
                FS_CreatePath ( fs_homepath->string );
-               FS_AddGameDirectory( fs_homepath->string, gameName );
+               FS_AddGameDirectory( fs_homepath->string, gameName, qfalse );
        }
 
        // check for additional base game so mods can be based upon other mods
        if ( fs_basegame->string[0] && Q_stricmp( fs_basegame->string, gameName 
) ) {
                if ( fs_basepath->string[0] ) {
-                       FS_AddGameDirectory( fs_basepath->string, 
fs_basegame->string );
+                       FS_AddGameDirectory( fs_basepath->string, 
fs_basegame->string, qtrue );
                }
                if ( fs_homepath->string[0] && Q_stricmp( 
fs_homepath->string,fs_basepath->string ) ) {
-                       FS_AddGameDirectory( fs_homepath->string, 
fs_basegame->string );
+                       FS_AddGameDirectory( fs_homepath->string, 
fs_basegame->string, qfalse );
                }
        }
 
        // check for additional game folder for mods
        if ( fs_gamedirvar->string[0] && Q_stricmp( fs_gamedirvar->string, 
gameName ) ) {
                if ( fs_basepath->string[0] ) {
-                       FS_AddGameDirectory( fs_basepath->string, 
fs_gamedirvar->string );
+                       FS_AddGameDirectory( fs_basepath->string, 
fs_gamedirvar->string, qtrue );
                }
                if ( fs_homepath->string[0] && Q_stricmp( 
fs_homepath->string,fs_basepath->string ) ) {
-                       FS_AddGameDirectory( fs_homepath->string, 
fs_gamedirvar->string );
+                       FS_AddGameDirectory( fs_homepath->string, 
fs_gamedirvar->string, qfalse );
                }
        }
 
diff --git a/MP/code/qcommon/qcommon.h b/MP/code/qcommon/qcommon.h
index 3626fa8..321b42a 100644
--- a/MP/code/qcommon/qcommon.h
+++ b/MP/code/qcommon/qcommon.h
@@ -676,7 +676,7 @@ qboolean FS_ConditionalRestart(int checksumFeed, qboolean 
disconnect);
 void    FS_Restart( int checksumFeed );
 // shutdown and restart the filesystem so changes to fs_gamedir can take effect
 
-void FS_AddGameDirectory( const char *path, const char *dir );
+void FS_AddGameDirectory( const char *path, const char *dir, qboolean 
allowUnzippedDLLs );
 
 char    **FS_ListFiles( const char *directory, const char *extension, int 
*numfiles );
 // directory should not have either a leading or trailing /

-- 
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

Reply via email to