This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian/master
in repository openjk.

commit 89cebbcc134e0de58b3d3ad6b077613bb63d5565
Author: Ensiform <[email protected]>
Date:   Sun Jul 30 15:08:50 2017 -0500

    Shared: Add CVAR_NODEFAULT and improve cvar sorting algo
    
    This patch comes from the ec-/Quake3e repository.
    
    Cvars marked with CVAR_NODEFAULT explicitly or with CVAR_ARCHIVE_ND (Both) 
will not be written to config files when they match the default value and are 
marked for archive.
    
    Also speeds up sorting and listing because sorts now only happen whenever a 
write would happen instead of at every list and every write.
    
    Several cvars are marked in this commit based on whether they are often set 
differnetly or not (or if changed values would matter betweeen mods). No cvars 
in mod code are set as such for the time being.
    
    See original commit: 
https://github.com/ec-/Quake3e/commit/da8c7579f4dd449545f44d2cbf1f7189faf9986c
    Sorting commit see: 
https://github.com/ec-/Quake3e/commit/14a5f02c8e6d9b52e2f95c3dcf6c698b624f596b
---
 code/client/cl_console.cpp      |   4 +-
 code/client/cl_main.cpp         |  36 ++++-----
 code/client/snd_dma.cpp         |   2 +-
 code/qcommon/cm_load.cpp        |   2 +-
 code/qcommon/common.cpp         |   6 +-
 code/qcommon/cvar.cpp           | 158 +++++++++++++++++++++++-------------
 code/qcommon/q_shared.h         |   3 +
 code/rd-vanilla/tr_init.cpp     |  86 ++++++++++----------
 codemp/client/FxUtil.cpp        |   4 +-
 codemp/client/cl_console.cpp    |   4 +-
 codemp/client/cl_main.cpp       |  94 ++++++++++++++--------
 codemp/client/snd_dma.cpp       |   4 +-
 codemp/qcommon/cm_load.cpp      |   2 +-
 codemp/qcommon/common.cpp       |   8 +-
 codemp/qcommon/cvar.cpp         | 172 ++++++++++++++++++++++++----------------
 codemp/qcommon/net_ip.cpp       |  14 ++--
 codemp/qcommon/q_shared.h       |   3 +
 codemp/rd-dedicated/tr_init.cpp |  88 ++++++++++----------
 codemp/rd-vanilla/tr_init.cpp   |  88 ++++++++++----------
 codemp/server/sv_init.cpp       |  28 +++----
 shared/sdl/sdl_input.cpp        |  12 +--
 shared/sdl/sdl_sound.cpp        |   8 +-
 shared/sdl/sdl_window.cpp       |  16 ++--
 shared/sys/sys_main.cpp         |   4 +-
 24 files changed, 482 insertions(+), 364 deletions(-)

diff --git a/code/client/cl_console.cpp b/code/client/cl_console.cpp
index ae9defc..19c50fd 100644
--- a/code/client/cl_console.cpp
+++ b/code/client/cl_console.cpp
@@ -285,8 +285,8 @@ void Con_Init (void) {
        con_conspeed = Cvar_Get ("scr_conspeed", "3", 0);
        Cvar_CheckRange (con_conspeed, 1.0f, 100.0f, qfalse);
 
-       con_opacity = Cvar_Get ("con_opacity", "0.8", CVAR_ARCHIVE);
-       con_autoclear = Cvar_Get ("con_autoclear", "1", CVAR_ARCHIVE);
+       con_opacity = Cvar_Get ("con_opacity", "0.8", CVAR_ARCHIVE_ND);
+       con_autoclear = Cvar_Get ("con_autoclear", "1", CVAR_ARCHIVE_ND);
 
        Field_Clear( &g_consoleField );
        g_consoleField.widthInChars = g_console_field_width;
diff --git a/code/client/cl_main.cpp b/code/client/cl_main.cpp
index bac6e4c..5829e93 100644
--- a/code/client/cl_main.cpp
+++ b/code/client/cl_main.cpp
@@ -1243,36 +1243,36 @@ void CL_Init( void ) {
 
        cl_avidemo = Cvar_Get ("cl_avidemo", "0", 0);
        cl_pano = Cvar_Get ("pano", "0", 0);
-       cl_panoNumShots= Cvar_Get ("panoNumShots", "10", CVAR_ARCHIVE);
+       cl_panoNumShots= Cvar_Get ("panoNumShots", "10", CVAR_ARCHIVE_ND);
        cl_skippingcin = Cvar_Get ("skippingCinematic", "0", CVAR_ROM);
        cl_endcredits = Cvar_Get ("cg_endcredits", "0", 0);
 
-       cl_yawspeed = Cvar_Get ("cl_yawspeed", "140", CVAR_ARCHIVE);
-       cl_pitchspeed = Cvar_Get ("cl_pitchspeed", "140", CVAR_ARCHIVE);
-       cl_anglespeedkey = Cvar_Get ("cl_anglespeedkey", "1.5", CVAR_ARCHIVE);
+       cl_yawspeed = Cvar_Get ("cl_yawspeed", "140", CVAR_ARCHIVE_ND);
+       cl_pitchspeed = Cvar_Get ("cl_pitchspeed", "140", CVAR_ARCHIVE_ND);
+       cl_anglespeedkey = Cvar_Get ("cl_anglespeedkey", "1.5", 
CVAR_ARCHIVE_ND);
 
-       cl_packetdup = Cvar_Get ("cl_packetdup", "1", CVAR_ARCHIVE );
+       cl_packetdup = Cvar_Get ("cl_packetdup", "1", CVAR_ARCHIVE_ND );
 
-       cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE);
+       cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE_ND);
        cl_sensitivity = Cvar_Get ("sensitivity", "5", CVAR_ARCHIVE);
-       cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE);
-       cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE );
+       cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE_ND);
+       cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE_ND );
 
        cl_showMouseRate = Cvar_Get ("cl_showmouserate", "0", 0);
 
-       cl_allowAltEnter = Cvar_Get ("cl_allowAltEnter", "1", CVAR_ARCHIVE);
-       cl_inGameVideo = Cvar_Get ("cl_inGameVideo", "1", CVAR_ARCHIVE);
+       cl_allowAltEnter = Cvar_Get ("cl_allowAltEnter", "1", CVAR_ARCHIVE_ND);
+       cl_inGameVideo = Cvar_Get ("cl_inGameVideo", "1", CVAR_ARCHIVE_ND);
        cl_framerate    = Cvar_Get ("cl_framerate", "0", CVAR_TEMP);
 
        // init autoswitch so the ui will have it correctly even
        // if the cgame hasn't been started
        Cvar_Get ("cg_autoswitch", "1", CVAR_ARCHIVE);
 
-       m_pitch = Cvar_Get ("m_pitch", "0.022", CVAR_ARCHIVE);
-       m_yaw = Cvar_Get ("m_yaw", "0.022", CVAR_ARCHIVE);
-       m_forward = Cvar_Get ("m_forward", "0.25", CVAR_ARCHIVE);
-       m_side = Cvar_Get ("m_side", "0.25", CVAR_ARCHIVE);
-       m_filter = Cvar_Get ("m_filter", "0", CVAR_ARCHIVE);
+       m_pitch = Cvar_Get ("m_pitch", "0.022", CVAR_ARCHIVE_ND);
+       m_yaw = Cvar_Get ("m_yaw", "0.022", CVAR_ARCHIVE_ND);
+       m_forward = Cvar_Get ("m_forward", "0.25", CVAR_ARCHIVE_ND);
+       m_side = Cvar_Get ("m_side", "0.25", CVAR_ARCHIVE_ND);
+       m_filter = Cvar_Get ("m_filter", "0", CVAR_ARCHIVE_ND);
 
        // ~ and `, as keys and characters
        cl_consoleKeys = Cvar_Get( "cl_consoleKeys", "~ ` 0x7e 0x60 0xb2", 
CVAR_ARCHIVE);
@@ -1280,9 +1280,9 @@ void CL_Init( void ) {
 
        // userinfo
 #ifdef JK2_MODE
-       Cvar_Get ("name", "Kyle", CVAR_USERINFO | CVAR_ARCHIVE );
+       Cvar_Get ("name", "Kyle", CVAR_USERINFO | CVAR_ARCHIVE_ND );
 #else
-       Cvar_Get ("name", "Jaden", CVAR_USERINFO | CVAR_ARCHIVE );
+       Cvar_Get ("name", "Jaden", CVAR_USERINFO | CVAR_ARCHIVE_ND );
 #endif
 
 #ifdef JK2_MODE
@@ -1342,7 +1342,7 @@ void CL_Shutdown( void ) {
        Com_Printf( "----- CL_Shutdown -----\n" );
 
        if ( recursive ) {
-               Com_Printf( "WARNING: Recursive shutdown\n" );
+               Com_Printf( "WARNING: Recursive CL_Shutdown called!\n" );
                return;
        }
        recursive = qtrue;
diff --git a/code/client/snd_dma.cpp b/code/client/snd_dma.cpp
index 48ae005..57907dc 100644
--- a/code/client/snd_dma.cpp
+++ b/code/client/snd_dma.cpp
@@ -452,7 +452,7 @@ void S_Init( void ) {
        s_musicVolume = Cvar_Get ("s_musicvolume", "0.25", CVAR_ARCHIVE);
        s_separation = Cvar_Get ("s_separation", "0.5", CVAR_ARCHIVE);
        s_khz = Cvar_Get ("s_khz", "44", CVAR_ARCHIVE|CVAR_LATCH);
-       s_allowDynamicMusic = Cvar_Get ("s_allowDynamicMusic", "1", 
CVAR_ARCHIVE);
+       s_allowDynamicMusic = Cvar_Get ("s_allowDynamicMusic", "1", 
CVAR_ARCHIVE_ND);
        s_mixahead = Cvar_Get ("s_mixahead", "0.2", CVAR_ARCHIVE);
 
        s_mixPreStep = Cvar_Get ("s_mixPreStep", "0.05", CVAR_ARCHIVE);
diff --git a/code/qcommon/cm_load.cpp b/code/qcommon/cm_load.cpp
index c688523..5407ffb 100644
--- a/code/qcommon/cm_load.cpp
+++ b/code/qcommon/cm_load.cpp
@@ -653,7 +653,7 @@ static void CM_LoadMap_Actual( const char *name, qboolean 
clientload, int *check
 #ifndef BSPC
        cm_noAreas = Cvar_Get ("cm_noAreas", "0", CVAR_CHEAT);
        cm_noCurves = Cvar_Get ("cm_noCurves", "0", CVAR_CHEAT);
-       cm_playerCurveClip = Cvar_Get ("cm_playerCurveClip", "1", 
CVAR_ARCHIVE|CVAR_CHEAT );
+       cm_playerCurveClip = Cvar_Get ("cm_playerCurveClip", "1", 
CVAR_ARCHIVE_ND|CVAR_CHEAT );
 #endif
        Com_DPrintf( "CM_LoadMap( %s, %i )\n", name, clientload );
 
diff --git a/code/qcommon/common.cpp b/code/qcommon/common.cpp
index d1ba92a..7fe6adc 100644
--- a/code/qcommon/common.cpp
+++ b/code/qcommon/common.cpp
@@ -1115,10 +1115,10 @@ void Com_Init( char *commandLine ) {
                com_skippingcin = Cvar_Get ("skippingCinematic", "0", CVAR_ROM);
                com_buildScript = Cvar_Get( "com_buildScript", "0", 0 );
 
-               com_affinity = Cvar_Get( "com_affinity", "0", CVAR_ARCHIVE );
-               com_busyWait = Cvar_Get( "com_busyWait", "0", CVAR_ARCHIVE );
+               com_affinity = Cvar_Get( "com_affinity", "0", CVAR_ARCHIVE_ND );
+               com_busyWait = Cvar_Get( "com_busyWait", "0", CVAR_ARCHIVE_ND );
 
-               com_bootlogo = Cvar_Get( "com_bootlogo", "1", CVAR_ARCHIVE );
+               com_bootlogo = Cvar_Get( "com_bootlogo", "1", CVAR_ARCHIVE_ND );
 
                if ( com_developer && com_developer->integer ) {
                        Cmd_AddCommand ("error", Com_Error_f);
diff --git a/code/qcommon/cvar.cpp b/code/qcommon/cvar.cpp
index 0cd7127..1e27394 100644
--- a/code/qcommon/cvar.cpp
+++ b/code/qcommon/cvar.cpp
@@ -26,10 +26,6 @@ along with this program; if not, see 
<http://www.gnu.org/licenses/>.
 
 #include "q_shared.h"
 #include "qcommon.h"
-#include <vector>
-#include <algorithm>
-
-typedef std::vector<cvar_t *> cvarvec_t;
 
 cvar_t         *cvar_vars = NULL;
 cvar_t         *cvar_cheats;
@@ -41,6 +37,7 @@ int                   cvar_numIndexes;
 
 #define FILE_HASH_SIZE         512
 static cvar_t*         hashTable[FILE_HASH_SIZE];
+static qboolean cvar_sort = qfalse;
 
 static char *lastMemPool = NULL;
 static int memPoolSize;
@@ -478,9 +475,75 @@ cvar_t *Cvar_Get( const char *var_name, const char 
*var_value, int flags ) {
        var->hashPrev = NULL;
        hashTable[hash] = var;
 
+       // sort on write
+       cvar_sort = qtrue;
+
        return var;
 }
 
+static void Cvar_QSortByName( cvar_t **a, int n ) 
+{
+       cvar_t *temp;
+       cvar_t *m;
+       int     i, j; 
+
+       i = 0;
+       j = n;
+       m = a[ n>>1 ];
+
+       do {
+               // sort in descending order
+               while ( strcmp( a[i]->name, m->name ) > 0 ) i++;
+               while ( strcmp( a[j]->name, m->name ) < 0 ) j--;
+
+               if ( i <= j ) {
+                       temp = a[i]; 
+                       a[i] = a[j]; 
+                       a[j] = temp;
+                       i++; 
+                       j--;
+               }
+       } while ( i <= j );
+
+       if ( j > 0 ) Cvar_QSortByName( a, j );
+       if ( n > i ) Cvar_QSortByName( a+i, n-i );
+}
+
+
+static void Cvar_Sort( void ) 
+{
+       cvar_t *list[ MAX_CVARS ], *var;
+       int count;
+       int i;
+
+       for ( count = 0, var = cvar_vars; var; var = var->next ) {
+               if ( var->name ) {
+                       list[ count++ ] = var;
+               } else {
+                       Com_Error( ERR_FATAL, "Cvar_Sort: NULL cvar name" );
+               }
+       }
+
+       if ( count < 2 ) {
+               return; // nothing to sort
+       }
+
+       Cvar_QSortByName( &list[0], count-1 );
+       
+       cvar_vars = NULL;
+
+       // relink cvars
+       for ( i = 0; i < count; i++ ) {
+               var = list[ i ];
+               // link the variable in
+               var->next = cvar_vars;
+               if ( cvar_vars )
+                       cvar_vars->prev = var;
+               var->prev = NULL;
+               cvar_vars = var;
+       }
+}
+
 /*
 ============
 Cvar_Print
@@ -889,11 +952,6 @@ void Cvar_Reset_f( void ) {
        Cvar_Reset( Cmd_Argv( 1 ) );
 }
 
-bool CvarSort(const cvar_t *cv1, const cvar_t *cv2)
-{
-       return Q_stricmp(cv1->name, cv2->name) < 0;
-}
-
 /*
 ============
 Cvar_WriteVariables
@@ -903,39 +961,45 @@ with the archive flag set to qtrue.
 ============
 */
 void Cvar_WriteVariables( fileHandle_t f ) {
-       cvarvec_t cvar_vec;
-       for (cvar_t *var = cvar_vars ; var ; var = var->next) {
-               if( !var->name )
-                       continue;
+       cvar_t  *var;
+       char buffer[1024];
 
-               if( var->flags & CVAR_ARCHIVE ) {
-                       cvar_vec.push_back(var);
-               }
+       if ( cvar_sort ) {
+               Com_DPrintf( "%s: sort cvars\n", __func__ );
+               cvar_sort = qfalse;
+               Cvar_Sort();
        }
 
-       std::sort(cvar_vec.begin(), cvar_vec.end(), CvarSort);
-
-       cvarvec_t::const_iterator itr;
-       char buffer[1024];
-       for (itr = cvar_vec.begin(); itr != cvar_vec.end(); ++itr)
+       for ( var = cvar_vars; var; var = var->next )
        {
-               // write the latched value, even if it hasn't taken effect yet
-               if ( (*itr)->latchedString ) {
-                       if( strlen( (*itr)->name ) + strlen( 
(*itr)->latchedString ) + 10 > sizeof( buffer ) ) {
-                               Com_Printf( S_COLOR_YELLOW "WARNING: value of 
variable "
-                                               "\"%s\" too long to write to 
file\n", (*itr)->name );
-                               continue;
-                       }
-                       Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", (*itr)->name, (*itr)->latchedString);
-               } else {
-                       if( strlen( (*itr)->name ) + strlen( (*itr)->string ) + 
10 > sizeof( buffer ) ) {
-                               Com_Printf( S_COLOR_YELLOW "WARNING: value of 
variable "
-                                               "\"%s\" too long to write to 
file\n", (*itr)->name );
-                               continue;
+               if ( !var->name || Q_stricmp( var->name, "cl_cdkey" ) == 0 )
+                       continue;
+
+               if ( var->flags & CVAR_ARCHIVE ) {
+                       // write the latched value, even if it hasn't taken 
effect yet
+                       if ( var->latchedString ) {
+                               if( strlen( var->name ) + strlen( 
var->latchedString ) + 10 > sizeof( buffer ) ) {
+                                       Com_Printf( S_COLOR_YELLOW "WARNING: 
value of variable "
+                                                       "\"%s\" too long to 
write to file\n", var->name );
+                                       continue;
+                               }
+                               if ( (var->flags & CVAR_NODEFAULT) && !strcmp( 
var->latchedString, var->resetString ) ) {
+                                       continue;
+                               }
+                               Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", var->name, var->latchedString);
+                       } else {
+                               if( strlen( var->name ) + strlen( var->string ) 
+ 10 > sizeof( buffer ) ) {
+                                       Com_Printf( S_COLOR_YELLOW "WARNING: 
value of variable "
+                                                       "\"%s\" too long to 
write to file\n", var->name );
+                                       continue;
+                               }
+                               if ( (var->flags & CVAR_NODEFAULT) && !strcmp( 
var->string, var->resetString ) ) {
+                                       continue;
+                               }
+                               Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", var->name, var->string);
                        }
-                       Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", (*itr)->name, (*itr)->string);
+                       FS_Write( buffer, strlen( buffer ), f );
                }
-               FS_Write( buffer, strlen( buffer ), f );
        }
 }
 
@@ -982,36 +1046,20 @@ void Cvar_List_f( void ) {
 
 void Cvar_ListModified_f( void ) {
        cvar_t *var = NULL;
-       int i = 0;
-       cvarvec_t cvar_vec;
 
        // build a list of cvars that are modified
-       for ( var=cvar_vars, i=0;
+       for ( var=cvar_vars;
                var;
-               var=var->next, i++ )
+               var=var->next )
        {
                char *value = var->latchedString ? var->latchedString : 
var->string;
                if ( !var->name || !var->modificationCount || !strcmp( value, 
var->resetString ) )
                        continue;
 
-               cvar_vec.push_back( var );
-       }
-
-       // sort list alphabetically
-       std::sort( cvar_vec.begin(), cvar_vec.end(), CvarSort );
-
-       // print them
-       cvarvec_t::const_iterator itr;
-       for ( itr = cvar_vec.begin();
-               itr != cvar_vec.end();
-               ++itr )
-       {
-               char *value = (*itr)->latchedString ? (*itr)->latchedString : 
(*itr)->string;
-
                Com_Printf( S_COLOR_GREY "Cvar "
                        S_COLOR_WHITE "%s = " S_COLOR_GREY "\"" S_COLOR_WHITE 
"%s" S_COLOR_GREY "\"" S_COLOR_WHITE ", "
                        S_COLOR_WHITE "default = " S_COLOR_GREY "\"" 
S_COLOR_WHITE "%s" S_COLOR_GREY "\"" S_COLOR_WHITE "\n",
-                       (*itr)->name, value, (*itr)->resetString );
+                       var->name, value, var->resetString );
        }
 }
 
diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h
index 3430e0d..a4a079f 100644
--- a/code/qcommon/q_shared.h
+++ b/code/qcommon/q_shared.h
@@ -451,6 +451,9 @@ default values.
 #define CVAR_SERVER_CREATED    2048    // cvar was created by a server the 
client connected to.
 #define CVAR_VM_CREATED                4096    // cvar was created exclusively 
in one of the VMs.
 #define CVAR_PROTECTED         8192    // prevent modifying this var from VMs 
or the server
+#define CVAR_NODEFAULT         16384   // do not write to config if matching 
with default value
+
+#define CVAR_ARCHIVE_ND                (CVAR_ARCHIVE | CVAR_NODEFAULT)
 // These flags are only returned by the Cvar_Flags() function
 #define CVAR_MODIFIED          0x40000000              // Cvar was modified
 #define CVAR_NONEXISTENT       0x80000000              // Cvar doesn't exist.
diff --git a/code/rd-vanilla/tr_init.cpp b/code/rd-vanilla/tr_init.cpp
index a9a23de..58984d3 100644
--- a/code/rd-vanilla/tr_init.cpp
+++ b/code/rd-vanilla/tr_init.cpp
@@ -1499,37 +1499,37 @@ void R_Register( void )
        // latched and archived variables
        //
 
-       r_allowExtensions = ri.Cvar_Get( "r_allowExtensions", "1", CVAR_ARCHIVE 
| CVAR_LATCH );
-       r_ext_compressed_textures = ri.Cvar_Get( "r_ext_compress_textures", 
"1", CVAR_ARCHIVE | CVAR_LATCH );
-       r_ext_compressed_lightmaps = ri.Cvar_Get( "r_ext_compress_lightmaps", 
"0", CVAR_ARCHIVE | CVAR_LATCH );
-       r_ext_preferred_tc_method = ri.Cvar_Get( "r_ext_preferred_tc_method", 
"0", CVAR_ARCHIVE | CVAR_LATCH );
-       r_ext_gamma_control = ri.Cvar_Get( "r_ext_gamma_control", "1", 
CVAR_ARCHIVE | CVAR_LATCH );
-       r_ext_multitexture = ri.Cvar_Get( "r_ext_multitexture", "1", 
CVAR_ARCHIVE | CVAR_LATCH );
-       r_ext_compiled_vertex_array = ri.Cvar_Get( 
"r_ext_compiled_vertex_array", "1", CVAR_ARCHIVE | CVAR_LATCH);
-       r_ext_texture_env_add = ri.Cvar_Get( "r_ext_texture_env_add", "1", 
CVAR_ARCHIVE | CVAR_LATCH);
-       r_ext_texture_filter_anisotropic = ri.Cvar_Get( 
"r_ext_texture_filter_anisotropic", "16", CVAR_ARCHIVE );
-
-       r_DynamicGlow = ri.Cvar_Get( "r_DynamicGlow", "0", CVAR_ARCHIVE );
-       r_DynamicGlowPasses = ri.Cvar_Get( "r_DynamicGlowPasses", "5", 
CVAR_ARCHIVE );
-       r_DynamicGlowDelta  = ri.Cvar_Get( "r_DynamicGlowDelta", "0.8f", 
CVAR_ARCHIVE );
-       r_DynamicGlowIntensity = ri.Cvar_Get( "r_DynamicGlowIntensity", 
"1.13f", CVAR_ARCHIVE );
-       r_DynamicGlowSoft = ri.Cvar_Get( "r_DynamicGlowSoft", "1", CVAR_ARCHIVE 
);
-       r_DynamicGlowWidth = ri.Cvar_Get( "r_DynamicGlowWidth", "320", 
CVAR_ARCHIVE | CVAR_LATCH );
-       r_DynamicGlowHeight = ri.Cvar_Get( "r_DynamicGlowHeight", "240", 
CVAR_ARCHIVE | CVAR_LATCH );
+       r_allowExtensions = ri.Cvar_Get( "r_allowExtensions", "1", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_compressed_textures = ri.Cvar_Get( "r_ext_compress_textures", 
"1", CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_compressed_lightmaps = ri.Cvar_Get( "r_ext_compress_lightmaps", 
"0", CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_preferred_tc_method = ri.Cvar_Get( "r_ext_preferred_tc_method", 
"0", CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_gamma_control = ri.Cvar_Get( "r_ext_gamma_control", "1", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_multitexture = ri.Cvar_Get( "r_ext_multitexture", "1", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_ext_compiled_vertex_array = ri.Cvar_Get( 
"r_ext_compiled_vertex_array", "1", CVAR_ARCHIVE_ND | CVAR_LATCH);
+       r_ext_texture_env_add = ri.Cvar_Get( "r_ext_texture_env_add", "1", 
CVAR_ARCHIVE_ND | CVAR_LATCH);
+       r_ext_texture_filter_anisotropic = ri.Cvar_Get( 
"r_ext_texture_filter_anisotropic", "16", CVAR_ARCHIVE_ND );
+
+       r_DynamicGlow = ri.Cvar_Get( "r_DynamicGlow", "0", CVAR_ARCHIVE_ND );
+       r_DynamicGlowPasses = ri.Cvar_Get( "r_DynamicGlowPasses", "5", 
CVAR_ARCHIVE_ND );
+       r_DynamicGlowDelta  = ri.Cvar_Get( "r_DynamicGlowDelta", "0.8f", 
CVAR_ARCHIVE_ND );
+       r_DynamicGlowIntensity = ri.Cvar_Get( "r_DynamicGlowIntensity", 
"1.13f", CVAR_ARCHIVE_ND );
+       r_DynamicGlowSoft = ri.Cvar_Get( "r_DynamicGlowSoft", "1", 
CVAR_ARCHIVE_ND );
+       r_DynamicGlowWidth = ri.Cvar_Get( "r_DynamicGlowWidth", "320", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_DynamicGlowHeight = ri.Cvar_Get( "r_DynamicGlowHeight", "240", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
 
        r_picmip = ri.Cvar_Get ("r_picmip", "0", CVAR_ARCHIVE | CVAR_LATCH );
        ri.Cvar_CheckRange( r_picmip, 0, 16, qtrue );
        r_colorMipLevels = ri.Cvar_Get ("r_colorMipLevels", "0", CVAR_LATCH );
-       r_detailTextures = ri.Cvar_Get( "r_detailtextures", "1", CVAR_ARCHIVE | 
CVAR_LATCH );
-       r_texturebits = ri.Cvar_Get( "r_texturebits", "0", CVAR_ARCHIVE | 
CVAR_LATCH );
-       r_texturebitslm = ri.Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE | 
CVAR_LATCH );
-       r_overBrightBits = ri.Cvar_Get ("r_overBrightBits", "0", CVAR_ARCHIVE | 
CVAR_LATCH );
-       r_mapOverBrightBits = ri.Cvar_Get( "r_mapOverBrightBits", "0", 
CVAR_ARCHIVE|CVAR_LATCH );
-       r_simpleMipMaps = ri.Cvar_Get( "r_simpleMipMaps", "1", CVAR_ARCHIVE | 
CVAR_LATCH );
+       r_detailTextures = ri.Cvar_Get( "r_detailtextures", "1", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_texturebits = ri.Cvar_Get( "r_texturebits", "0", CVAR_ARCHIVE_ND | 
CVAR_LATCH );
+       r_texturebitslm = ri.Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE_ND 
| CVAR_LATCH );
+       r_overBrightBits = ri.Cvar_Get ("r_overBrightBits", "0", 
CVAR_ARCHIVE_ND | CVAR_LATCH );
+       r_mapOverBrightBits = ri.Cvar_Get( "r_mapOverBrightBits", "0", 
CVAR_ARCHIVE_ND|CVAR_LATCH );
+       r_simpleMipMaps = ri.Cvar_Get( "r_simpleMipMaps", "1", CVAR_ARCHIVE_ND 
| CVAR_LATCH );
        r_vertexLight = ri.Cvar_Get( "r_vertexLight", "0", CVAR_ARCHIVE | 
CVAR_LATCH );
-       r_subdivisions = ri.Cvar_Get ("r_subdivisions", "4", CVAR_ARCHIVE | 
CVAR_LATCH);
+       r_subdivisions = ri.Cvar_Get ("r_subdivisions", "4", CVAR_ARCHIVE_ND | 
CVAR_LATCH);
        ri.Cvar_CheckRange( r_subdivisions, 0, 80, qfalse );
-       r_intensity = ri.Cvar_Get ("r_intensity", "1", CVAR_LATCH|CVAR_ARCHIVE 
);
+       r_intensity = ri.Cvar_Get ("r_intensity", "1", 
CVAR_LATCH|CVAR_ARCHIVE_ND );
 
        //
        // temporary latched variables that can only change over a restart
@@ -1540,26 +1540,26 @@ void R_Register( void )
        //
        // archived variables that can change at any time
        //
-       r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", CVAR_ARCHIVE );
-       r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE );
-       r_flares = ri.Cvar_Get ("r_flares", "1", CVAR_ARCHIVE );
-       r_lodscale = ri.Cvar_Get( "r_lodscale", "10", CVAR_ARCHIVE );
+       r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", 
CVAR_ARCHIVE_ND );
+       r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE_ND );
+       r_flares = ri.Cvar_Get ("r_flares", "1", CVAR_ARCHIVE_ND );
+       r_lodscale = ri.Cvar_Get( "r_lodscale", "10", CVAR_ARCHIVE_ND );
 
-       r_znear = ri.Cvar_Get( "r_znear", "4", CVAR_ARCHIVE );  //if set any 
lower, you lose a lot of precision in the distance
+       r_znear = ri.Cvar_Get( "r_znear", "4", CVAR_ARCHIVE_ND );       //if 
set any lower, you lose a lot of precision in the distance
        ri.Cvar_CheckRange( r_znear, 0.001f, 10, qfalse ); // was qtrue in JA, 
is qfalse properly in ioq3
-       r_ignoreGLErrors = ri.Cvar_Get( "r_ignoreGLErrors", "1", CVAR_ARCHIVE );
-       r_fastsky = ri.Cvar_Get( "r_fastsky", "0", CVAR_ARCHIVE );
-       r_drawSun = ri.Cvar_Get( "r_drawSun", "0", CVAR_ARCHIVE );
+       r_ignoreGLErrors = ri.Cvar_Get( "r_ignoreGLErrors", "1", 
CVAR_ARCHIVE_ND );
+       r_fastsky = ri.Cvar_Get( "r_fastsky", "0", CVAR_ARCHIVE_ND );
+       r_drawSun = ri.Cvar_Get( "r_drawSun", "0", CVAR_ARCHIVE_ND );
        r_dynamiclight = ri.Cvar_Get( "r_dynamiclight", "1", CVAR_ARCHIVE );
        // rjr - removed for hacking
 //     r_dlightBacks = ri.Cvar_Get( "r_dlightBacks", "0", CVAR_ARCHIVE );
-       r_finish = ri.Cvar_Get ("r_finish", "0", CVAR_ARCHIVE);
+       r_finish = ri.Cvar_Get ("r_finish", "0", CVAR_ARCHIVE_ND);
        r_textureMode = ri.Cvar_Get( "r_textureMode", 
"GL_LINEAR_MIPMAP_LINEAR", CVAR_ARCHIVE );
-       r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE );
-       r_facePlaneCull = ri.Cvar_Get ("r_facePlaneCull", "1", CVAR_ARCHIVE );
+       r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE_ND );
+       r_facePlaneCull = ri.Cvar_Get ("r_facePlaneCull", "1", CVAR_ARCHIVE_ND 
);
 
-       r_dlightStyle = ri.Cvar_Get ("r_dlightStyle", "1", CVAR_ARCHIVE);
-       r_surfaceSprites = ri.Cvar_Get ("r_surfaceSprites", "1", CVAR_ARCHIVE);
+       r_dlightStyle = ri.Cvar_Get ("r_dlightStyle", "1", CVAR_ARCHIVE_ND);
+       r_surfaceSprites = ri.Cvar_Get ("r_surfaceSprites", "1", 
CVAR_ARCHIVE_ND);
        r_surfaceWeather = ri.Cvar_Get ("r_surfaceWeather", "0", CVAR_TEMP);
 
        r_windSpeed = ri.Cvar_Get ("r_windSpeed", "0", 0);
@@ -1570,7 +1570,7 @@ void R_Register( void )
        r_windPointX = ri.Cvar_Get ("r_windPointX", "0", 0);
        r_windPointY = ri.Cvar_Get ("r_windPointY", "0", 0);
 
-       r_primitives = ri.Cvar_Get( "r_primitives", "0", CVAR_ARCHIVE );
+       r_primitives = ri.Cvar_Get( "r_primitives", "0", CVAR_ARCHIVE_ND );
        ri.Cvar_CheckRange( r_primitives, MIN_PRIMITIVES, MAX_PRIMITIVES, qtrue 
);
 
        r_ambientScale = ri.Cvar_Get( "r_ambientScale", "0.5", CVAR_CHEAT );
@@ -1610,7 +1610,7 @@ void R_Register( void )
        r_debugSurface = ri.Cvar_Get ("r_debugSurface", "0", CVAR_CHEAT);
        r_nobind = ri.Cvar_Get ("r_nobind", "0", CVAR_CHEAT);
        r_showtris = ri.Cvar_Get ("r_showtris", "0", CVAR_CHEAT);
-       r_showtriscolor = ri.Cvar_Get ("r_showtriscolor", "0", CVAR_ARCHIVE);
+       r_showtriscolor = ri.Cvar_Get ("r_showtriscolor", "0", CVAR_ARCHIVE_ND);
        r_showsky = ri.Cvar_Get ("r_showsky", "0", CVAR_CHEAT);
        r_shownormals = ri.Cvar_Get ("r_shownormals", "0", CVAR_CHEAT);
        r_clear = ri.Cvar_Get ("r_clear", "0", CVAR_CHEAT);
@@ -1619,7 +1619,7 @@ void R_Register( void )
        r_lockpvs = ri.Cvar_Get ("r_lockpvs", "0", CVAR_CHEAT);
        r_noportals = ri.Cvar_Get ("r_noportals", "0", CVAR_CHEAT);
        r_shadows = ri.Cvar_Get( "cg_shadows", "1", 0 );
-       r_shadowRange = ri.Cvar_Get( "r_shadowRange", "1000", CVAR_ARCHIVE );
+       r_shadowRange = ri.Cvar_Get( "r_shadowRange", "1000", CVAR_ARCHIVE_ND );
 
 /*
 Ghoul2 Insert Start
@@ -1664,9 +1664,9 @@ Ghoul2 Insert End
                ri.Cvar_Set("r_modelpoolmegs", "0");
        }
 
-       r_environmentMapping = ri.Cvar_Get( "r_environmentMapping", "1", 
CVAR_ARCHIVE );
+       r_environmentMapping = ri.Cvar_Get( "r_environmentMapping", "1", 
CVAR_ARCHIVE_ND );
 
-       r_screenshotJpegQuality                         = ri.Cvar_Get( 
"r_screenshotJpegQuality",                       "95",                          
                 CVAR_ARCHIVE );
+       r_screenshotJpegQuality                         = ri.Cvar_Get( 
"r_screenshotJpegQuality",                       "95",                          
                 CVAR_ARCHIVE_ND );
 
        ri.Cvar_CheckRange( r_screenshotJpegQuality, 10, 100, qtrue );
 
diff --git a/codemp/client/FxUtil.cpp b/codemp/client/FxUtil.cpp
index ca709d0..aaf29fd 100644
--- a/codemp/client/FxUtil.cpp
+++ b/codemp/client/FxUtil.cpp
@@ -110,8 +110,8 @@ int FX_Init( refdef_t* refdef )
        fx_freeze = Cvar_Get("fx_freeze", "0", CVAR_CHEAT);
 #endif
        fx_debug = Cvar_Get("fx_debug", "0", CVAR_TEMP);
-       fx_countScale = Cvar_Get("fx_countScale", "1", CVAR_ARCHIVE);
-       fx_nearCull = Cvar_Get("fx_nearCull", "16", CVAR_ARCHIVE);
+       fx_countScale = Cvar_Get("fx_countScale", "1", CVAR_ARCHIVE_ND);
+       fx_nearCull = Cvar_Get("fx_nearCull", "16", CVAR_ARCHIVE_ND);
 
        theFxHelper.ReInit(refdef);
 
diff --git a/codemp/client/cl_console.cpp b/codemp/client/cl_console.cpp
index 9002bce..fa9e170 100644
--- a/codemp/client/cl_console.cpp
+++ b/codemp/client/cl_console.cpp
@@ -362,8 +362,8 @@ void Con_Init (void) {
        con_conspeed = Cvar_Get ("scr_conspeed", "3", 0, "Console open/close 
speed");
        Cvar_CheckRange (con_conspeed, 1.0f, 100.0f, qfalse);
 
-       con_opacity = Cvar_Get ("con_opacity", "1.0", CVAR_ARCHIVE, "Opacity of 
console background");
-       con_autoclear = Cvar_Get ("con_autoclear", "1", CVAR_ARCHIVE, 
"Automatically clear console input on close");
+       con_opacity = Cvar_Get ("con_opacity", "1.0", CVAR_ARCHIVE_ND, "Opacity 
of console background");
+       con_autoclear = Cvar_Get ("con_autoclear", "1", CVAR_ARCHIVE_ND, 
"Automatically clear console input on close");
 
        Field_Clear( &g_consoleField );
        g_consoleField.widthInChars = g_console_field_width;
diff --git a/codemp/client/cl_main.cpp b/codemp/client/cl_main.cpp
index bf5d85b..7d316a7 100644
--- a/codemp/client/cl_main.cpp
+++ b/codemp/client/cl_main.cpp
@@ -1677,7 +1677,7 @@ void CL_ServersResponsePacket( const netadr_t *from, 
msg_t *msg ) {
        byte*                   buffptr;
        byte*                   buffend;
 
-       Com_Printf("CL_ServersResponsePacket\n");
+       Com_Printf("CL_ServersResponsePacket from %s\n", NET_AdrToString( *from 
) );
 
        if (cls.numglobalservers == -1) {
                // state to detect lack of servers or lack of response
@@ -2685,11 +2685,11 @@ void CL_Init( void ) {
        // register our variables
        //
        cl_noprint = Cvar_Get( "cl_noprint", "0", 0 );
-       cl_motd = Cvar_Get ("cl_motd", "1", CVAR_ARCHIVE, "Display welcome 
message from master server on the bottom of connection screen" );
+       cl_motd = Cvar_Get ("cl_motd", "1", CVAR_ARCHIVE_ND, "Display welcome 
message from master server on the bottom of connection screen" );
        cl_motdServer[0] = Cvar_Get( "cl_motdServer1", UPDATE_SERVER_NAME, 0 );
        cl_motdServer[1] = Cvar_Get( "cl_motdServer2", 
JKHUB_UPDATE_SERVER_NAME, 0 );
        for ( int index = 2; index < MAX_MASTER_SERVERS; index++ )
-               cl_motdServer[index] = Cvar_Get( va( "cl_motdServer%d", index + 
1 ), "", CVAR_ARCHIVE );
+               cl_motdServer[index] = Cvar_Get( va( "cl_motdServer%d", index + 
1 ), "", CVAR_ARCHIVE_ND );
 
        cl_timeout = Cvar_Get ("cl_timeout", "200", 0);
 
@@ -2709,34 +2709,34 @@ void CL_Init( void ) {
 
        rconAddress = Cvar_Get ("rconAddress", "", 0, "Alternate server address 
to remotely access via rcon protocol");
 
-       cl_yawspeed = Cvar_Get ("cl_yawspeed", "140", CVAR_ARCHIVE);
-       cl_pitchspeed = Cvar_Get ("cl_pitchspeed", "140", CVAR_ARCHIVE);
-       cl_anglespeedkey = Cvar_Get ("cl_anglespeedkey", "1.5", CVAR_ARCHIVE);
+       cl_yawspeed = Cvar_Get ("cl_yawspeed", "140", CVAR_ARCHIVE_ND );
+       cl_pitchspeed = Cvar_Get ("cl_pitchspeed", "140", CVAR_ARCHIVE_ND );
+       cl_anglespeedkey = Cvar_Get ("cl_anglespeedkey", "1.5", CVAR_ARCHIVE_ND 
);
 
        cl_maxpackets = Cvar_Get ("cl_maxpackets", "63", CVAR_ARCHIVE );
-       cl_packetdup = Cvar_Get ("cl_packetdup", "1", CVAR_ARCHIVE );
+       cl_packetdup = Cvar_Get ("cl_packetdup", "1", CVAR_ARCHIVE_ND );
 
-       cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE, "Always run");
+       cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE_ND, "Always run");
        cl_sensitivity = Cvar_Get ("sensitivity", "5", CVAR_ARCHIVE, "Mouse 
sensitivity value");
-       cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE, "Mouse 
acceleration value");
-       cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE, "Mouse look" 
);
+       cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE_ND, "Mouse 
acceleration value");
+       cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE_ND, "Mouse 
look" );
 
        // 0: legacy mouse acceleration
        // 1: new implementation
-       cl_mouseAccelStyle = Cvar_Get( "cl_mouseAccelStyle", "0", CVAR_ARCHIVE, 
"Mouse accelration style (0:legacy, 1:QuakeLive)" );
+       cl_mouseAccelStyle = Cvar_Get( "cl_mouseAccelStyle", "0", 
CVAR_ARCHIVE_ND, "Mouse accelration style (0:legacy, 1:QuakeLive)" );
        // offset for the power function (for style 1, ignored otherwise)
        // this should be set to the max rate value
-       cl_mouseAccelOffset = Cvar_Get( "cl_mouseAccelOffset", "5", 
CVAR_ARCHIVE, "Mouse acceleration offset for style 1" );
+       cl_mouseAccelOffset = Cvar_Get( "cl_mouseAccelOffset", "5", 
CVAR_ARCHIVE_ND, "Mouse acceleration offset for style 1" );
 
        cl_showMouseRate = Cvar_Get ("cl_showmouserate", "0", 0);
        cl_framerate    = Cvar_Get ("cl_framerate", "0", CVAR_TEMP);
-       cl_allowDownload = Cvar_Get ("cl_allowDownload", "0", CVAR_ARCHIVE, 
"Allow downloading custom paks from server");
-       cl_allowAltEnter = Cvar_Get ("cl_allowAltEnter", "1", CVAR_ARCHIVE, 
"Enables use of ALT+ENTER keyboard combo to toggle fullscreen" );
+       cl_allowDownload = Cvar_Get ("cl_allowDownload", "0", CVAR_ARCHIVE_ND, 
"Allow downloading custom paks from server");
+       cl_allowAltEnter = Cvar_Get ("cl_allowAltEnter", "1", CVAR_ARCHIVE_ND, 
"Enables use of ALT+ENTER keyboard combo to toggle fullscreen" );
 
-       cl_autolodscale = Cvar_Get( "cl_autolodscale", "1", CVAR_ARCHIVE );
+       cl_autolodscale = Cvar_Get( "cl_autolodscale", "1", CVAR_ARCHIVE_ND );
 
        cl_conXOffset = Cvar_Get ("cl_conXOffset", "0", 0);
-       cl_inGameVideo = Cvar_Get ("r_inGameVideo", "1", CVAR_ARCHIVE);
+       cl_inGameVideo = Cvar_Get ("r_inGameVideo", "1", CVAR_ARCHIVE_ND );
 
        cl_serverStatusResendTime = Cvar_Get ("cl_serverStatusResendTime", 
"750", 0);
 
@@ -2744,34 +2744,34 @@ void CL_Init( void ) {
        // if the cgame hasn't been started
        Cvar_Get ("cg_autoswitch", "1", CVAR_ARCHIVE);
 
-       m_pitchVeh = Cvar_Get ("m_pitchVeh", "0.022", CVAR_ARCHIVE);
-       m_pitch = Cvar_Get ("m_pitch", "0.022", CVAR_ARCHIVE);
-       m_yaw = Cvar_Get ("m_yaw", "0.022", CVAR_ARCHIVE);
-       m_forward = Cvar_Get ("m_forward", "0.25", CVAR_ARCHIVE);
-       m_side = Cvar_Get ("m_side", "0.25", CVAR_ARCHIVE);
+       m_pitchVeh = Cvar_Get ("m_pitchVeh", "0.022", CVAR_ARCHIVE_ND);
+       m_pitch = Cvar_Get ("m_pitch", "0.022", CVAR_ARCHIVE_ND);
+       m_yaw = Cvar_Get ("m_yaw", "0.022", CVAR_ARCHIVE_ND);
+       m_forward = Cvar_Get ("m_forward", "0.25", CVAR_ARCHIVE_ND);
+       m_side = Cvar_Get ("m_side", "0.25", CVAR_ARCHIVE_ND);
 #ifdef MACOS_X
         // Input is jittery on OS X w/o this
-       m_filter = Cvar_Get ("m_filter", "1", CVAR_ARCHIVE);
+       m_filter = Cvar_Get ("m_filter", "1", CVAR_ARCHIVE_ND);
 #else
-       m_filter = Cvar_Get ("m_filter", "0", CVAR_ARCHIVE);
+       m_filter = Cvar_Get ("m_filter", "0", CVAR_ARCHIVE_ND);
 #endif
 
        cl_motdString = Cvar_Get( "cl_motdString", "", CVAR_ROM );
 
-       Cvar_Get( "cl_maxPing", "800", CVAR_ARCHIVE, "Max. ping for servers 
when searching the serverlist" );
+       Cvar_Get( "cl_maxPing", "800", CVAR_ARCHIVE_ND, "Max. ping for servers 
when searching the serverlist" );
 
-       cl_lanForcePackets = Cvar_Get ("cl_lanForcePackets", "1", CVAR_ARCHIVE);
+       cl_lanForcePackets = Cvar_Get ("cl_lanForcePackets", "1", 
CVAR_ARCHIVE_ND);
 
        // enable the ja_guid player identifier in userinfo by default in OpenJK
-       cl_enableGuid = Cvar_Get("cl_enableGuid", "1", CVAR_ARCHIVE, "Enable 
GUID userinfo identifier" );
-       cl_guidServerUniq = Cvar_Get ("cl_guidServerUniq", "1", CVAR_ARCHIVE, 
"Use a unique guid value per server" );
+       cl_enableGuid = Cvar_Get("cl_enableGuid", "1", CVAR_ARCHIVE_ND, "Enable 
GUID userinfo identifier" );
+       cl_guidServerUniq = Cvar_Get ("cl_guidServerUniq", "1", 
CVAR_ARCHIVE_ND, "Use a unique guid value per server" );
 
        // ~ and `, as keys and characters
        cl_consoleKeys = Cvar_Get( "cl_consoleKeys", "~ ` 0x7e 0x60 0xb2", 
CVAR_ARCHIVE, "Which keys are used to toggle the console");
        cl_consoleUseScanCode = Cvar_Get( "cl_consoleUseScanCode", "1", 
CVAR_ARCHIVE, "Use native console key detection" );
 
        // userinfo
-       Cvar_Get ("name", "Padawan", CVAR_USERINFO | CVAR_ARCHIVE, "Player 
name" );
+       Cvar_Get ("name", "Padawan", CVAR_USERINFO | CVAR_ARCHIVE_ND, "Player 
name" );
        Cvar_Get ("rate", "25000", CVAR_USERINFO | CVAR_ARCHIVE, "Data rate" );
        Cvar_Get ("snaps", "40", CVAR_USERINFO | CVAR_ARCHIVE, "Client 
snapshots per second" );
        Cvar_Get ("model", DEFAULT_MODEL"/default", CVAR_USERINFO | 
CVAR_ARCHIVE, "Player model" );
@@ -2795,7 +2795,7 @@ void CL_Init( void ) {
        Cvar_Get ("char_color_blue",  "255", CVAR_USERINFO | CVAR_ARCHIVE, 
"Player tint (Blue)" );
 
        // cgame might not be initialized before menu is used
-       Cvar_Get ("cg_viewsize", "100", CVAR_ARCHIVE );
+       Cvar_Get ("cg_viewsize", "100", CVAR_ARCHIVE_ND );
 
        //
        // register our commands
@@ -2857,7 +2857,7 @@ void CL_Shutdown( void ) {
        //Com_Printf( "----- CL_Shutdown -----\n" );
 
        if ( recursive ) {
-               printf ("recursive CL_Shutdown shutdown\n");
+               Com_Printf ("WARNING: Recursive CL_Shutdown called!\n");
                return;
        }
        recursive = qtrue;
@@ -3292,6 +3292,13 @@ void CL_LocalServers_f( void ) {
 /*
 ==================
 CL_GlobalServers_f
+
+Originally master 0 was Internet and master 1 was MPlayer.
+ioquake3 2008; added support for requesting five separate master servers using 
0-4.
+ioquake3 2017; made master 0 fetch all master servers and 1-5 request a single 
master server.
+OpenJK 2013; added support for requesting five separate master servers using 
0-4.
+OpenJK July 2017; made master 0 fetch all master servers and 1-5 request a 
single master server.
+
 ==================
 */
 void CL_GlobalServers_f( void ) {
@@ -3299,9 +3306,32 @@ void CL_GlobalServers_f( void ) {
        int                     count, i, masterNum;
        char            command[1024], *masteraddress;
 
-       if ((count = Cmd_Argc()) < 3 || (masterNum = atoi(Cmd_Argv(1))) < 0 || 
masterNum > MAX_MASTER_SERVERS - 1)
+       if ((count = Cmd_Argc()) < 3 || (masterNum = atoi(Cmd_Argv(1))) < 0 || 
masterNum > MAX_MASTER_SERVERS)
        {
-               Com_Printf("usage: globalservers <master# 0-%d> <protocol> 
[keywords]\n", MAX_MASTER_SERVERS - 1);
+               Com_Printf("usage: globalservers <master# 0-%d> <protocol> 
[keywords]\n", MAX_MASTER_SERVERS);
+               return;
+       }
+
+       // request from all master servers
+       if ( masterNum == 0 ) {
+               int numAddress = 0;
+
+               for ( i = 1; i <= MAX_MASTER_SERVERS; i++ ) {
+                       Com_sprintf( command, sizeof(command), "sv_master%d", i 
);
+                       masteraddress = Cvar_VariableString(command);
+
+                       if(!*masteraddress)
+                               continue;
+
+                       numAddress++;
+
+                       Com_sprintf(command, sizeof(command), "globalservers %d 
%s %s\n", i, Cmd_Argv(2), Cmd_ArgsFrom(3));
+                       Cbuf_AddText(command);
+               }
+
+               if ( !numAddress ) {
+                       Com_Printf( "CL_GlobalServers_f: Error: No master 
server addresses.\n");
+               }
                return;
        }
 
diff --git a/codemp/client/snd_dma.cpp b/codemp/client/snd_dma.cpp
index 077487c..ab12418 100644
--- a/codemp/client/snd_dma.cpp
+++ b/codemp/client/snd_dma.cpp
@@ -454,7 +454,7 @@ void S_Init( void ) {
        s_musicVolume = Cvar_Get ("s_musicvolume", "0.25", CVAR_ARCHIVE, "Music 
Volume" );
        s_separation = Cvar_Get ("s_separation", "0.5", CVAR_ARCHIVE);
        s_khz = Cvar_Get ("s_khz", "44", CVAR_ARCHIVE|CVAR_LATCH);
-       s_allowDynamicMusic = Cvar_Get ("s_allowDynamicMusic", "1", 
CVAR_ARCHIVE);
+       s_allowDynamicMusic = Cvar_Get ("s_allowDynamicMusic", "1", 
CVAR_ARCHIVE_ND);
        s_mixahead = Cvar_Get ("s_mixahead", "0.2", CVAR_ARCHIVE);
 
        s_mixPreStep = Cvar_Get ("s_mixPreStep", "0.05", CVAR_ARCHIVE);
@@ -468,7 +468,7 @@ void S_Init( void ) {
 
        s_language = Cvar_Get("s_language","english",CVAR_ARCHIVE | 
CVAR_NORESTART, "Sound language" );
 
-       s_doppler = Cvar_Get("s_doppler", "1", CVAR_ARCHIVE);
+       s_doppler = Cvar_Get("s_doppler", "1", CVAR_ARCHIVE_ND);
 
        MP3_InitCvars();
 
diff --git a/codemp/qcommon/cm_load.cpp b/codemp/qcommon/cm_load.cpp
index b83eb21..2ae8a08 100644
--- a/codemp/qcommon/cm_load.cpp
+++ b/codemp/qcommon/cm_load.cpp
@@ -633,7 +633,7 @@ static void CM_LoadMap_Actual( const char *name, qboolean 
clientload, int *check
 #ifndef BSPC
        cm_noAreas = Cvar_Get ("cm_noAreas", "0", CVAR_CHEAT);
        cm_noCurves = Cvar_Get ("cm_noCurves", "0", CVAR_CHEAT);
-       cm_playerCurveClip = Cvar_Get ("cm_playerCurveClip", "1", 
CVAR_ARCHIVE|CVAR_CHEAT );
+       cm_playerCurveClip = Cvar_Get ("cm_playerCurveClip", "1", 
CVAR_ARCHIVE_ND|CVAR_CHEAT );
        cm_extraVerbose = Cvar_Get ("cm_extraVerbose", "0", CVAR_TEMP );
 #endif
        Com_DPrintf( "CM_LoadMap( %s, %i )\n", name, clientload );
diff --git a/codemp/qcommon/common.cpp b/codemp/qcommon/common.cpp
index 675e6b5..52c1446 100644
--- a/codemp/qcommon/common.cpp
+++ b/codemp/qcommon/common.cpp
@@ -1229,17 +1229,17 @@ void Com_Init( char *commandLine ) {
                com_cl_running = Cvar_Get ("cl_running", "0", CVAR_ROM, "Is the 
client running?" );
                com_buildScript = Cvar_Get( "com_buildScript", "0", 0 );
 #ifndef _WIN32
-               com_ansiColor = Cvar_Get( "com_ansiColor", "0", CVAR_ARCHIVE );
+               com_ansiColor = Cvar_Get( "com_ansiColor", "0", CVAR_ARCHIVE_ND 
);
 #endif
 
 #ifdef G2_PERFORMANCE_ANALYSIS
                com_G2Report = Cvar_Get("com_G2Report", "0", 0);
 #endif
 
-               com_affinity = Cvar_Get( "com_affinity", "0", CVAR_ARCHIVE );
-               com_busyWait = Cvar_Get( "com_busyWait", "0", CVAR_ARCHIVE );
+               com_affinity = Cvar_Get( "com_affinity", "0", CVAR_ARCHIVE_ND );
+               com_busyWait = Cvar_Get( "com_busyWait", "0", CVAR_ARCHIVE_ND );
 
-               com_bootlogo = Cvar_Get( "com_bootlogo", "1", CVAR_ARCHIVE, 
"Show intro movies" );
+               com_bootlogo = Cvar_Get( "com_bootlogo", "1", CVAR_ARCHIVE_ND, 
"Show intro movies" );
 
                s = va("%s %s %s", JK_VERSION_OLD, PLATFORM_STRING, SOURCE_DATE 
);
                com_version = Cvar_Get ("version", s, CVAR_ROM | 
CVAR_SERVERINFO );
diff --git a/codemp/qcommon/cvar.cpp b/codemp/qcommon/cvar.cpp
index f3bafa4..f4a2977 100644
--- a/codemp/qcommon/cvar.cpp
+++ b/codemp/qcommon/cvar.cpp
@@ -24,12 +24,8 @@ along with this program; if not, see 
<http://www.gnu.org/licenses/>.
 
 // cvar.c -- dynamic variable tracking
 
-#include <vector>
-#include <algorithm>
 #include "qcommon/qcommon.h"
 
-typedef std::vector<cvar_t *> CvarPtrVector;
-
 cvar_t         *cvar_vars = NULL;
 cvar_t         *cvar_cheats;
 uint32_t       cvar_modifiedFlags;
@@ -40,6 +36,7 @@ int                   cvar_numIndexes;
 
 #define FILE_HASH_SIZE         512
 static cvar_t*         hashTable[FILE_HASH_SIZE];
+static qboolean cvar_sort = qfalse;
 
 static char *lastMemPool = NULL;
 static int memPoolSize;
@@ -500,9 +497,75 @@ cvar_t *Cvar_Get( const char *var_name, const char 
*var_value, uint32_t flags, c
        var->hashPrev = NULL;
        hashTable[hash] = var;
 
+       // sort on write
+       cvar_sort = qtrue;
+
        return var;
 }
 
+static void Cvar_QSortByName( cvar_t **a, int n ) 
+{
+       cvar_t *temp;
+       cvar_t *m;
+       int     i, j; 
+
+       i = 0;
+       j = n;
+       m = a[ n>>1 ];
+
+       do {
+               // sort in descending order
+               while ( strcmp( a[i]->name, m->name ) > 0 ) i++;
+               while ( strcmp( a[j]->name, m->name ) < 0 ) j--;
+
+               if ( i <= j ) {
+                       temp = a[i]; 
+                       a[i] = a[j]; 
+                       a[j] = temp;
+                       i++; 
+                       j--;
+               }
+       } while ( i <= j );
+
+       if ( j > 0 ) Cvar_QSortByName( a, j );
+       if ( n > i ) Cvar_QSortByName( a+i, n-i );
+}
+
+
+static void Cvar_Sort( void ) 
+{
+       cvar_t *list[ MAX_CVARS ], *var;
+       int count;
+       int i;
+
+       for ( count = 0, var = cvar_vars; var; var = var->next ) {
+               if ( var->name ) {
+                       list[ count++ ] = var;
+               } else {
+                       Com_Error( ERR_FATAL, "Cvar_Sort: NULL cvar name" );
+               }
+       }
+
+       if ( count < 2 ) {
+               return; // nothing to sort
+       }
+
+       Cvar_QSortByName( &list[0], count-1 );
+       
+       cvar_vars = NULL;
+
+       // relink cvars
+       for ( i = 0; i < count; i++ ) {
+               var = list[ i ];
+               // link the variable in
+               var->next = cvar_vars;
+               if ( cvar_vars )
+                       cvar_vars->prev = var;
+               var->prev = NULL;
+               cvar_vars = var;
+       }
+}
+
 /*
 ============
 Cvar_Print
@@ -1082,11 +1145,6 @@ void Cvar_Reset_f( void ) {
        Cvar_Reset( Cmd_Argv( 1 ) );
 }
 
-bool CvarSort(const cvar_t *cv1, const cvar_t *cv2)
-{
-       return Q_stricmp(cv1->name, cv2->name) < 0;
-}
-
 /*
 ============
 Cvar_WriteVariables
@@ -1096,39 +1154,45 @@ with the archive flag set to qtrue.
 ============
 */
 void Cvar_WriteVariables( fileHandle_t f ) {
-       CvarPtrVector cvars;
-       for (cvar_t *var = cvar_vars ; var ; var = var->next) {
-               if( !var->name )
-                       continue;
+       cvar_t  *var;
+       char buffer[1024];
 
-               if( var->flags & CVAR_ARCHIVE ) {
-                       cvars.push_back( var );
-               }
+       if ( cvar_sort ) {
+               Com_DPrintf( "%s: sort cvars\n", __func__ );
+               cvar_sort = qfalse;
+               Cvar_Sort();
        }
 
-       std::sort( cvars.begin(), cvars.end(), CvarSort );
-
-       CvarPtrVector::const_iterator itr;
-       char buffer[1024];
-       for ( itr = cvars.begin(); itr != cvars.end(); ++itr )
+       for ( var = cvar_vars; var; var = var->next )
        {
-               // write the latched value, even if it hasn't taken effect yet
-               if ( (*itr)->latchedString ) {
-                       if( strlen( (*itr)->name ) + strlen( 
(*itr)->latchedString ) + 10 > sizeof( buffer ) ) {
-                               Com_Printf( S_COLOR_YELLOW "WARNING: value of 
variable "
-                                               "\"%s\" too long to write to 
file\n", (*itr)->name );
-                               continue;
-                       }
-                       Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", (*itr)->name, (*itr)->latchedString);
-               } else {
-                       if( strlen( (*itr)->name ) + strlen( (*itr)->string ) + 
10 > sizeof( buffer ) ) {
-                               Com_Printf( S_COLOR_YELLOW "WARNING: value of 
variable "
-                                               "\"%s\" too long to write to 
file\n", (*itr)->name );
-                               continue;
+               if ( !var->name || Q_stricmp( var->name, "cl_cdkey" ) == 0 )
+                       continue;
+
+               if ( var->flags & CVAR_ARCHIVE ) {
+                       // write the latched value, even if it hasn't taken 
effect yet
+                       if ( var->latchedString ) {
+                               if( strlen( var->name ) + strlen( 
var->latchedString ) + 10 > sizeof( buffer ) ) {
+                                       Com_Printf( S_COLOR_YELLOW "WARNING: 
value of variable "
+                                                       "\"%s\" too long to 
write to file\n", var->name );
+                                       continue;
+                               }
+                               if ( (var->flags & CVAR_NODEFAULT) && !strcmp( 
var->latchedString, var->resetString ) ) {
+                                       continue;
+                               }
+                               Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", var->name, var->latchedString);
+                       } else {
+                               if( strlen( var->name ) + strlen( var->string ) 
+ 10 > sizeof( buffer ) ) {
+                                       Com_Printf( S_COLOR_YELLOW "WARNING: 
value of variable "
+                                                       "\"%s\" too long to 
write to file\n", var->name );
+                                       continue;
+                               }
+                               if ( (var->flags & CVAR_NODEFAULT) && !strcmp( 
var->string, var->resetString ) ) {
+                                       continue;
+                               }
+                               Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", var->name, var->string);
                        }
-                       Com_sprintf (buffer, sizeof(buffer), "seta %s 
\"%s\"\n", (*itr)->name, (*itr)->string);
+                       FS_Write( buffer, strlen( buffer ), f );
                }
-               FS_Write( buffer, strlen( buffer ), f );
        }
 }
 
@@ -1141,7 +1205,6 @@ void Cvar_List_f( void ) {
        cvar_t *var = NULL;
        int i = 0;
        char *match = NULL;
-       CvarPtrVector cvars;
 
        if ( Cmd_Argc() > 1 )
                match = Cmd_Argv( 1 );
@@ -1153,19 +1216,6 @@ void Cvar_List_f( void ) {
                if ( !var->name || (match && !Com_Filter( match, var->name, 
qfalse )) )
                        continue;
 
-               cvars.push_back( var );
-       }
-
-
-       // sort list alphabetically
-       std::sort( cvars.begin(), cvars.end(), CvarSort );
-
-       CvarPtrVector::const_iterator itr;
-       for ( itr = cvars.begin();
-               itr != cvars.end();
-               ++itr )
-       {
-               var = (*itr);
                if (var->flags & CVAR_SERVERINFO)       Com_Printf( "S" );      
else Com_Printf( " " );
                if (var->flags & CVAR_SYSTEMINFO)       Com_Printf( "s" );      
else Com_Printf( " " );
                if (var->flags & CVAR_USERINFO)         Com_Printf( "U" );      
else Com_Printf( " " );
@@ -1189,36 +1239,20 @@ void Cvar_List_f( void ) {
 
 void Cvar_ListModified_f( void ) {
        cvar_t *var = NULL;
-       int i = 0;
-       CvarPtrVector cvars;
 
        // build a list of cvars that are modified
-       for ( var=cvar_vars, i=0;
+       for ( var=cvar_vars;
                var;
-               var=var->next, i++ )
+               var=var->next )
        {
                char *value = var->latchedString ? var->latchedString : 
var->string;
                if ( !var->name || !var->modificationCount || !strcmp( value, 
var->resetString ) )
                        continue;
 
-               cvars.push_back( var );
-       }
-
-       // sort list alphabetically
-       std::sort( cvars.begin(), cvars.end(), CvarSort );
-
-       // print them
-       CvarPtrVector::const_iterator itr;
-       for ( itr = cvars.begin();
-               itr != cvars.end();
-               ++itr )
-       {
-               char *value = (*itr)->latchedString ? (*itr)->latchedString : 
(*itr)->string;
-
                Com_Printf( S_COLOR_GREY "Cvar "
                        S_COLOR_WHITE "%s = " S_COLOR_GREY "\"" S_COLOR_WHITE 
"%s" S_COLOR_GREY "\"" S_COLOR_WHITE ", "
                        S_COLOR_WHITE "default = " S_COLOR_GREY "\"" 
S_COLOR_WHITE "%s" S_COLOR_GREY "\"" S_COLOR_WHITE "\n",
-                       (*itr)->name, value, (*itr)->resetString );
+                       var->name, value, var->resetString );
        }
 }
 
diff --git a/codemp/qcommon/net_ip.cpp b/codemp/qcommon/net_ip.cpp
index cdd589b..bf72ebc 100644
--- a/codemp/qcommon/net_ip.cpp
+++ b/codemp/qcommon/net_ip.cpp
@@ -855,11 +855,11 @@ NET_GetCvars
 static qboolean NET_GetCvars( void ) {
        int     modified = 0;
 
-       net_enabled = Cvar_Get( "net_enabled", "1", CVAR_LATCH | CVAR_ARCHIVE );
+       net_enabled = Cvar_Get( "net_enabled", "1", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified = net_enabled->modified;
        net_enabled->modified = qfalse;
 
-       net_forcenonlocal = Cvar_Get( "net_forcenonlocal", "0", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_forcenonlocal = Cvar_Get( "net_forcenonlocal", "0", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_forcenonlocal->modified;
        net_forcenonlocal->modified = qfalse;
 
@@ -871,23 +871,23 @@ static qboolean NET_GetCvars( void ) {
        modified += net_port->modified;
        net_port->modified = qfalse;
 
-       net_socksEnabled = Cvar_Get( "net_socksEnabled", "0", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_socksEnabled = Cvar_Get( "net_socksEnabled", "0", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_socksEnabled->modified;
        net_socksEnabled->modified = qfalse;
 
-       net_socksServer = Cvar_Get( "net_socksServer", "", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_socksServer = Cvar_Get( "net_socksServer", "", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_socksServer->modified;
        net_socksServer->modified = qfalse;
 
-       net_socksPort = Cvar_Get( "net_socksPort", "1080", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_socksPort = Cvar_Get( "net_socksPort", "1080", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_socksPort->modified;
        net_socksPort->modified = qfalse;
 
-       net_socksUsername = Cvar_Get( "net_socksUsername", "", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_socksUsername = Cvar_Get( "net_socksUsername", "", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_socksUsername->modified;
        net_socksUsername->modified = qfalse;
 
-       net_socksPassword = Cvar_Get( "net_socksPassword", "", CVAR_LATCH | 
CVAR_ARCHIVE );
+       net_socksPassword = Cvar_Get( "net_socksPassword", "", CVAR_LATCH | 
CVAR_ARCHIVE_ND );
        modified += net_socksPassword->modified;
        net_socksPassword->modified = qfalse;
 
diff --git a/codemp/qcommon/q_shared.h b/codemp/qcommon/q_shared.h
index d499940..ff86f3a 100644
--- a/codemp/qcommon/q_shared.h
+++ b/codemp/qcommon/q_shared.h
@@ -726,6 +726,9 @@ Many variables can be used for cheating purposes, so when 
cheats is zero,
 #define CVAR_SERVER_CREATED    (0x00002000u)   // cvar was created by a server 
the client connected to.
 #define CVAR_VM_CREATED                (0x00004000u)   // cvar was created 
exclusively in one of the VMs.
 #define CVAR_PROTECTED         (0x00008000u)   // prevent modifying this var 
from VMs or the server
+#define CVAR_NODEFAULT         (0x00010000u)   // do not write to config if 
matching with default value
+
+#define CVAR_ARCHIVE_ND                (CVAR_ARCHIVE | CVAR_NODEFAULT)
 // These flags are only returned by the Cvar_Flags() function
 #define CVAR_MODIFIED          (0x40000000u)   // Cvar was modified
 #define CVAR_NONEXISTENT       (0x80000000u)   // Cvar doesn't exist.
diff --git a/codemp/rd-dedicated/tr_init.cpp b/codemp/rd-dedicated/tr_init.cpp
index f44131a..a96cdc2 100644
--- a/codemp/rd-dedicated/tr_init.cpp
+++ b/codemp/rd-dedicated/tr_init.cpp
@@ -298,9 +298,9 @@ static const size_t numCommands = ARRAY_LEN( commands );
 #define MAX_PRIMITIVES 3
 
 #ifdef _WIN32
-#define SWAPINTERVAL_FLAGS CVAR_ARCHIVE
+#define SWAPINTERVAL_FLAGS CVAR_ARCHIVE_ND
 #else
-#define SWAPINTERVAL_FLAGS CVAR_ARCHIVE | CVAR_LATCH
+#define SWAPINTERVAL_FLAGS CVAR_ARCHIVE_ND | CVAR_LATCH
 #endif
 
 /*
@@ -313,76 +313,76 @@ void R_Register( void )
        //
        // latched and archived variables
        //
-       r_allowExtensions                                       = ri->Cvar_Get( 
"r_allowExtensions",                            "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compressed_textures                       = ri->Cvar_Get( 
"r_ext_compress_textures",                      "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compressed_lightmaps                      = ri->Cvar_Get( 
"r_ext_compress_lightmaps",                     "0",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_preferred_tc_method                       = ri->Cvar_Get( 
"r_ext_preferred_tc_method",            "0",                                    
        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_gamma_control                                     = ri->Cvar_Get( 
"r_ext_gamma_control",                          "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_multitexture                                      = ri->Cvar_Get( 
"r_ext_multitexture",                           "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compiled_vertex_array                     = ri->Cvar_Get( 
"r_ext_compiled_vertex_array",          "1",                                    
        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_texture_env_add                           = ri->Cvar_Get( 
"r_ext_texture_env_add",                        "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_texture_filter_anisotropic        = ri->Cvar_Get( 
"r_ext_texture_filter_anisotropic",     "16",                                   
        CVAR_ARCHIVE, "" );
-       r_DynamicGlow                                           = ri->Cvar_Get( 
"r_DynamicGlow",                                        "0",                    
                        CVAR_ARCHIVE, "" );
-       r_DynamicGlowPasses                                     = ri->Cvar_Get( 
"r_DynamicGlowPasses",                          "5",                            
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowDelta                                      = ri->Cvar_Get( 
"r_DynamicGlowDelta",                           "0.8f",                         
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowIntensity                          = ri->Cvar_Get( 
"r_DynamicGlowIntensity",                       "1.13f",                        
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowSoft                                       = ri->Cvar_Get( 
"r_DynamicGlowSoft",                            "1",                            
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowWidth                                      = ri->Cvar_Get( 
"r_DynamicGlowWidth",                           "320",                          
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_DynamicGlowHeight                                     = ri->Cvar_Get( 
"r_DynamicGlowHeight",                          "240",                          
                CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_allowExtensions                                       = ri->Cvar_Get( 
"r_allowExtensions",                            "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compressed_textures                       = ri->Cvar_Get( 
"r_ext_compress_textures",                      "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compressed_lightmaps                      = ri->Cvar_Get( 
"r_ext_compress_lightmaps",                     "0",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_preferred_tc_method                       = ri->Cvar_Get( 
"r_ext_preferred_tc_method",            "0",                                    
        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_gamma_control                                     = ri->Cvar_Get( 
"r_ext_gamma_control",                          "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_multitexture                                      = ri->Cvar_Get( 
"r_ext_multitexture",                           "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compiled_vertex_array                     = ri->Cvar_Get( 
"r_ext_compiled_vertex_array",          "1",                                    
        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_texture_env_add                           = ri->Cvar_Get( 
"r_ext_texture_env_add",                        "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_texture_filter_anisotropic        = ri->Cvar_Get( 
"r_ext_texture_filter_anisotropic",     "16",                                   
        CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlow                                           = ri->Cvar_Get( 
"r_DynamicGlow",                                        "0",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowPasses                                     = ri->Cvar_Get( 
"r_DynamicGlowPasses",                          "5",                            
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowDelta                                      = ri->Cvar_Get( 
"r_DynamicGlowDelta",                           "0.8f",                         
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowIntensity                          = ri->Cvar_Get( 
"r_DynamicGlowIntensity",                       "1.13f",                        
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowSoft                                       = ri->Cvar_Get( 
"r_DynamicGlowSoft",                            "1",                            
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowWidth                                      = ri->Cvar_Get( 
"r_DynamicGlowWidth",                           "320",                          
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_DynamicGlowHeight                                     = ri->Cvar_Get( 
"r_DynamicGlowHeight",                          "240",                          
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_picmip                                                        = 
ri->Cvar_Get( "r_picmip",                                                     
"1",                                            CVAR_ARCHIVE|CVAR_LATCH, "" );
        ri->Cvar_CheckRange( r_picmip, 0, 16, qtrue );
        r_colorMipLevels                                        = ri->Cvar_Get( 
"r_colorMipLevels",                                     "0",                    
                        CVAR_LATCH, "" );
-       r_detailTextures                                        = ri->Cvar_Get( 
"r_detailtextures",                                     "1",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_texturebits                                           = ri->Cvar_Get( 
"r_texturebits",                                        "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_texturebitslm                                         = ri->Cvar_Get( 
"r_texturebitslm",                                      "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_colorbits                                                     = 
ri->Cvar_Get( "r_colorbits",                                          "0",      
                                      CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_stereo                                                        = 
ri->Cvar_Get( "r_stereo",                                                     
"0",                                            CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_stencilbits                                           = ri->Cvar_Get( 
"r_stencilbits",                                        "8",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_depthbits                                                     = 
ri->Cvar_Get( "r_depthbits",                                          "0",      
                                      CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_overBrightBits                                        = ri->Cvar_Get( 
"r_overBrightBits",                                     "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ignorehwgamma                                         = ri->Cvar_Get( 
"r_ignorehwgamma",                                      "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_detailTextures                                        = ri->Cvar_Get( 
"r_detailtextures",                                     "1",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_texturebits                                           = ri->Cvar_Get( 
"r_texturebits",                                        "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_texturebitslm                                         = ri->Cvar_Get( 
"r_texturebitslm",                                      "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_colorbits                                                     = 
ri->Cvar_Get( "r_colorbits",                                          "0",      
                                      CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_stereo                                                        = 
ri->Cvar_Get( "r_stereo",                                                     
"0",                                            CVAR_ARCHIVE_ND|CVAR_LATCH, "" 
);
+       r_stencilbits                                           = ri->Cvar_Get( 
"r_stencilbits",                                        "8",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_depthbits                                                     = 
ri->Cvar_Get( "r_depthbits",                                          "0",      
                                      CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_overBrightBits                                        = ri->Cvar_Get( 
"r_overBrightBits",                                     "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ignorehwgamma                                         = ri->Cvar_Get( 
"r_ignorehwgamma",                                      "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_mode                                                          = 
ri->Cvar_Get( "r_mode",                                                       
"4",                                            CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_fullscreen                                            = ri->Cvar_Get( 
"r_fullscreen",                                         "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_noborder                                                      = 
ri->Cvar_Get( "r_noborder",                                           "0",      
                                      CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_centerWindow                                          = ri->Cvar_Get( 
"r_centerWindow",                                       "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_customwidth                                           = ri->Cvar_Get( 
"r_customwidth",                                        "1600",                 
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_customheight                                          = ri->Cvar_Get( 
"r_customheight",                                       "1024",                 
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_simpleMipMaps                                         = ri->Cvar_Get( 
"r_simpleMipMaps",                                      "1",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_vertexLight                                           = ri->Cvar_Get( 
"r_vertexLight",                                        "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_simpleMipMaps                                         = ri->Cvar_Get( 
"r_simpleMipMaps",                                      "1",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_vertexLight                                           = ri->Cvar_Get( 
"r_vertexLight",                                        "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_uiFullScreen                                          = ri->Cvar_Get( 
"r_uifullscreen",                                       "0",                    
                        CVAR_NONE, "" );
-       r_subdivisions                                          = ri->Cvar_Get( 
"r_subdivisions",                                       "4",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_subdivisions                                          = ri->Cvar_Get( 
"r_subdivisions",                                       "4",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_displayRefresh                                        = ri->Cvar_Get( 
"r_displayRefresh",                                     "0",                    
                        CVAR_LATCH, "" );
        ri->Cvar_CheckRange( r_displayRefresh, 0, 200, qtrue );
        r_fullbright                                            = ri->Cvar_Get( 
"r_fullbright",                                         "0",                    
                        CVAR_CHEAT, "" );
        r_intensity                                                     = 
ri->Cvar_Get( "r_intensity",                                          "1",      
                                      CVAR_LATCH, "" );
        r_singleShader                                          = ri->Cvar_Get( 
"r_singleShader",                                       "0",                    
                        CVAR_CHEAT|CVAR_LATCH, "" );
-       r_lodCurveError                                         = ri->Cvar_Get( 
"r_lodCurveError",                                      "250",                  
                        CVAR_ARCHIVE, "" );
-       r_lodbias                                                       = 
ri->Cvar_Get( "r_lodbias",                                            "0",      
                                      CVAR_ARCHIVE, "" );
+       r_lodCurveError                                         = ri->Cvar_Get( 
"r_lodCurveError",                                      "250",                  
                        CVAR_ARCHIVE_ND, "" );
+       r_lodbias                                                       = 
ri->Cvar_Get( "r_lodbias",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
        r_autolodscalevalue                                     = ri->Cvar_Get( 
"r_autolodscalevalue",                          "0",                            
                CVAR_ROM, "" );
-       r_flares                                                        = 
ri->Cvar_Get( "r_flares",                                                     
"1",                                            CVAR_ARCHIVE, "" );
-       r_znear                                                         = 
ri->Cvar_Get( "r_znear",                                                      
"4",                                            CVAR_ARCHIVE, "" );
+       r_flares                                                        = 
ri->Cvar_Get( "r_flares",                                                     
"1",                                            CVAR_ARCHIVE_ND, "" );
+       r_znear                                                         = 
ri->Cvar_Get( "r_znear",                                                      
"4",                                            CVAR_ARCHIVE_ND, "" );
        ri->Cvar_CheckRange( r_znear, 0.001f, 10, qfalse );
-       r_ignoreGLErrors                                        = ri->Cvar_Get( 
"r_ignoreGLErrors",                                     "1",                    
                        CVAR_ARCHIVE, "" );
-       r_fastsky                                                       = 
ri->Cvar_Get( "r_fastsky",                                            "0",      
                                      CVAR_ARCHIVE, "" );
-       r_inGameVideo                                           = ri->Cvar_Get( 
"r_inGameVideo",                                        "1",                    
                        CVAR_ARCHIVE, "" );
-       r_drawSun                                                       = 
ri->Cvar_Get( "r_drawSun",                                            "0",      
                                      CVAR_ARCHIVE, "" );
+       r_ignoreGLErrors                                        = ri->Cvar_Get( 
"r_ignoreGLErrors",                                     "1",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_fastsky                                                       = 
ri->Cvar_Get( "r_fastsky",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
+       r_inGameVideo                                           = ri->Cvar_Get( 
"r_inGameVideo",                                        "1",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_drawSun                                                       = 
ri->Cvar_Get( "r_drawSun",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
        r_dynamiclight                                          = ri->Cvar_Get( 
"r_dynamiclight",                                       "1",                    
                        CVAR_ARCHIVE, "" );
        // rjr - removed for hacking
 //     r_dlightBacks                                           = ri->Cvar_Get( 
"r_dlightBacks",                                        "1",                    
                        CVAR_CHEAT, "" );
-       r_finish                                                        = 
ri->Cvar_Get( "r_finish",                                                     
"0",                                            CVAR_ARCHIVE, "" );
+       r_finish                                                        = 
ri->Cvar_Get( "r_finish",                                                     
"0",                                            CVAR_ARCHIVE_ND, "" );
        r_textureMode                                           = ri->Cvar_Get( 
"r_textureMode",                                        
"GL_LINEAR_MIPMAP_NEAREST",     CVAR_ARCHIVE, "" );
        r_swapInterval                                          = ri->Cvar_Get( 
"r_swapInterval",                                       "0",                    
                        SWAPINTERVAL_FLAGS, "" );
-       r_markcount                                                     = 
ri->Cvar_Get( "r_markcount",                                          "100",    
                                      CVAR_ARCHIVE, "" );
-       r_gamma                                                         = 
ri->Cvar_Get( "r_gamma",                                                      
"1",                                            CVAR_ARCHIVE, "" );
-       r_facePlaneCull                                         = ri->Cvar_Get( 
"r_facePlaneCull",                                      "1",                    
                        CVAR_ARCHIVE, "" );
+       r_markcount                                                     = 
ri->Cvar_Get( "r_markcount",                                          "100",    
                                      CVAR_ARCHIVE_ND, "" );
+       r_gamma                                                         = 
ri->Cvar_Get( "r_gamma",                                                      
"1",                                            CVAR_ARCHIVE_ND, "" );
+       r_facePlaneCull                                         = ri->Cvar_Get( 
"r_facePlaneCull",                                      "1",                    
                        CVAR_ARCHIVE_ND, "" );
        r_cullRoofFaces                                         = ri->Cvar_Get( 
"r_cullRoofFaces",                                      "0",                    
                        CVAR_CHEAT, "" ); //attempted smart method of culling 
out upwards facing surfaces on roofs for automap shots -rww
        r_roofCullCeilDist                                      = ri->Cvar_Get( 
"r_roofCullCeilDist",                           "256",                          
                CVAR_CHEAT, "" ); //attempted smart method of culling out 
upwards facing surfaces on roofs for automap shots -rww
        r_roofCullFloorDist                                     = ri->Cvar_Get( 
"r_roofCeilFloorDist",                          "128",                          
                CVAR_CHEAT, "" ); //attempted smart method of culling out 
upwards facing surfaces on roofs for automap shots -rww
-       r_primitives                                            = ri->Cvar_Get( 
"r_primitives",                                         "0",                    
                        CVAR_ARCHIVE, "" );
+       r_primitives                                            = ri->Cvar_Get( 
"r_primitives",                                         "0",                    
                        CVAR_ARCHIVE_ND, "" );
        ri->Cvar_CheckRange( r_primitives, MIN_PRIMITIVES, MAX_PRIMITIVES, 
qtrue );
        r_ambientScale                                          = ri->Cvar_Get( 
"r_ambientScale",                                       "0.6",                  
                        CVAR_CHEAT, "" );
        r_directedScale                                         = ri->Cvar_Get( 
"r_directedScale",                                      "1",                    
                        CVAR_CHEAT, "" );
-       r_autoMap                                                       = 
ri->Cvar_Get( "r_autoMap",                                            "0",      
                                      CVAR_ARCHIVE, "" ); //automap renderside 
toggle for debugging -rww
+       r_autoMap                                                       = 
ri->Cvar_Get( "r_autoMap",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" ); //automap 
renderside toggle for debugging -rww
        r_autoMapBackAlpha                                      = ri->Cvar_Get( 
"r_autoMapBackAlpha",                           "0",                            
                CVAR_NONE, "" ); //alpha of automap bg -rww
        r_autoMapDisable                                        = ri->Cvar_Get( 
"r_autoMapDisable",                                     "1",                    
                        CVAR_NONE, "" );
        r_showImages                                            = ri->Cvar_Get( 
"r_showImages",                                         "0",                    
                        CVAR_CHEAT, "" );
diff --git a/codemp/rd-vanilla/tr_init.cpp b/codemp/rd-vanilla/tr_init.cpp
index 51e3b91..68ed651 100644
--- a/codemp/rd-vanilla/tr_init.cpp
+++ b/codemp/rd-vanilla/tr_init.cpp
@@ -1547,75 +1547,75 @@ void R_Register( void )
        //
        // latched and archived variables
        //
-       r_allowExtensions                                       = ri->Cvar_Get( 
"r_allowExtensions",                            "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compressed_textures                       = ri->Cvar_Get( 
"r_ext_compress_textures",                      "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compressed_lightmaps                      = ri->Cvar_Get( 
"r_ext_compress_lightmaps",                     "0",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_preferred_tc_method                       = ri->Cvar_Get( 
"r_ext_preferred_tc_method",            "0",                                    
        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_gamma_control                                     = ri->Cvar_Get( 
"r_ext_gamma_control",                          "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_multitexture                                      = ri->Cvar_Get( 
"r_ext_multitexture",                           "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_compiled_vertex_array                     = ri->Cvar_Get( 
"r_ext_compiled_vertex_array",          "1",                                    
        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_texture_env_add                           = ri->Cvar_Get( 
"r_ext_texture_env_add",                        "1",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_ext_texture_filter_anisotropic        = ri->Cvar_Get( 
"r_ext_texture_filter_anisotropic",     "16",                                   
        CVAR_ARCHIVE, "" );
-       r_gammaShaders                                          = ri->Cvar_Get( 
"r_gammaShaders",                                       "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_environmentMapping                            = ri->Cvar_Get( 
"r_environmentMapping",                         "1",                            
                CVAR_ARCHIVE, "" );
-       r_DynamicGlow                                           = ri->Cvar_Get( 
"r_DynamicGlow",                                        "0",                    
                        CVAR_ARCHIVE, "" );
-       r_DynamicGlowPasses                                     = ri->Cvar_Get( 
"r_DynamicGlowPasses",                          "5",                            
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowDelta                                      = ri->Cvar_Get( 
"r_DynamicGlowDelta",                           "0.8f",                         
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowIntensity                          = ri->Cvar_Get( 
"r_DynamicGlowIntensity",                       "1.13f",                        
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowSoft                                       = ri->Cvar_Get( 
"r_DynamicGlowSoft",                            "1",                            
                CVAR_ARCHIVE, "" );
-       r_DynamicGlowWidth                                      = ri->Cvar_Get( 
"r_DynamicGlowWidth",                           "320",                          
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_DynamicGlowHeight                                     = ri->Cvar_Get( 
"r_DynamicGlowHeight",                          "240",                          
                CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_allowExtensions                                       = ri->Cvar_Get( 
"r_allowExtensions",                            "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compressed_textures                       = ri->Cvar_Get( 
"r_ext_compress_textures",                      "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compressed_lightmaps                      = ri->Cvar_Get( 
"r_ext_compress_lightmaps",                     "0",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_preferred_tc_method                       = ri->Cvar_Get( 
"r_ext_preferred_tc_method",            "0",                                    
        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_gamma_control                                     = ri->Cvar_Get( 
"r_ext_gamma_control",                          "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_multitexture                                      = ri->Cvar_Get( 
"r_ext_multitexture",                           "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_compiled_vertex_array                     = ri->Cvar_Get( 
"r_ext_compiled_vertex_array",          "1",                                    
        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_texture_env_add                           = ri->Cvar_Get( 
"r_ext_texture_env_add",                        "1",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_ext_texture_filter_anisotropic        = ri->Cvar_Get( 
"r_ext_texture_filter_anisotropic",     "16",                                   
        CVAR_ARCHIVE_ND, "" );
+       r_gammaShaders                                          = ri->Cvar_Get( 
"r_gammaShaders",                                       "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_environmentMapping                            = ri->Cvar_Get( 
"r_environmentMapping",                         "1",                            
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlow                                           = ri->Cvar_Get( 
"r_DynamicGlow",                                        "0",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowPasses                                     = ri->Cvar_Get( 
"r_DynamicGlowPasses",                          "5",                            
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowDelta                                      = ri->Cvar_Get( 
"r_DynamicGlowDelta",                           "0.8f",                         
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowIntensity                          = ri->Cvar_Get( 
"r_DynamicGlowIntensity",                       "1.13f",                        
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowSoft                                       = ri->Cvar_Get( 
"r_DynamicGlowSoft",                            "1",                            
                CVAR_ARCHIVE_ND, "" );
+       r_DynamicGlowWidth                                      = ri->Cvar_Get( 
"r_DynamicGlowWidth",                           "320",                          
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_DynamicGlowHeight                                     = ri->Cvar_Get( 
"r_DynamicGlowHeight",                          "240",                          
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_picmip                                                        = 
ri->Cvar_Get( "r_picmip",                                                     
"0",                                            CVAR_ARCHIVE|CVAR_LATCH, "" );
        ri->Cvar_CheckRange( r_picmip, 0, 16, qtrue );
        r_colorMipLevels                                        = ri->Cvar_Get( 
"r_colorMipLevels",                                     "0",                    
                        CVAR_LATCH, "" );
-       r_detailTextures                                        = ri->Cvar_Get( 
"r_detailtextures",                                     "1",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_texturebits                                           = ri->Cvar_Get( 
"r_texturebits",                                        "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_texturebitslm                                         = ri->Cvar_Get( 
"r_texturebitslm",                                      "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_overBrightBits                                        = ri->Cvar_Get( 
"r_overBrightBits",                                     "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_mapOverBrightBits                                     = ri->Cvar_Get( 
"r_mapOverBrightBits",                          "0",                            
                CVAR_ARCHIVE|CVAR_LATCH, "" );
-       r_simpleMipMaps                                         = ri->Cvar_Get( 
"r_simpleMipMaps",                                      "1",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_detailTextures                                        = ri->Cvar_Get( 
"r_detailtextures",                                     "1",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_texturebits                                           = ri->Cvar_Get( 
"r_texturebits",                                        "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_texturebitslm                                         = ri->Cvar_Get( 
"r_texturebitslm",                                      "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_overBrightBits                                        = ri->Cvar_Get( 
"r_overBrightBits",                                     "0",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_mapOverBrightBits                                     = ri->Cvar_Get( 
"r_mapOverBrightBits",                          "0",                            
                CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
+       r_simpleMipMaps                                         = ri->Cvar_Get( 
"r_simpleMipMaps",                                      "1",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        r_vertexLight                                           = ri->Cvar_Get( 
"r_vertexLight",                                        "0",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
        r_uiFullScreen                                          = ri->Cvar_Get( 
"r_uifullscreen",                                       "0",                    
                        CVAR_NONE, "" );
-       r_subdivisions                                          = ri->Cvar_Get( 
"r_subdivisions",                                       "4",                    
                        CVAR_ARCHIVE|CVAR_LATCH, "" );
+       r_subdivisions                                          = ri->Cvar_Get( 
"r_subdivisions",                                       "4",                    
                        CVAR_ARCHIVE_ND|CVAR_LATCH, "" );
        ri->Cvar_CheckRange( r_subdivisions, 0, 80, qfalse );
 
        r_fullbright                                            = ri->Cvar_Get( 
"r_fullbright",                                         "0",                    
                        CVAR_CHEAT, "" );
        r_intensity                                                     = 
ri->Cvar_Get( "r_intensity",                                          "1",      
                                      CVAR_LATCH, "" );
        r_singleShader                                          = ri->Cvar_Get( 
"r_singleShader",                                       "0",                    
                        CVAR_CHEAT|CVAR_LATCH, "" );
-       r_lodCurveError                                         = ri->Cvar_Get( 
"r_lodCurveError",                                      "250",                  
                        CVAR_ARCHIVE, "" );
-       r_lodbias                                                       = 
ri->Cvar_Get( "r_lodbias",                                            "0",      
                                      CVAR_ARCHIVE, "" );
+       r_lodCurveError                                         = ri->Cvar_Get( 
"r_lodCurveError",                                      "250",                  
                        CVAR_ARCHIVE_ND, "" );
+       r_lodbias                                                       = 
ri->Cvar_Get( "r_lodbias",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
        r_autolodscalevalue                                     = ri->Cvar_Get( 
"r_autolodscalevalue",                          "0",                            
                CVAR_ROM, "" );
-       r_flares                                                        = 
ri->Cvar_Get( "r_flares",                                                     
"1",                                            CVAR_ARCHIVE, "" );
+       r_flares                                                        = 
ri->Cvar_Get( "r_flares",                                                     
"1",                                            CVAR_ARCHIVE_ND, "" );
 
-       r_znear                                                         = 
ri->Cvar_Get( "r_znear",                                                      
"4",                                            CVAR_ARCHIVE, "" );
+       r_znear                                                         = 
ri->Cvar_Get( "r_znear",                                                      
"4",                                            CVAR_ARCHIVE_ND, "" );
        ri->Cvar_CheckRange( r_znear, 0.001f, 10, qfalse );
-       r_ignoreGLErrors                                        = ri->Cvar_Get( 
"r_ignoreGLErrors",                                     "1",                    
                        CVAR_ARCHIVE, "" );
-       r_fastsky                                                       = 
ri->Cvar_Get( "r_fastsky",                                            "0",      
                                      CVAR_ARCHIVE, "" );
-       r_inGameVideo                                           = ri->Cvar_Get( 
"r_inGameVideo",                                        "1",                    
                        CVAR_ARCHIVE, "" );
-       r_drawSun                                                       = 
ri->Cvar_Get( "r_drawSun",                                            "0",      
                                      CVAR_ARCHIVE, "" );
+       r_ignoreGLErrors                                        = ri->Cvar_Get( 
"r_ignoreGLErrors",                                     "1",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_fastsky                                                       = 
ri->Cvar_Get( "r_fastsky",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
+       r_inGameVideo                                           = ri->Cvar_Get( 
"r_inGameVideo",                                        "1",                    
                        CVAR_ARCHIVE_ND, "" );
+       r_drawSun                                                       = 
ri->Cvar_Get( "r_drawSun",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" );
        r_dynamiclight                                          = ri->Cvar_Get( 
"r_dynamiclight",                                       "1",                    
                        CVAR_ARCHIVE, "" );
        // rjr - removed for hacking
 //     r_dlightBacks                                           = ri->Cvar_Get( 
"r_dlightBacks",                                        "1",                    
                        CVAR_CHEAT, "" );
-       r_finish                                                        = 
ri->Cvar_Get( "r_finish",                                                     
"0",                                            CVAR_ARCHIVE, "" );
+       r_finish                                                        = 
ri->Cvar_Get( "r_finish",                                                     
"0",                                            CVAR_ARCHIVE_ND, "" );
        r_textureMode                                           = ri->Cvar_Get( 
"r_textureMode",                                        
"GL_LINEAR_MIPMAP_NEAREST",     CVAR_ARCHIVE, "" );
-       r_markcount                                                     = 
ri->Cvar_Get( "r_markcount",                                          "100",    
                                      CVAR_ARCHIVE, "" );
-       r_gamma                                                         = 
ri->Cvar_Get( "r_gamma",                                                      
"1",                                            CVAR_ARCHIVE, "" );
-       r_facePlaneCull                                         = ri->Cvar_Get( 
"r_facePlaneCull",                                      "1",                    
                        CVAR_ARCHIVE, "" );
+       r_markcount                                                     = 
ri->Cvar_Get( "r_markcount",                                          "100",    
                                      CVAR_ARCHIVE_ND, "" );
+       r_gamma                                                         = 
ri->Cvar_Get( "r_gamma",                                                      
"1",                                            CVAR_ARCHIVE_ND, "" );
+       r_facePlaneCull                                         = ri->Cvar_Get( 
"r_facePlaneCull",                                      "1",                    
                        CVAR_ARCHIVE_ND, "" );
        r_cullRoofFaces                                         = ri->Cvar_Get( 
"r_cullRoofFaces",                                      "0",                    
                        CVAR_CHEAT, "" ); //attempted smart method of culling 
out upwards facing surfaces on roofs for automap shots -rww
        r_roofCullCeilDist                                      = ri->Cvar_Get( 
"r_roofCullCeilDist",                           "256",                          
                CVAR_CHEAT, "" ); //attempted smart method of culling out 
upwards facing surfaces on roofs for automap shots -rww
        r_roofCullFloorDist                                     = ri->Cvar_Get( 
"r_roofCeilFloorDist",                          "128",                          
                CVAR_CHEAT, "" ); //attempted smart method of culling out 
upwards facing surfaces on roofs for automap shots -rww
-       r_primitives                                            = ri->Cvar_Get( 
"r_primitives",                                         "0",                    
                        CVAR_ARCHIVE, "" );
+       r_primitives                                            = ri->Cvar_Get( 
"r_primitives",                                         "0",                    
                        CVAR_ARCHIVE_ND, "" );
        ri->Cvar_CheckRange( r_primitives, MIN_PRIMITIVES, MAX_PRIMITIVES, 
qtrue );
        r_ambientScale                                          = ri->Cvar_Get( 
"r_ambientScale",                                       "0.6",                  
                        CVAR_CHEAT, "" );
        r_directedScale                                         = ri->Cvar_Get( 
"r_directedScale",                                      "1",                    
                        CVAR_CHEAT, "" );
-       r_autoMap                                                       = 
ri->Cvar_Get( "r_autoMap",                                            "0",      
                                      CVAR_ARCHIVE, "" ); //automap renderside 
toggle for debugging -rww
+       r_autoMap                                                       = 
ri->Cvar_Get( "r_autoMap",                                            "0",      
                                      CVAR_ARCHIVE_ND, "" ); //automap 
renderside toggle for debugging -rww
        r_autoMapBackAlpha                                      = ri->Cvar_Get( 
"r_autoMapBackAlpha",                           "0",                            
                CVAR_NONE, "" ); //alpha of automap bg -rww
        r_autoMapDisable                                        = ri->Cvar_Get( 
"r_autoMapDisable",                                     "1",                    
                        CVAR_NONE, "" );
        r_showImages                                            = ri->Cvar_Get( 
"r_showImages",                                         "0",                    
                        CVAR_CHEAT, "" );
        r_debugLight                                            = ri->Cvar_Get( 
"r_debuglight",                                         "0",                    
                        CVAR_TEMP, "" );
        r_debugSort                                                     = 
ri->Cvar_Get( "r_debugSort",                                          "0",      
                                      CVAR_CHEAT, "" );
        r_dlightStyle                                           = ri->Cvar_Get( 
"r_dlightStyle",                                        "1",                    
                        CVAR_TEMP, "" );
-       r_surfaceSprites                                        = ri->Cvar_Get( 
"r_surfaceSprites",                                     "1",                    
                        CVAR_ARCHIVE, "" );
+       r_surfaceSprites                                        = ri->Cvar_Get( 
"r_surfaceSprites",                                     "1",                    
                        CVAR_ARCHIVE_ND, "" );
        r_surfaceWeather                                        = ri->Cvar_Get( 
"r_surfaceWeather",                                     "0",                    
                        CVAR_TEMP, "" );
        r_windSpeed                                                     = 
ri->Cvar_Get( "r_windSpeed",                                          "0",      
                                      CVAR_NONE, "" );
        r_windAngle                                                     = 
ri->Cvar_Get( "r_windAngle",                                          "0",      
                                      CVAR_NONE, "" );
@@ -1653,7 +1653,7 @@ void R_Register( void )
        r_noportals                                                     = 
ri->Cvar_Get( "r_noportals",                                          "0",      
                                      CVAR_CHEAT, "" );
        r_shadows                                                       = 
ri->Cvar_Get( "cg_shadows",                                           "1",      
                                      CVAR_NONE, "" );
        r_shadowRange                                           = ri->Cvar_Get( 
"r_shadowRange",                                        "1000",                 
                        CVAR_NONE, "" );
-       r_marksOnTriangleMeshes                         = ri->Cvar_Get( 
"r_marksOnTriangleMeshes",                      "0",                            
                CVAR_ARCHIVE, "" );
+       r_marksOnTriangleMeshes                         = ri->Cvar_Get( 
"r_marksOnTriangleMeshes",                      "0",                            
                CVAR_ARCHIVE_ND, "" );
        r_aspectCorrectFonts                            = ri->Cvar_Get( 
"r_aspectCorrectFonts",                         "0",                            
                CVAR_ARCHIVE, "" );
        r_maxpolys                                                      = 
ri->Cvar_Get( "r_maxpolys",                                           XSTRING( 
DEFAULT_MAX_POLYS ),           CVAR_NONE, "" );
        r_maxpolyverts                                          = ri->Cvar_Get( 
"r_maxpolyverts",                                       XSTRING( 
DEFAULT_MAX_POLYVERTS ),       CVAR_NONE, "" );
@@ -1666,7 +1666,7 @@ Ghoul2 Insert Start
        r_noServerGhoul2                                        = ri->Cvar_Get( 
"r_noserverghoul2",                                     "0",                    
                        CVAR_CHEAT, "" );
        r_Ghoul2AnimSmooth                                      = ri->Cvar_Get( 
"r_ghoul2animsmooth",                           "0.3",                          
                CVAR_NONE, "" );
        r_Ghoul2UnSqashAfterSmooth                      = ri->Cvar_Get( 
"r_ghoul2unsqashaftersmooth",           "1",                                    
        CVAR_NONE, "" );
-       broadsword                                                      = 
ri->Cvar_Get( "broadsword",                                           "0",      
                                      CVAR_ARCHIVE, "" );
+       broadsword                                                      = 
ri->Cvar_Get( "broadsword",                                           "0",      
                                      CVAR_ARCHIVE_ND, "" );
        broadsword_kickbones                            = ri->Cvar_Get( 
"broadsword_kickbones",                         "1",                            
                CVAR_NONE, "" );
        broadsword_kickorigin                           = ri->Cvar_Get( 
"broadsword_kickorigin",                        "1",                            
                CVAR_NONE, "" );
        broadsword_dontstopanim                         = ri->Cvar_Get( 
"broadsword_dontstopanim",                      "0",                            
                CVAR_NONE, "" );
@@ -1685,8 +1685,8 @@ Ghoul2 Insert End
        if (ri->Sys_LowPhysicalMemory() )
                ri->Cvar_Set("r_modelpoolmegs", "0");
 
-       r_aviMotionJpegQuality                          = ri->Cvar_Get( 
"r_aviMotionJpegQuality",                       "90",                           
                CVAR_ARCHIVE, "" );
-       r_screenshotJpegQuality                         = ri->Cvar_Get( 
"r_screenshotJpegQuality",                      "95",                           
                CVAR_ARCHIVE, "" );
+       r_aviMotionJpegQuality                          = ri->Cvar_Get( 
"r_aviMotionJpegQuality",                       "90",                           
                CVAR_ARCHIVE_ND, "" );
+       r_screenshotJpegQuality                         = ri->Cvar_Get( 
"r_screenshotJpegQuality",                      "95",                           
                CVAR_ARCHIVE_ND, "" );
 
        ri->Cvar_CheckRange( r_aviMotionJpegQuality, 10, 100, qtrue );
        ri->Cvar_CheckRange( r_screenshotJpegQuality, 10, 100, qtrue );
diff --git a/codemp/server/sv_init.cpp b/codemp/server/sv_init.cpp
index 6a3cd6e..1ad1fbf 100644
--- a/codemp/server/sv_init.cpp
+++ b/codemp/server/sv_init.cpp
@@ -955,13 +955,13 @@ void SV_Init (void) {
        
        //cvar_t        *sv_ratePolicy;         // 1-2
        //cvar_t        *sv_clientRate;
-       sv_ratePolicy = Cvar_Get( "sv_ratePolicy", "1", CVAR_ARCHIVE, 
"Determines which policy of enforcement is used for client's \"rate\" cvar" );
+       sv_ratePolicy = Cvar_Get( "sv_ratePolicy", "1", CVAR_ARCHIVE_ND, 
"Determines which policy of enforcement is used for client's \"rate\" cvar" );
        Cvar_CheckRange(sv_ratePolicy, 1, 2, qtrue);
-       sv_clientRate = Cvar_Get( "sv_clientRate", "50000", CVAR_ARCHIVE);
-       sv_minRate = Cvar_Get ("sv_minRate", "0", CVAR_ARCHIVE | 
CVAR_SERVERINFO, "Min bandwidth rate allowed on server. Use 0 for unlimited." );
-       sv_maxRate = Cvar_Get ("sv_maxRate", "0", CVAR_ARCHIVE | 
CVAR_SERVERINFO, "Max bandwidth rate allowed on server. Use 0 for unlimited." );
-       sv_minPing = Cvar_Get ("sv_minPing", "0", CVAR_ARCHIVE | 
CVAR_SERVERINFO );
-       sv_maxPing = Cvar_Get ("sv_maxPing", "0", CVAR_ARCHIVE | 
CVAR_SERVERINFO );
+       sv_clientRate = Cvar_Get( "sv_clientRate", "50000", CVAR_ARCHIVE_ND);
+       sv_minRate = Cvar_Get ("sv_minRate", "0", CVAR_ARCHIVE_ND | 
CVAR_SERVERINFO, "Min bandwidth rate allowed on server. Use 0 for unlimited." );
+       sv_maxRate = Cvar_Get ("sv_maxRate", "0", CVAR_ARCHIVE_ND | 
CVAR_SERVERINFO, "Max bandwidth rate allowed on server. Use 0 for unlimited." );
+       sv_minPing = Cvar_Get ("sv_minPing", "0", CVAR_ARCHIVE_ND | 
CVAR_SERVERINFO );
+       sv_maxPing = Cvar_Get ("sv_maxPing", "0", CVAR_ARCHIVE_ND | 
CVAR_SERVERINFO );
        sv_floodProtect = Cvar_Get ("sv_floodProtect", "1", CVAR_ARCHIVE | 
CVAR_SERVERINFO, "Protect against flooding of server commands" );
        // systeminfo
        Cvar_Get ("sv_cheats", "1", CVAR_SYSTEMINFO | CVAR_ROM, "Allow cheats 
on server if set to 1" );
@@ -975,9 +975,9 @@ void SV_Init (void) {
        // server vars
        sv_rconPassword = Cvar_Get ("rconPassword", "", CVAR_TEMP );
        sv_privatePassword = Cvar_Get ("sv_privatePassword", "", CVAR_TEMP );
-       sv_snapsMin = Cvar_Get ("sv_snapsMin", "10", CVAR_ARCHIVE ); // 1 <=> 
sv_snapsMax
-       sv_snapsMax = Cvar_Get ("sv_snapsMax", "40", CVAR_ARCHIVE ); // 
sv_snapsMin <=> sv_fps
-       sv_snapsPolicy = Cvar_Get ("sv_snapsPolicy", "1", CVAR_ARCHIVE, 
"Determines which policy of enforcement is used for client's \"snaps\" cvar");
+       sv_snapsMin = Cvar_Get ("sv_snapsMin", "10", CVAR_ARCHIVE_ND ); // 1 
<=> sv_snapsMax
+       sv_snapsMax = Cvar_Get ("sv_snapsMax", "40", CVAR_ARCHIVE_ND ); // 
sv_snapsMin <=> sv_fps
+       sv_snapsPolicy = Cvar_Get ("sv_snapsPolicy", "1", CVAR_ARCHIVE_ND, 
"Determines which policy of enforcement is used for client's \"snaps\" cvar");
        Cvar_CheckRange(sv_snapsPolicy, 0, 2, qtrue);
        sv_fps = Cvar_Get ("sv_fps", "40", CVAR_SERVERINFO, "Server frames per 
second" );
        sv_timeout = Cvar_Get ("sv_timeout", "200", CVAR_TEMP );
@@ -988,22 +988,22 @@ void SV_Init (void) {
        sv_master[0] = Cvar_Get ("sv_master1", MASTER_SERVER_NAME, 
CVAR_PROTECTED );
        sv_master[1] = Cvar_Get ("sv_master2", JKHUB_MASTER_SERVER_NAME, 
CVAR_PROTECTED);
        for(int index = 2; index < MAX_MASTER_SERVERS; index++)
-               sv_master[index] = Cvar_Get(va("sv_master%d", index + 1), "", 
CVAR_ARCHIVE|CVAR_PROTECTED);
+               sv_master[index] = Cvar_Get(va("sv_master%d", index + 1), "", 
CVAR_ARCHIVE_ND|CVAR_PROTECTED);
        sv_reconnectlimit = Cvar_Get ("sv_reconnectlimit", "3", 0);
        sv_showghoultraces = Cvar_Get ("sv_showghoultraces", "0", 0);
        sv_showloss = Cvar_Get ("sv_showloss", "0", 0);
        sv_padPackets = Cvar_Get ("sv_padPackets", "0", 0);
        sv_killserver = Cvar_Get ("sv_killserver", "0", 0);
        sv_mapChecksum = Cvar_Get ("sv_mapChecksum", "", CVAR_ROM);
-       sv_lanForceRate = Cvar_Get ("sv_lanForceRate", "1", CVAR_ARCHIVE );
+       sv_lanForceRate = Cvar_Get ("sv_lanForceRate", "1", CVAR_ARCHIVE_ND );
 
        sv_filterCommands = Cvar_Get( "sv_filterCommands", "0", CVAR_ARCHIVE );
 
 //     sv_debugserver = Cvar_Get ("sv_debugserver", "0", 0);
 
-       sv_autoDemo = Cvar_Get( "sv_autoDemo", "0", CVAR_ARCHIVE | 
CVAR_SERVERINFO, "Automatically take server-side demos" );
-       sv_autoDemoBots = Cvar_Get( "sv_autoDemoBots", "0", CVAR_ARCHIVE, 
"Record server-side demos for bots" );
-       sv_autoDemoMaxMaps = Cvar_Get( "sv_autoDemoMaxMaps", "0", CVAR_ARCHIVE 
);
+       sv_autoDemo = Cvar_Get( "sv_autoDemo", "0", CVAR_ARCHIVE_ND | 
CVAR_SERVERINFO, "Automatically take server-side demos" );
+       sv_autoDemoBots = Cvar_Get( "sv_autoDemoBots", "0", CVAR_ARCHIVE_ND, 
"Record server-side demos for bots" );
+       sv_autoDemoMaxMaps = Cvar_Get( "sv_autoDemoMaxMaps", "0", 
CVAR_ARCHIVE_ND );
 
        sv_legacyFixForceSelect = Cvar_Get( "sv_legacyFixForceSelect", "1", 
CVAR_ARCHIVE );
 
diff --git a/shared/sdl/sdl_input.cpp b/shared/sdl/sdl_input.cpp
index 2626cc6..c310ee8 100644
--- a/shared/sdl/sdl_input.cpp
+++ b/shared/sdl/sdl_input.cpp
@@ -564,13 +564,13 @@ static void IN_InitJoystick( void )
                return;
        }
 
-       in_joystickNo = Cvar_Get( "in_joystickNo", "0", CVAR_ARCHIVE );
+       in_joystickNo = Cvar_Get( "in_joystickNo", "0", CVAR_ARCHIVE_ND );
        if( in_joystickNo->integer < 0 || in_joystickNo->integer >= total )
                Cvar_Set( "in_joystickNo", "0" );
 
-       in_joystickUseAnalog = Cvar_Get( "in_joystickUseAnalog", "0", 
CVAR_ARCHIVE );
+       in_joystickUseAnalog = Cvar_Get( "in_joystickUseAnalog", "0", 
CVAR_ARCHIVE_ND );
 
-       in_joystickThreshold = Cvar_Get( "joy_threshold", "0.15", CVAR_ARCHIVE 
);
+       in_joystickThreshold = Cvar_Get( "joy_threshold", "0.15", 
CVAR_ARCHIVE_ND );
 
        stick = SDL_JoystickOpen( in_joystickNo->integer );
 
@@ -604,13 +604,13 @@ void IN_Init( void *windowData )
        Com_DPrintf( "\n------- Input Initialization -------\n" );
 
        // joystick variables
-       in_keyboardDebug = Cvar_Get( "in_keyboardDebug", "0", CVAR_ARCHIVE );
+       in_keyboardDebug = Cvar_Get( "in_keyboardDebug", "0", CVAR_ARCHIVE_ND );
 
-       in_joystick = Cvar_Get( "in_joystick", "0", CVAR_ARCHIVE|CVAR_LATCH );
+       in_joystick = Cvar_Get( "in_joystick", "0", CVAR_ARCHIVE_ND|CVAR_LATCH 
);
 
        // mouse variables
        in_mouse = Cvar_Get( "in_mouse", "1", CVAR_ARCHIVE );
-       in_nograb = Cvar_Get( "in_nograb", "0", CVAR_ARCHIVE );
+       in_nograb = Cvar_Get( "in_nograb", "0", CVAR_ARCHIVE_ND );
 
        SDL_StartTextInput( );
 
diff --git a/shared/sdl/sdl_sound.cpp b/shared/sdl/sdl_sound.cpp
index 567fbf0..0529ce1 100644
--- a/shared/sdl/sdl_sound.cpp
+++ b/shared/sdl/sdl_sound.cpp
@@ -143,11 +143,11 @@ qboolean SNDDMA_Init(void)
                return qtrue;
 
        if (!s_sdlBits) {
-               s_sdlBits = Cvar_Get("s_sdlBits", "16", CVAR_ARCHIVE);
+               s_sdlBits = Cvar_Get("s_sdlBits", "16", CVAR_ARCHIVE_ND);
                s_sdlSpeed = Cvar_Get("s_sdlSpeed", "44100", CVAR_ARCHIVE);
-               s_sdlChannels = Cvar_Get("s_sdlChannels", "2", CVAR_ARCHIVE);
-               s_sdlDevSamps = Cvar_Get("s_sdlDevSamps", "0", CVAR_ARCHIVE);
-               s_sdlMixSamps = Cvar_Get("s_sdlMixSamps", "0", CVAR_ARCHIVE);
+               s_sdlChannels = Cvar_Get("s_sdlChannels", "2", CVAR_ARCHIVE_ND);
+               s_sdlDevSamps = Cvar_Get("s_sdlDevSamps", "0", CVAR_ARCHIVE_ND);
+               s_sdlMixSamps = Cvar_Get("s_sdlMixSamps", "0", CVAR_ARCHIVE_ND);
        }
 
        Com_Printf( "SDL_Init( SDL_INIT_AUDIO )... " );
diff --git a/shared/sdl/sdl_window.cpp b/shared/sdl/sdl_window.cpp
index b0fc123..5fa0f8b 100644
--- a/shared/sdl/sdl_window.cpp
+++ b/shared/sdl/sdl_window.cpp
@@ -729,7 +729,7 @@ window_t WIN_Init( const windowDesc_t *windowDesc, 
glconfig_t *glConfig )
        Cmd_AddCommand("minimize", GLimp_Minimize);
 
        r_sdlDriver                     = Cvar_Get( "r_sdlDriver",              
        "",                     CVAR_ROM );
-       r_allowSoftwareGL       = Cvar_Get( "r_allowSoftwareGL",        "0",    
        CVAR_ARCHIVE|CVAR_LATCH );
+       r_allowSoftwareGL       = Cvar_Get( "r_allowSoftwareGL",        "0",    
        CVAR_ARCHIVE_ND|CVAR_LATCH );
 
        // Window cvars
        r_fullscreen            = Cvar_Get( "r_fullscreen",                     
"0",            CVAR_ARCHIVE|CVAR_LATCH );
@@ -737,18 +737,18 @@ window_t WIN_Init( const windowDesc_t *windowDesc, 
glconfig_t *glConfig )
        r_centerWindow          = Cvar_Get( "r_centerWindow",           "0",    
        CVAR_ARCHIVE|CVAR_LATCH );
        r_customwidth           = Cvar_Get( "r_customwidth",            "1600", 
        CVAR_ARCHIVE|CVAR_LATCH );
        r_customheight          = Cvar_Get( "r_customheight",           "1024", 
        CVAR_ARCHIVE|CVAR_LATCH );
-       r_swapInterval          = Cvar_Get( "r_swapInterval",           "0",    
        CVAR_ARCHIVE );
-       r_stereo                        = Cvar_Get( "r_stereo",                 
        "0",            CVAR_ARCHIVE|CVAR_LATCH );
+       r_swapInterval          = Cvar_Get( "r_swapInterval",           "0",    
        CVAR_ARCHIVE_ND );
+       r_stereo                        = Cvar_Get( "r_stereo",                 
        "0",            CVAR_ARCHIVE_ND|CVAR_LATCH );
        r_mode                          = Cvar_Get( "r_mode",                   
        "4",            CVAR_ARCHIVE|CVAR_LATCH );
        r_displayRefresh        = Cvar_Get( "r_displayRefresh",         "0",    
        CVAR_LATCH );
        Cvar_CheckRange( r_displayRefresh, 0, 240, qtrue );
 
        // Window render surface cvars
-       r_stencilbits           = Cvar_Get( "r_stencilbits",            "8",    
        CVAR_ARCHIVE|CVAR_LATCH );
-       r_depthbits                     = Cvar_Get( "r_depthbits",              
        "0",            CVAR_ARCHIVE|CVAR_LATCH );
-       r_colorbits                     = Cvar_Get( "r_colorbits",              
        "0",            CVAR_ARCHIVE|CVAR_LATCH );
-       r_ignorehwgamma         = Cvar_Get( "r_ignorehwgamma",          "0",    
        CVAR_ARCHIVE|CVAR_LATCH );
-       r_ext_multisample       = Cvar_Get( "r_ext_multisample",        "0",    
        CVAR_ARCHIVE|CVAR_LATCH );
+       r_stencilbits           = Cvar_Get( "r_stencilbits",            "8",    
        CVAR_ARCHIVE_ND|CVAR_LATCH );
+       r_depthbits                     = Cvar_Get( "r_depthbits",              
        "0",            CVAR_ARCHIVE_ND|CVAR_LATCH );
+       r_colorbits                     = Cvar_Get( "r_colorbits",              
        "0",            CVAR_ARCHIVE_ND|CVAR_LATCH );
+       r_ignorehwgamma         = Cvar_Get( "r_ignorehwgamma",          "0",    
        CVAR_ARCHIVE_ND|CVAR_LATCH );
+       r_ext_multisample       = Cvar_Get( "r_ext_multisample",        "0",    
        CVAR_ARCHIVE_ND|CVAR_LATCH );
        Cvar_Get( "r_availableModes", "", CVAR_ROM );
 
        // Create the window and set up the context
diff --git a/shared/sys/sys_main.cpp b/shared/sys/sys_main.cpp
index 7d1e1fa..05a4083 100644
--- a/shared/sys/sys_main.cpp
+++ b/shared/sys/sys_main.cpp
@@ -162,8 +162,8 @@ void Sys_Init( void ) {
 #else
        com_maxfps = Cvar_Get( "com_maxfps", "125", CVAR_ARCHIVE, "Maximum 
frames per second" );
 #endif
-       com_maxfpsUnfocused = Cvar_Get( "com_maxfpsUnfocused", "0", 
CVAR_ARCHIVE );
-       com_maxfpsMinimized = Cvar_Get( "com_maxfpsMinimized", "50", 
CVAR_ARCHIVE );
+       com_maxfpsUnfocused = Cvar_Get( "com_maxfpsUnfocused", "0", 
CVAR_ARCHIVE_ND );
+       com_maxfpsMinimized = Cvar_Get( "com_maxfpsMinimized", "50", 
CVAR_ARCHIVE_ND );
 }
 
 static void NORETURN Sys_Exit( int ex ) {

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/openjk.git

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to