Don't do game_restart if game directory changed from "" to "baseq3" or "baseq3" to ""

This commit is contained in:
Thilo Schulz 2011-08-03 00:58:33 +00:00
parent 0bc54ab696
commit 06628af7c5
2 changed files with 20 additions and 5 deletions

View File

@ -1362,8 +1362,8 @@ static void CL_OldGame(void)
{
// change back to previous fs_game
cls.oldGameSet = qfalse;
Cvar_Set("fs_game", cls.oldGame);
Com_GameRestart(0, qtrue);
Cvar_Set2("fs_game", cls.oldGame, qtrue);
FS_ConditionalRestart(clc.checksumFeed, qfalse);
}
}

View File

@ -3884,12 +3884,27 @@ restart if necessary
*/
qboolean FS_ConditionalRestart(int checksumFeed, qboolean disconnect)
{
int retval;
if(fs_gamedirvar->modified)
{
Com_GameRestart(checksumFeed, disconnect);
return qtrue;
if(FS_FilenameCompare(lastValidGame, fs_gamedirvar->string) &&
(*lastValidGame || FS_FilenameCompare(fs_gamedirvar->string, com_basegame->string)) &&
(*fs_gamedirvar->string || FS_FilenameCompare(lastValidGame, com_basegame->string)))
{
Com_GameRestart(checksumFeed, disconnect);
return qtrue;
}
else
{
fs_gamedirvar->modified = qfalse;
retval = qtrue;
}
}
else if(checksumFeed != fs_checksumFeed)
else
retval = qfalse;
if(checksumFeed != fs_checksumFeed)
FS_Restart(checksumFeed);
else if(fs_numServerPaks && !fs_reordered)
FS_ReorderPurePaks();