support passing the home path to q3map2 as -fs_home (home dir only, ends with /. to request a dotdir name) and -fs_homepath (full path, including /.gamename)

This commit is contained in:
Rudolf Polzer 2011-05-01 18:49:33 +02:00
parent 410909df7d
commit f2ba0cbb0a
3 changed files with 14 additions and 4 deletions

View File

@ -1690,6 +1690,8 @@ tryDecompile:
output.push_string((type && *type) ? type : "quake3"); output.push_string((type && *type) ? type : "quake3");
output.push_string(" -fs_basepath \""); output.push_string(" -fs_basepath \"");
output.push_string(EnginePath_get()); output.push_string(EnginePath_get());
output.push_string(" -fs_homepath \"");
output.push_string(g_qeglobals.m_userEnginePath.c_str());
output.push_string("\" -fs_game "); output.push_string("\" -fs_game ");
output.push_string(gamename_get()); output.push_string(gamename_get());
output.push_string(" -convert -format "); output.push_string(" -convert -format ");

View File

@ -171,6 +171,7 @@ void bsp_init()
build_set_variable("RadiantPath", AppPath_get()); build_set_variable("RadiantPath", AppPath_get());
build_set_variable("ExecutableType", RADIANT_EXECUTABLE); build_set_variable("ExecutableType", RADIANT_EXECUTABLE);
build_set_variable("EnginePath", EnginePath_get()); build_set_variable("EnginePath", EnginePath_get());
build_set_variable("UserEnginePath", g_qeglobals.m_userEnginePath.c_str());
build_set_variable("MonitorAddress", (g_WatchBSP_Enabled) ? "127.0.0.1:39000" : ""); build_set_variable("MonitorAddress", (g_WatchBSP_Enabled) ? "127.0.0.1:39000" : "");
build_set_variable("GameName", gamename_get()); build_set_variable("GameName", gamename_get());

View File

@ -450,10 +450,6 @@ void InitPaths( int *argc, char **argv )
Error( "Out of arguments: No path specified after %s.", argv[ i - 1 ] ); Error( "Out of arguments: No path specified after %s.", argv[ i - 1 ] );
argv[ i - 1 ] = NULL; argv[ i - 1 ] = NULL;
homePath = argv[i]; homePath = argv[i];
/* do we want to do this:
if(!homeBasePath)
homeBasePath = "."; // if only -fs_home is set, this shall be the FULL path!
*/
argv[ i ] = NULL; argv[ i ] = NULL;
} }
@ -466,6 +462,17 @@ void InitPaths( int *argc, char **argv )
homeBasePath = argv[i]; homeBasePath = argv[i];
argv[ i ] = NULL; argv[ i ] = NULL;
} }
/* -fs_homepath - sets both of them */
else if( strcmp( argv[ i ], "-fs_homepath" ) == 0 )
{
if( ++i >= *argc )
Error( "Out of arguments: No path specified after %s.", argv[ i - 1 ] );
argv[ i - 1 ] = NULL;
homePath = argv[i];
homeBasePath = ".";
argv[ i ] = NULL;
}
} }
/* remove processed arguments */ /* remove processed arguments */