diff options
author | Andrey Nazarov <skuller@skuller.net> | 2010-06-11 15:53:23 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2010-06-11 15:53:23 +0000 |
commit | 698c7913e8e56649cb413b155bc9381e91f10bbe (patch) | |
tree | c5cb81a12a63c113d9c24c7a680f0154cbbf4888 /source/cl_parse.c | |
parent | 47dead035e7bb52e9b360af6d9f13cdf5623b97f (diff) |
Fixed gamedir not being changed properly when connecting to a server.
Forbid changing gamedir at all while connected to a server.
Automatically restart filesystem when user changes gamedir while disconnected.
Killed FS_NeedRestart and FS_SafeToRestart.
Diffstat (limited to 'source/cl_parse.c')
-rw-r--r-- | source/cl_parse.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source/cl_parse.c b/source/cl_parse.c index aa1340d..2a988cf 100644 --- a/source/cl_parse.c +++ b/source/cl_parse.c @@ -766,13 +766,16 @@ static void CL_ParseServerData( void ) { } // never allow demos to change gamedir - // do not set gamedir if connected to local sever, - // since it was already done by SV_InitGame + // do not change gamedir if connected to local sever either, + // as it was already done by SV_InitGame, and changing it + // here will not work since server is now running if( !cls.demo.playback && !sv_running->integer ) { + // pretend it has been set by user, so that 'changed' hook + // gets called and filesystem is restarted Cvar_UserSet( "game", cl.gamedir ); - if( FS_NeedRestart() ) { - CL_RestartFilesystem( qfalse ); - } + + // protect it from modifications while we are connected + fs_game->flags |= CVAR_ROM; } // parse player entity number |