summaryrefslogtreecommitdiff
path: root/source/cvar.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2008-06-29 12:32:32 +0000
committerAndrey Nazarov <skuller@skuller.net>2008-06-29 12:32:32 +0000
commite826e5f176f21cd18b3bbc22887a266835ada57c (patch)
treed25a84a84f9168b16a77fe4ed8b169c9611bbb02 /source/cvar.c
parent491f1c100e860c45a5d2aa358d58f777cd1cf895 (diff)
Added client and server side support for 32-bit solids.
New R1Q2 and Q2PRO minor protocol versions, 1905 and 1014. Use environment variables for game and server features negotiation. Relax restrictions on quake paths when searching inside pak files. Made OSS subsystem cvar names consistent with core sound system conventions. Misc latched cvar handling changes.
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] = '?';