summaryrefslogtreecommitdiff
path: root/source/cvar.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/cvar.c')
-rw-r--r--source/cvar.c47
1 files changed, 16 insertions, 31 deletions
diff --git a/source/cvar.c b/source/cvar.c
index c7f8fe6..564c989 100644
--- a/source/cvar.c
+++ b/source/cvar.c
@@ -25,8 +25,7 @@ cvarAPI_t cvar;
cvar_t *cvar_vars;
-//int cvar_latchedModified;
-int cvar_infoModified;
+int cvar_modified;
#define Cvar_Malloc( size ) Z_TagMalloc( size, TAG_CVAR )
@@ -170,15 +169,17 @@ static void Cvar_ChangeString( cvar_t *var, const char *value, cvarSetSource_t s
Cvar_ParseString( var );
if( var->flags & CVAR_INFOMASK ) {
- cvar_infoModified |= var->flags & CVAR_INFOMASK;
if( var->flags & CVAR_USERINFO ) {
CL_UpdateUserinfo( var, source );
}
}
var->modified = qtrue;
- if( source != CVAR_SET_DIRECT && var->changed ) {
- var->changed( var );
+ if( source != CVAR_SET_DIRECT ) {
+ cvar_modified |= var->flags & CVAR_MODIFYMASK;
+ if( var->changed ) {
+ var->changed( var );
+ }
}
}
@@ -190,15 +191,6 @@ Cvar_Get has been called from subsystem initialization routine.
============
*/
static void Cvar_EngineGet( cvar_t *var, const char *var_value, int flags ) {
- if( ( var->flags & CVAR_LATCHED ) && var->latched_string ) {
- // update latched cvar
- Z_Free( var->string );
- var->string = var->latched_string;
- var->latched_string = NULL;
- Cvar_ParseString( var );
- var->modified = qtrue;
- }
-
if( var->flags & (CVAR_CUSTOM|CVAR_VOLATILE) ) {
// update default string if cvar was set from command line
Z_Free( var->default_string );
@@ -216,7 +208,7 @@ static void Cvar_EngineGet( cvar_t *var, const char *var_value, int flags ) {
}
// some flags are not saved
- var->flags &= ~(CVAR_LATCHED|CVAR_GAME|CVAR_CUSTOM|CVAR_VOLATILE);
+ var->flags &= ~(CVAR_GAME|CVAR_CUSTOM|CVAR_VOLATILE);
var->flags |= flags;
}
@@ -309,9 +301,7 @@ void Cvar_SetByVar( cvar_t *var, const char *value, cvarSetSource_t source ) {
if( !value ) {
value = "";
}
- if( !strcmp( value, var->string ) &&
- !( var->flags & (CVAR_LATCHED|CVAR_LATCH) ) )
- {
+ if( !strcmp( value, var->string ) && !( var->flags & CVAR_LATCH ) ) {
return; // not changed
}
@@ -344,7 +334,7 @@ void Cvar_SetByVar( cvar_t *var, const char *value, cvarSetSource_t source ) {
return;
}
- if( var->flags & (CVAR_LATCHED|CVAR_LATCH) ) {
+ if( var->flags & CVAR_LATCH ) {
if( !strcmp( var->string, value ) ) {
// set back to current value
if( var->latched_string ) {
@@ -466,7 +456,6 @@ cvar_t *Cvar_FullSet( const char *var_name, const char *value, int flags, cvarSe
// force retransmit of userinfo variables
// needed for compatibility with q2admin
if( ( var->flags | flags ) & CVAR_USERINFO ) {
- cvar_infoModified |= CVAR_USERINFO;
CL_UpdateUserinfo( var, source );
}
@@ -585,14 +574,14 @@ Cvar_FixCheats
==================
*/
void Cvar_FixCheats( void ) {
- cvar_t *var;
+ cvar_t *var;
- if ( CL_CheatsOK() ) {
+ if( CL_CheatsOK() ) {
return;
}
// fix any cheating cvars
- for( var = cvar_vars ; var ; var = var->next ) {
+ for( var = cvar_vars; var; var = var->next ) {
if( var->flags & CVAR_CHEAT ) {
Cvar_SetByVar( var, var->default_string, CVAR_SET_DIRECT );
}
@@ -615,8 +604,6 @@ void Cvar_GetLatchedVars( void ) {
var->flags &= ~CVAR_SERVERINFO;
if( !(var->flags & CVAR_LATCH) )
continue;
- if( var->flags & CVAR_LATCHED )
- continue; // don't update engine cvars
if( !var->latched_string )
continue;
Z_Free( var->string );
@@ -624,6 +611,7 @@ void Cvar_GetLatchedVars( void ) {
var->latched_string = NULL;
Cvar_ParseString( var );
var->modified = qtrue;
+ cvar_modified |= var->flags & CVAR_MODIFYMASK;
}
}
@@ -757,7 +745,7 @@ void Cvar_WriteVariables( fileHandle_t f, int mask, qboolean modified ) {
continue;
}
if( var->flags & mask ) {
- if( ( var->flags & CVAR_LATCHED ) && var->latched_string ) {
+ if( var->latched_string ) {
string = var->latched_string;
} else {
string = var->string;
@@ -827,8 +815,7 @@ static void Cvar_List_f( void ) {
"S: included in serverinfo\n"
"N: set from command line only\n"
"R: read-only variable\n"
- "L: latched (requires subsystem restart)\n"
- "G: latched (requires game map restart)\n"
+ "L: latched\n"
"?: created by user\n" );
return;
case 'l':
@@ -900,10 +887,8 @@ static void Cvar_List_f( void ) {
buffer[4] = 'R';
else if( var->flags & CVAR_NOSET )
buffer[4] = 'N';
- else if( var->flags & CVAR_LATCHED )
- buffer[4] = 'L';
else if( var->flags & CVAR_LATCH )
- buffer[4] = 'G';
+ buffer[4] = 'L';
else if( var->flags & CVAR_CUSTOM )
buffer[4] = '?';