mirror of
https://github.com/UberGames/ioef.git
synced 2024-11-28 06:52:35 +00:00
Fix restoring old fs_game upon leaving a server. Patch by Ensiform.
This commit is contained in:
parent
17ee96e6c8
commit
016b74b633
3 changed files with 14 additions and 10 deletions
|
@ -125,6 +125,9 @@ clientConnection_t clc;
|
||||||
clientStatic_t cls;
|
clientStatic_t cls;
|
||||||
vm_t *cgvm;
|
vm_t *cgvm;
|
||||||
|
|
||||||
|
char cl_oldGame[MAX_QPATH];
|
||||||
|
qboolean cl_oldGameSet;
|
||||||
|
|
||||||
// Structure containing functions exported from refresh DLL
|
// Structure containing functions exported from refresh DLL
|
||||||
refexport_t re;
|
refexport_t re;
|
||||||
#ifdef USE_RENDERER_DLOPEN
|
#ifdef USE_RENDERER_DLOPEN
|
||||||
|
@ -1362,11 +1365,11 @@ static void CL_UpdateGUID( const char *prefix, int prefix_len )
|
||||||
|
|
||||||
static void CL_OldGame(void)
|
static void CL_OldGame(void)
|
||||||
{
|
{
|
||||||
if(cls.oldGameSet)
|
if(cl_oldGameSet)
|
||||||
{
|
{
|
||||||
// change back to previous fs_game
|
// change back to previous fs_game
|
||||||
cls.oldGameSet = qfalse;
|
cl_oldGameSet = qfalse;
|
||||||
Cvar_Set2("fs_game", cls.oldGame, qtrue);
|
Cvar_Set2("fs_game", cl_oldGame, qtrue);
|
||||||
FS_ConditionalRestart(clc.checksumFeed, qfalse);
|
FS_ConditionalRestart(clc.checksumFeed, qfalse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3437,7 +3440,7 @@ void CL_Init( void ) {
|
||||||
{
|
{
|
||||||
CL_ClearState();
|
CL_ClearState();
|
||||||
clc.state = CA_DISCONNECTED; // no longer CA_UNINITIALIZED
|
clc.state = CA_DISCONNECTED; // no longer CA_UNINITIALIZED
|
||||||
cls.oldGameSet = qfalse;
|
cl_oldGameSet = qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
cls.realtime = 0;
|
cls.realtime = 0;
|
||||||
|
|
|
@ -538,10 +538,10 @@ void CL_ParseGamestate( msg_t *msg ) {
|
||||||
CL_StopRecord_f();
|
CL_StopRecord_f();
|
||||||
|
|
||||||
// reinitialize the filesystem if the game directory has changed
|
// reinitialize the filesystem if the game directory has changed
|
||||||
if(!cls.oldGameSet && (Cvar_Flags("fs_game") & CVAR_MODIFIED))
|
if(!cl_oldGameSet && (Cvar_Flags("fs_game") & CVAR_MODIFIED))
|
||||||
{
|
{
|
||||||
cls.oldGameSet = qtrue;
|
cl_oldGameSet = qtrue;
|
||||||
Q_strncpyz(cls.oldGame, oldGame, sizeof(cls.oldGame));
|
Q_strncpyz(cl_oldGame, oldGame, sizeof(cl_oldGame));
|
||||||
}
|
}
|
||||||
|
|
||||||
FS_ConditionalRestart(clc.checksumFeed, qfalse);
|
FS_ConditionalRestart(clc.checksumFeed, qfalse);
|
||||||
|
|
|
@ -280,6 +280,7 @@ extern clientConnection_t clc;
|
||||||
|
|
||||||
the clientStatic_t structure is never wiped, and is used even when
|
the clientStatic_t structure is never wiped, and is used even when
|
||||||
no client connection is active at all
|
no client connection is active at all
|
||||||
|
(except when CL_Shutdown is called)
|
||||||
|
|
||||||
==================================================================
|
==================================================================
|
||||||
*/
|
*/
|
||||||
|
@ -339,9 +340,6 @@ typedef struct {
|
||||||
|
|
||||||
int pingUpdateSource; // source currently pinging or updating
|
int pingUpdateSource; // source currently pinging or updating
|
||||||
|
|
||||||
char oldGame[MAX_QPATH];
|
|
||||||
qboolean oldGameSet;
|
|
||||||
|
|
||||||
// update server info
|
// update server info
|
||||||
netadr_t updateServer;
|
netadr_t updateServer;
|
||||||
char updateChallenge[MAX_TOKEN_CHARS];
|
char updateChallenge[MAX_TOKEN_CHARS];
|
||||||
|
@ -358,6 +356,9 @@ typedef struct {
|
||||||
|
|
||||||
extern clientStatic_t cls;
|
extern clientStatic_t cls;
|
||||||
|
|
||||||
|
extern char cl_oldGame[MAX_QPATH];
|
||||||
|
extern qboolean cl_oldGameSet;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
extern vm_t *cgvm; // interface to cgame dll or vm
|
extern vm_t *cgvm; // interface to cgame dll or vm
|
||||||
|
|
Loading…
Reference in a new issue