Fix unnoticed bug in game_restart

This commit is contained in:
Thilo Schulz 2011-06-21 11:29:31 +00:00
parent dee3724a13
commit df1687c5c7
3 changed files with 7 additions and 3 deletions

View file

@ -1223,11 +1223,10 @@ static void CL_UpdateGUID( const char *prefix, int prefix_len )
static void CL_OldGame(void)
{
char *curGame = Cvar_VariableString("fs_game");
if(cls.oldGame[0] || *curGame)
if(cls.oldGameSet)
{
// change back to previous fs_game
cls.oldGameSet = qfalse;
Cvar_Set("fs_game", cls.oldGame);
Com_GameRestart(0, qtrue);
}
@ -3160,6 +3159,7 @@ void CL_Init( void ) {
{
CL_ClearState();
clc.state = CA_DISCONNECTED; // no longer CA_UNINITIALIZED
cls.oldGameSet = qfalse;
}
cls.realtime = 0;

View file

@ -534,7 +534,10 @@ void CL_ParseGamestate( msg_t *msg ) {
// reinitialize the filesystem if the game directory has changed
if(FS_ConditionalRestart(clc.checksumFeed, qfalse) && !cls.oldGame[0])
{
cls.oldGameSet = qtrue;
Q_strncpyz(cls.oldGame, oldGame, sizeof(cls.oldGame));
}
// This used to call CL_StartHunkUsers, but now we enter the download state before loading the
// cgame

View file

@ -334,6 +334,7 @@ typedef struct {
int pingUpdateSource; // source currently pinging or updating
char oldGame[MAX_QPATH];
qboolean oldGameSet;
// update server info
netadr_t updateServer;