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

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

@@@ -101,7 -101,7 +101,7 @@@ void HelpBsp(
                {"-flat", "Enable flat shading (good for combining with -celshader)"},
                {"-fulldetail", "Treat detail brushes as structural ones"},
                {"-leaktest", "Abort if a leak was found"},
 -              {"-linefile <filename.lin>", "Line file to write"},
 +              {"-linfile <filename.lin>", "Line file to write"},
                {"-meta", "Combine adjacent triangles of the same texture to surfaces (ALWAYS USE THIS)"},
                {"-minsamplesize <N>", "Sets minimum lightmap resolution in luxels/qu"},
                {"-mi <N>", "Sets the maximum number of indexes per surface"},
@@@ -137,7 -137,6 +137,7 @@@ void HelpVis(
        struct HelpOption vis[] = {
                {"-vis <filename.map>", "Switch that enters this stage"},
                {"-fast", "Very fast and crude vis calculation"},
 +              {"-hint", "Merge all but hint portals"},
                {"-mergeportals", "The less crude half of `-merge`, makes vis sometimes much faster but doesn't hurt fps usually"},
                {"-merge", "Faster but still okay vis calculation"},
                {"-nopassage", "Just use PortalFlow vis (usually less fps)"},
@@@ -207,8 -206,6 +207,8 @@@ void HelpLight(
                {"-gridscale <F>", "Scaling factor for the light grid only"},
                {"-keeplights", "Keep light entities in the BSP file after compile"},
                {"-lightmapdir <directory>", "Directory to store external lightmaps (default: same as map name without extension)"},
 +              {"-lightmapsearchblocksize <N>", "Restrict lightmap search to block size <N>"},
 +              {"-lightmapsearchpower <N>", "Optimize for lightmap merge power <N>"},
                {"-lightmapsize <N>", "Size of lightmaps to generate (must be a power of two)"},
                {"-lightsubdiv <N>", "Size of light emitting shader subdivision"},
                {"-lomem", "Low memory but slower lighting mode"},
@@@ -356,7 -353,8 +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)"},
@@@ -101,7 -101,7 +101,7 @@@ char *LokiGetHomeDir( void )
   */
  
  void LokiInitPaths( char *argv0 ){
 -      char        *home;
 +      char *home;
  
        if ( !homePath ) {
                /* get home dir */
        /* this is kinda crap, but hey */
        strcpy( installPath, "../" );
        #else
 +
        char temp[ MAX_OS_PATH ];
 -      char        *path;
 -      char        *last;
 +      char *path;
 +      char *last;
        qboolean found;
  
  
                                path++;
                        }
  
 -
                        /* concatenate */
                        if ( last > ( path + 1 ) ) {
                                // +1 hack: Q_strncat calls Q_strncpyz that expects a len including '\0'
@@@ -409,6 -409,7 +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" );
                /* -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 ) {
                        AddPakPath( argv[ i ] );
                        argv[ i ] = NULL;
                }
        }
  
        /* remove processed arguments */
        /* 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++ )