Add com_standalone cvar for at-runtime handling of mods that do not require the original quake3 game data.
This commit is contained in:
parent
512b260629
commit
78a82bcba2
10 changed files with 85 additions and 30 deletions
|
@ -82,6 +82,7 @@ cvar_t *com_cameraMode;
|
|||
cvar_t *com_ansiColor;
|
||||
cvar_t *com_unfocused;
|
||||
cvar_t *com_minimized;
|
||||
cvar_t *com_standalone;
|
||||
|
||||
// com_speeds times
|
||||
int time_game;
|
||||
|
@ -2351,6 +2352,8 @@ static void Com_Crash_f( void ) {
|
|||
* ( int * ) 0 = 0x12345678;
|
||||
}
|
||||
|
||||
#ifndef STANDALONE
|
||||
|
||||
// TTimo: centralizing the cl_cdkey stuff after I discovered a buffer overflow problem with the dedicated server version
|
||||
// not sure it's necessary to have different defaults for regular and dedicated, but I don't want to risk it
|
||||
// https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=470
|
||||
|
@ -2469,6 +2472,7 @@ out:
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif // STANDALONE
|
||||
|
||||
static void Com_DetectAltivec(void)
|
||||
{
|
||||
|
@ -2591,6 +2595,7 @@ void Com_Init( char *commandLine ) {
|
|||
|
||||
com_unfocused = Cvar_Get( "com_unfocused", "0", CVAR_ROM );
|
||||
com_minimized = Cvar_Get( "com_minimized", "0", CVAR_ROM );
|
||||
com_standalone = Cvar_Get( "com_standalone", "0", CVAR_INIT );
|
||||
|
||||
com_introPlayed = Cvar_Get( "com_introplayed", "0", CVAR_ARCHIVE);
|
||||
|
||||
|
@ -2697,12 +2702,17 @@ void Com_WriteConfiguration( void ) {
|
|||
// not needed for dedicated
|
||||
#ifndef DEDICATED
|
||||
fs = Cvar_Get ("fs_game", "", CVAR_INIT|CVAR_SYSTEMINFO );
|
||||
if (UI_usesUniqueCDKey() && fs && fs->string[0] != 0) {
|
||||
Com_WriteCDKey( fs->string, &cl_cdkey[16] );
|
||||
} else {
|
||||
Com_WriteCDKey( BASEGAME, cl_cdkey );
|
||||
#ifndef STANDALONE
|
||||
if(!Cvar_VariableIntegerValue("com_standalone"))
|
||||
{
|
||||
if (UI_usesUniqueCDKey() && fs && fs->string[0] != 0) {
|
||||
Com_WriteCDKey( fs->string, &cl_cdkey[16] );
|
||||
} else {
|
||||
Com_WriteCDKey( BASEGAME, cl_cdkey );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -921,7 +921,7 @@ void NET_SetMulticast6(void)
|
|||
Com_Printf("WARNING: NET_JoinMulticast6: Incorrect multicast address given, "
|
||||
"please set cvar %s to a sane value.\n", net_mcast6addr->name);
|
||||
|
||||
Cvar_Set(net_enabled->name, va("%d", net_enabled->integer | NET_DISABLEMCAST));
|
||||
Cvar_SetValue(net_enabled->name, net_enabled->integer | NET_DISABLEMCAST);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -681,6 +681,7 @@ void FS_HomeRemove( const char *homePath );
|
|||
|
||||
void FS_FilenameCompletion( const char *dir, const char *ext,
|
||||
qboolean stripExt, void(*callback)(const char *s) );
|
||||
|
||||
/*
|
||||
==============================================================
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue