diff options
author | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-04-10 15:37:25 +0000 |
---|---|---|
committer | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-04-10 15:37:25 +0000 |
commit | ce41605441c55110aa523250987b50235261a6f6 (patch) | |
tree | 9a71b593f93e5ba817a94d40a3a04c0ec379b3d4 /code/qcommon/files.c | |
parent | 92f7f50f61dffdfa44d4908f7dc662eee9eedcdf (diff) | |
download | ioquake3-aero-ce41605441c55110aa523250987b50235261a6f6.tar.gz ioquake3-aero-ce41605441c55110aa523250987b50235261a6f6.zip |
Add com_standalone cvar for at-runtime handling of mods that do not require the original quake3 game data.
git-svn-id: svn://svn.icculus.org/quake3/trunk@1309 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/qcommon/files.c')
-rw-r--r-- | code/qcommon/files.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/code/qcommon/files.c b/code/qcommon/files.c index 32a24da..a5efb7e 100644 --- a/code/qcommon/files.c +++ b/code/qcommon/files.c @@ -2661,8 +2661,10 @@ void FS_Shutdown( qboolean closemfp ) { #endif } +#ifndef STANDALONE void Com_AppendCDKey( const char *filename ); void Com_ReadCDKey( const char *filename ); +#endif /* ================ @@ -2712,7 +2714,6 @@ FS_Startup static void FS_Startup( const char *gameName ) { const char *homePath; - cvar_t *fs; Com_Printf( "----- FS_Startup -----\n" ); @@ -2764,11 +2765,18 @@ static void FS_Startup( const char *gameName ) } } - Com_ReadCDKey(BASEGAME); - fs = Cvar_Get ("fs_game", "", CVAR_INIT|CVAR_SYSTEMINFO ); - if (fs && fs->string[0] != 0) { - Com_AppendCDKey( fs->string ); +#ifndef STANDALONE + if(!Cvar_VariableIntegerValue("com_standalone")) + { + cvar_t *fs; + + Com_ReadCDKey(BASEGAME); + fs = Cvar_Get ("fs_game", "", CVAR_INIT|CVAR_SYSTEMINFO ); + if (fs && fs->string[0] != 0) { + Com_AppendCDKey( fs->string ); + } } +#endif // add our commands Cmd_AddCommand ("path", FS_Path_f); @@ -2865,7 +2873,12 @@ static void FS_CheckPak0( void ) } } - if(!founddemo && (foundPak & 0x1ff) != 0x1ff ) + if( (!Cvar_VariableIntegerValue("com_standalone") || + !fs_gamedirvar->string[0] || + !Q_stricmp(fs_gamedirvar->string, BASEGAME) || + !Q_stricmp(fs_gamedirvar->string, "missionpack") ) + && + (!founddemo && (foundPak & 0x1ff) != 0x1ff) ) { if((foundPak&1) != 1 ) { @@ -2886,11 +2899,11 @@ static void FS_CheckPak0( void ) "the correct place and that every file\n" "in the %s directory is present and readable.\n", BASEGAME); - if(!fs_gamedirvar->string[0] - || !Q_stricmp( fs_gamedirvar->string, BASEGAME ) - || !Q_stricmp( fs_gamedirvar->string, "missionpack" )) - Com_Error(ERR_FATAL, "You need to install Quake III Arena in order to play"); + Com_Error(ERR_FATAL, "You need to install Quake III Arena in order to play"); } + + if(foundPak & 1) + Cvar_Set("com_standalone", "0"); } #endif |