Merge branch 'nomagicpath' into 'master'
authorMario <zacjardine@y7mail.com>
Sun, 29 Apr 2018 14:27:43 +0000 (14:27 +0000)
committerMario <zacjardine@y7mail.com>
Sun, 29 Apr 2018 14:27:43 +0000 (14:27 +0000)
q3map2: disable magic path guess

See merge request xonotic/netradiant!90

tools/quake3/q3map2/help.c
tools/quake3/q3map2/path_init.c

index 17b2117..e253720 100644 (file)
@@ -356,7 +356,8 @@ void HelpCommon()
                {"-fs_game <gamename>", "Sets a different game directory name (default for Q3A: baseq3, can be used more than once)"},
                {"-fs_homebase <dir>", "Specifies where the user home directory name is on Linux (default for Q3A: .q3a)"},
                {"-fs_homepath <path>", "Sets the given path as home directory name"},
-               {"-fs_nobasepath", "Do not load base paths in VFS"},
+               {"-fs_nobasepath", "Do not load base paths in VFS, imply -fs_nomagicpath"},
+               {"-fs_nomagicpath", "Do not try to guess base path magically"},
                {"-fs_nohomepath", "Do not load home path in VFS"},
                {"-fs_pakpath <path>", "Specify a package directory (can be used more than once to look in multiple paths)"},
                {"-game <gamename>", "Load settings for the given game (default: quake3)"},
index ef346f7..80cdbca 100644 (file)
@@ -409,6 +409,7 @@ void InitPaths( int *argc, char **argv ){
 
        int noBasePath = 0;
        int noHomePath = 0;
+       int noMagicPath = 0;
 
        /* note it */
        Sys_FPrintf( SYS_VRB, "--- InitPaths ---\n" );
@@ -459,9 +460,17 @@ void InitPaths( int *argc, char **argv ){
                /* -fs_nobasepath */
                else if ( strcmp( argv[ i ], "-fs_nobasepath" ) == 0 ) {
                        noBasePath = 1;
+                       // we don't want any basepath, neither guessed ones
+                       noMagicPath = 1;
                        argv[ i ] = NULL;
                }               
 
+               /* -fs_nomagicpath */
+               else if ( strcmp( argv[ i ], "-fs_nomagicpath") == 0) {
+                       noMagicPath = 1;
+                       argv[ i ] = NULL;
+               }
+
                /* -fs_basepath */
                else if ( strcmp( argv[ i ], "-fs_basepath" ) == 0 ) {
                        if ( ++i >= *argc ) {
@@ -528,7 +537,6 @@ void InitPaths( int *argc, char **argv ){
                        AddPakPath( argv[ i ] );
                        argv[ i ] = NULL;
                }
-
        }
 
        /* remove processed arguments */
@@ -545,8 +553,8 @@ void InitPaths( int *argc, char **argv ){
        /* add standard game path */
        AddGamePath( game->gamePath );
 
-       /* if there is no base path set, figure it out */
-       if ( numBasePaths == 0 && noBasePath == 0 ) {
+       /* if there is no base path set, figure it out unless fs_nomagicpath is set */
+       if ( numBasePaths == 0 && noBasePath == 0 && noMagicPath == 0 ) {
                /* this is another crappy replacement for SetQdirFromPath() */
                len2 = strlen( game->magic );
                for ( i = 0; i < *argc && numBasePaths == 0; i++ )