]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
Revert the cvar alias system, as a checkpoint pending an overhaul
authorcloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 8 Jun 2020 14:46:11 +0000 (14:46 +0000)
committercloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 8 Jun 2020 14:46:11 +0000 (14:46 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12651 d7cf8633-e32d-0410-b094-e92efae38249

20 files changed:
cl_input.c
cl_parse.c
cl_video.c
cmd.c
console.c
cvar.c
cvar.h
host.c
host_cmd.c
lhnet.c
menu.c
netconn.c
netconn.h
prvm_cmds.c
prvm_edict.c
sbar.c
screen.h
server.h
sv_main.c
vid_sdl.c

index 903b240b4f4c797ad9ee83237b86d34928d57916..ed7c44c3c99cfff78fa7d01ba6976891f0440312 100644 (file)
@@ -1470,7 +1470,7 @@ static void CL_ClientMovement_PlayerMove(cl_clientmovement_state_t *s)
                CL_ClientMovement_Physics_Walk(s);
 }
 
-extern cvar_t host_timescale;
+extern cvar_t slowmo;
 void CL_UpdateMoveVars(void)
 {
        if (cls.protocol == PROTOCOL_QUAKEWORLD)
@@ -1517,8 +1517,8 @@ void CL_UpdateMoveVars(void)
        else
        {
                cl.moveflags = 0;
-               cl.movevars_ticrate = (cls.demoplayback ? 1.0f : host_timescale.value) / bound(1.0f, cl_netfps.value, 1000.0f);
-               cl.movevars_timescale = (cls.demoplayback ? 1.0f : host_timescale.value);
+               cl.movevars_ticrate = (cls.demoplayback ? 1.0f : slowmo.value) / bound(1.0f, cl_netfps.value, 1000.0f);
+               cl.movevars_timescale = (cls.demoplayback ? 1.0f : slowmo.value);
                cl.movevars_gravity = sv_gravity.value;
                cl.movevars_stopspeed = cl_movement_stopspeed.value;
                cl.movevars_maxspeed = cl_movement_maxspeed.value;
index 78797300c20dc081fe8ad273e6071129317c6e54..45bd0137d95daa69c68dbfd503c8758190e3b817 100644 (file)
@@ -3278,7 +3278,7 @@ static qboolean CL_ExaminePrintString(const char *text)
        return true;
 }
 
-extern cvar_t host_timescale;
+extern cvar_t slowmo;
 extern cvar_t cl_lerpexcess;
 static void CL_NetworkTimeReceived(double newtime)
 {
index a56f88430dd28a6b6000185a1cea884628842c45..5aebcd50a2dc06feecf44708dbaca9dd5bd04a40 100644 (file)
@@ -137,7 +137,7 @@ static void LoadSubtitles( clvideo_t *video, const char *subtitlesfile )
                char overridename[MAX_QPATH];
                cvar_t *langcvar;
 
-               langcvar = Cvar_FindVar(&cvars_all, "language", CVAR_CLIENT | CVAR_SERVER, false);
+               langcvar = Cvar_FindVar(&cvars_all, "language", CVAR_CLIENT | CVAR_SERVER);
                subtitle_text = NULL;
                if (langcvar)
                {
diff --git a/cmd.c b/cmd.c
index fecc7bd939c87dd3a9a857ca0e20c3503a182ecb..1c5c4fb44d7de526f63f839d3165c60a1d7afad4 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -788,7 +788,7 @@ static void Cmd_Toggle_f(cmd_state_t *cmd)
        else
        { // Correct Arguments Specified
                // Acquire Potential CVar
-               cvar_t* cvCVar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 1), cmd->cvars_flagsmask, false);
+               cvar_t* cvCVar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 1), cmd->cvars_flagsmask);
 
                if(cvCVar != NULL)
                { // Valid CVar
@@ -1036,7 +1036,7 @@ static const char *Cmd_GetDirectCvarValue(cmd_state_t *cmd, const char *varname,
                }
        }
 
-       if((cvar = Cvar_FindVar(cmd->cvars, varname, cmd->cvars_flagsmask, false)) && !(cvar->flags & CVAR_PRIVATE))
+       if((cvar = Cvar_FindVar(cmd->cvars, varname, cmd->cvars_flagsmask)) && !(cvar->flags & CVAR_PRIVATE))
                return cvar->string;
 
        return NULL;
@@ -1446,10 +1446,8 @@ static void Cmd_Apropos_f(cmd_state_t *cmd)
        for (cvar = cmd->cvars->vars; cvar; cvar = cvar->next)
        {
                if (!matchpattern_with_separator(cvar->name, partial, true, "", false))
+               if (!matchpattern_with_separator(cvar->description, partial, true, "", false))
                        continue;
-               if (!(cvar->flags & CVAR_ALIAS))
-                       if (!matchpattern_with_separator(cvar->description, partial, true, "", false))
-                               continue;
                Con_Printf ("cvar ");
                Cvar_PrintHelp(cvar, true);
                count++;
@@ -1714,7 +1712,7 @@ void Cmd_AddCommand(cmd_state_t *cmd, const char *cmd_name, xcommand_t function,
        cmd_function_t *prev, *current;
 
 // fail if the command is a variable name
-       if (Cvar_FindVar(cmd->cvars, cmd_name, ~0, true))
+       if (Cvar_FindVar(cmd->cvars, cmd_name, ~0))
        {
                Con_Printf("Cmd_AddCommand: %s already defined as a var\n", cmd_name);
                return;
index 6e1dd4c4969c48e129a51c5ee810ab7770241f6d..ea394a1888e07c508aa8f4fe2ccfef7ef87496f8 100644 (file)
--- a/console.c
+++ b/console.c
@@ -3007,11 +3007,11 @@ void Con_CompleteCommandLine (cmd_state_t *cmd)
                Con_Printf("\n%i possible command%s\n", c, (c > 1) ? "s: " : ":");
                Cmd_CompleteCommandPrint(cmd, s);
        }
-       v = Cvar_CompleteCountPossible(cmd->cvars, s, CVAR_CLIENT | CVAR_SERVER | CVAR_ALIAS);
+       v = Cvar_CompleteCountPossible(cmd->cvars, s, CVAR_CLIENT | CVAR_SERVER);
        if (v)
        {
                Con_Printf("\n%i possible variable%s\n", v, (v > 1) ? "s: " : ":");
-               Cvar_CompleteCvarPrint(cmd->cvars, s, CVAR_CLIENT | CVAR_SERVER | CVAR_ALIAS);
+               Cvar_CompleteCvarPrint(cmd->cvars, s, CVAR_CLIENT | CVAR_SERVER);
        }
        a = Cmd_CompleteAliasCountPossible(cmd, s);
        if (a)
@@ -3036,7 +3036,7 @@ void Con_CompleteCommandLine (cmd_state_t *cmd)
        if (c)
                text = *(list[0] = Cmd_CompleteBuildList(cmd, s));
        if (v)
-               text = *(list[1] = Cvar_CompleteBuildList(cmd->cvars, s, (cmd->cvars_flagsmask |= CVAR_ALIAS)));
+               text = *(list[1] = Cvar_CompleteBuildList(cmd->cvars, s, cmd->cvars_flagsmask));
        if (a)
                text = *(list[2] = Cmd_CompleteAliasBuildList(cmd, s));
        if (n)
diff --git a/cvar.c b/cvar.c
index 53996326d39316b40f3b97ac51d4c988962d948f..0b039e7f9754675ea802069689fe2891083eb40e 100644 (file)
--- a/cvar.c
+++ b/cvar.c
@@ -32,7 +32,7 @@ cvar_state_t cvars_null;
 Cvar_FindVar
 ============
 */
-cvar_t *Cvar_FindVar(cvar_state_t *cvars, const char *var_name, int neededflags, qboolean alias)
+cvar_t *Cvar_FindVar(cvar_state_t *cvars, const char *var_name, int neededflags)
 {
        int hashindex;
        cvar_t *var;
@@ -40,12 +40,9 @@ cvar_t *Cvar_FindVar(cvar_state_t *cvars, const char *var_name, int neededflags,
        // use hash lookup to minimize search time
        hashindex = CRC_Block((const unsigned char *)var_name, strlen(var_name)) % CVAR_HASHSIZE;
        for (var = cvars->hashtable[hashindex];var;var = var->nextonhashchain)
-               if (!strcmp (var_name, var->name))
-               {
-                       if(!alias && var->alias)
-                               return var->alias;
+               if (!strcmp (var_name, var->name) && (var->flags & neededflags))
                        return var;
-               }
+
        return NULL;
 }
 
@@ -55,7 +52,7 @@ cvar_t *Cvar_FindVarAfter(cvar_state_t *cvars, const char *prev_var_name, int ne
 
        if (*prev_var_name)
        {
-               var = Cvar_FindVar(cvars, prev_var_name, neededflags, false);
+               var = Cvar_FindVar(cvars, prev_var_name, neededflags);
                if (!var)
                        return NULL;
                var = var->next;
@@ -112,7 +109,7 @@ float Cvar_VariableValueOr(cvar_state_t *cvars, const char *var_name, float def,
 {
        cvar_t *var;
 
-       var = Cvar_FindVar(cvars, var_name, neededflags, false);
+       var = Cvar_FindVar(cvars, var_name, neededflags);
        if (!var)
                return def;
        return atof (var->string);
@@ -132,7 +129,7 @@ const char *Cvar_VariableStringOr(cvar_state_t *cvars, const char *var_name, con
 {
        cvar_t *var;
 
-       var = Cvar_FindVar(cvars, var_name, neededflags, false);
+       var = Cvar_FindVar(cvars, var_name, neededflags);
        if (!var)
                return def;
        return var->string;
@@ -152,7 +149,7 @@ const char *Cvar_VariableDefString(cvar_state_t *cvars, const char *var_name, in
 {
        cvar_t *var;
 
-       var = Cvar_FindVar(cvars, var_name, neededflags, false);
+       var = Cvar_FindVar(cvars, var_name, neededflags);
        if (!var)
                return cvar_null_string;
        return var->defstring;
@@ -167,7 +164,7 @@ const char *Cvar_VariableDescription(cvar_state_t *cvars, const char *var_name,
 {
        cvar_t *var;
 
-       var = Cvar_FindVar(cvars, var_name, neededflags, false);
+       var = Cvar_FindVar(cvars, var_name, neededflags);
        if (!var)
                return cvar_null_string;
        return var->description;
@@ -256,20 +253,9 @@ const char **Cvar_CompleteBuildList(cvar_state_t *cvars, const char *partial, in
 
 void Cvar_PrintHelp(cvar_t *cvar, qboolean full)
 {
-       cvar_t *cvar_actual;
-
-       Con_Printf("^3%s^7", cvar->name);
-       if(cvar->alias) {
-               cvar_actual = cvar->alias;
-               Con_Printf(" (now ^3%s^7)", cvar_actual->name);
-       } else {
-               cvar_actual = cvar;
-       }
-
-       Con_Printf(" is \"%s\" [\"%s\"] ", ((cvar_actual->flags & CVAR_PRIVATE) ? "********"/*hunter2*/ : cvar_actual->string), cvar_actual->defstring);
-       
+       Con_Printf("^3%s^7 is \"%s\" [\"%s\"] ", cvar->name, ((cvar->flags & CVAR_PRIVATE) ? "********"/*hunter2*/ : cvar->string), cvar->defstring);
        if (full)
-               Con_Printf("%s", cvar_actual->description);
+               Con_Printf("%s", cvar->description);
        Con_Printf("\n");
 }
 
@@ -365,9 +351,6 @@ static void Cvar_SetQuick_Internal (cvar_t *var, const char *value)
        char vabuf[1024];
        char new_value[MAX_INPUTLINE];
 
-       if(var->alias)
-               var = var->alias;
-
        changed = strcmp(var->string, value) != 0;
        // LadyHavoc: don't reallocate when there is no change
        if (!changed)
@@ -470,7 +453,7 @@ void Cvar_SetQuick (cvar_t *var, const char *value)
 void Cvar_Set(cvar_state_t *cvars, const char *var_name, const char *value)
 {
        cvar_t *var;
-       var = Cvar_FindVar(cvars, var_name, ~0, false);
+       var = Cvar_FindVar(cvars, var_name, ~0);
        if (var == NULL)
        {
                Con_Printf("Cvar_Set: variable %s not found\n", var_name);
@@ -506,21 +489,9 @@ void Cvar_SetValue(cvar_state_t *cvars, const char *var_name, float value)
        Cvar_Set(cvars, var_name, val);
 }
 
-void Cvar_RegisterCallback(cvar_t *var, void (*callback)(char *))
+void Cvar_RegisterCallback(cvar_t *variable, void (*callback)(char *))
 {
-       var->callback = callback;
-}
-
-void Cvar_RegisterAlias(cvar_t *alias, cvar_t *target)
-{
-       if(!(alias->flags & CVAR_ALIAS)) {
-               Con_Warnf("Cvar_RegisterAlias: \"%s\" is not declared as an alias\n", alias->name);
-               return;
-       }
-       // We'll want to register it first
-       Cvar_RegisterVariable(alias);
-
-       alias->alias = target;
+       variable->callback = callback;
 }
 
 /*
@@ -539,33 +510,26 @@ void Cvar_RegisterVariable (cvar_t *variable)
        size_t alloclen;
        int i;
 
-       if(!(variable->flags & CVAR_ALIAS))
-       {
-               switch (variable->flags & (CVAR_CLIENT | CVAR_SERVER))
-               {
-               case CVAR_CLIENT:
-               case CVAR_SERVER:
-               case CVAR_CLIENT | CVAR_SERVER:
-                       cvars = &cvars_all;
-                       break;
-               case 0:
-                       Sys_Error("Cvar_RegisterVariable({\"%s\", \"%s\", %i}) with no CVAR_CLIENT | CVAR_SERVER flags\n", variable->name, variable->string, variable->flags);
-                       break;
-               default:
-                       Sys_Error("Cvar_RegisterVariable({\"%s\", \"%s\", %i}) with weird CVAR_CLIENT | CVAR_SERVER flags\n", variable->name, variable->string, variable->flags);
-                       break;
-               }
-       }
-       else
+       switch (variable->flags & (CVAR_CLIENT | CVAR_SERVER))
        {
+       case CVAR_CLIENT:
+       case CVAR_SERVER:
+       case CVAR_CLIENT | CVAR_SERVER:
                cvars = &cvars_all;
+               break;
+       case 0:
+               Sys_Error("Cvar_RegisterVariable({\"%s\", \"%s\", %i}) with no CVAR_CLIENT | CVAR_SERVER flags\n", variable->name, variable->string, variable->flags);
+               break;
+       default:
+               Sys_Error("Cvar_RegisterVariable({\"%s\", \"%s\", %i}) with weird CVAR_CLIENT | CVAR_SERVER flags\n", variable->name, variable->string, variable->flags);
+               break;
        }
-       
+
        if (developer_extra.integer)
                Con_DPrintf("Cvar_RegisterVariable({\"%s\", \"%s\", %i});\n", variable->name, variable->string, variable->flags);
 
 // first check to see if it has already been defined
-       cvar = Cvar_FindVar(cvars, variable->name, ~0, true);
+       cvar = Cvar_FindVar(cvars, variable->name, ~0);
        if (cvar)
        {
                if (cvar->flags & CVAR_ALLOCATED)
@@ -616,18 +580,16 @@ void Cvar_RegisterVariable (cvar_t *variable)
                Con_Printf("Cvar_RegisterVariable: %s is a command\n", variable->name);
                return;
        }
-       if(!(variable->flags & CVAR_ALIAS))
-       {
-               // copy the value off, because future sets will Z_Free it
-               oldstr = (char *)variable->string;
-               alloclen = strlen(variable->string) + 1;
-               variable->string = (char *)Z_Malloc (alloclen);
-               memcpy ((char *)variable->string, oldstr, alloclen);
-               variable->defstring = (char *)Z_Malloc (alloclen);
-               memcpy ((char *)variable->defstring, oldstr, alloclen);
-               variable->value = atof (variable->string);
-               variable->integer = (int) variable->value;
-       }
+
+// copy the value off, because future sets will Z_Free it
+       oldstr = (char *)variable->string;
+       alloclen = strlen(variable->string) + 1;
+       variable->string = (char *)Z_Malloc (alloclen);
+       memcpy ((char *)variable->string, oldstr, alloclen);
+       variable->defstring = (char *)Z_Malloc (alloclen);
+       memcpy ((char *)variable->defstring, oldstr, alloclen);
+       variable->value = atof (variable->string);
+       variable->integer = (int) variable->value;
 
        // Mark it as not an autocvar.
        for (i = 0;i < PRVM_PROG_MAX;i++)
@@ -667,7 +629,7 @@ cvar_t *Cvar_Get(cvar_state_t *cvars, const char *name, const char *value, int f
                Con_DPrintf("Cvar_Get(\"%s\", \"%s\", %i);\n", name, value, flags);
 
 // first check to see if it has already been defined
-       cvar = Cvar_FindVar(cvars, name, ~0, true);
+       cvar = Cvar_FindVar(cvars, name, ~0);
        if (cvar)
        {
                cvar->flags |= flags;
@@ -737,20 +699,6 @@ cvar_t *Cvar_Get(cvar_state_t *cvars, const char *name, const char *value, int f
        return cvar;
 }
 
-qboolean Cvar_Readonly (cvar_t *var, const char *cmd_name)
-{
-       if (var->flags & CVAR_READONLY || (var->alias && (var->alias->flags & CVAR_READONLY)))
-       {
-               if(cmd_name)
-                       Con_Printf("%s: ",cmd_name);
-               Con_Printf("%s", var->name);
-               if (var->alias && var->alias->name)
-                       Con_Printf(" (from %s)",var->alias->name);
-               Con_Printf(" is read-only\n");
-               return true;
-       }
-       return false;
-}
 
 /*
 ============
@@ -765,7 +713,7 @@ qboolean    Cvar_Command (cmd_state_t *cmd)
        cvar_t                  *v;
 
 // check variables
-       v = Cvar_FindVar(cvars, Cmd_Argv(cmd, 0), (cmd->cvars_flagsmask), true);
+       v = Cvar_FindVar(cvars, Cmd_Argv(cmd, 0), cmd->cvars_flagsmask);
        if (!v)
                return false;
 
@@ -778,10 +726,12 @@ qboolean  Cvar_Command (cmd_state_t *cmd)
 
        if (developer_extra.integer)
                Con_DPrint("Cvar_Command: ");
-       
-       if(Cvar_Readonly(v, NULL))
+
+       if (v->flags & CVAR_READONLY)
+       {
+               Con_Printf("%s is read-only\n", v->name);
                return true;
-       
+       }
        Cvar_SetQuick(v, Cmd_Argv(cmd, 1));
        if (developer_extra.integer)
                Con_DPrint("\n");
@@ -795,11 +745,7 @@ void Cvar_UnlockDefaults(cmd_state_t *cmd)
        cvar_t *var;
        // unlock the default values of all cvars
        for (var = cvars->vars ; var ; var = var->next)
-       {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                var->flags &= ~CVAR_DEFAULTSET;
-       }
 }
 
 
@@ -810,8 +756,6 @@ void Cvar_LockDefaults_f(cmd_state_t *cmd)
        // lock in the default values of all cvars
        for (var = cvars->vars ; var ; var = var->next)
        {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                if (!(var->flags & CVAR_DEFAULTSET))
                {
                        size_t alloclen;
@@ -831,8 +775,6 @@ void Cvar_SaveInitState(cvar_state_t *cvars)
        cvar_t *c;
        for (c = cvars->vars;c;c = c->next)
        {
-               if(c->flags & CVAR_ALIAS)
-                       continue;
                c->initstate = true;
                c->initflags = c->flags;
                c->initdefstring = Mem_strdup(zonemempool, c->defstring);
@@ -850,8 +792,6 @@ void Cvar_RestoreInitState(cvar_state_t *cvars)
        cvar_t *c2, **cp2;
        for (cp = &cvars->vars;(c = *cp);)
        {
-               if(c->flags & CVAR_ALIAS)
-                       continue;
                if (c->initstate)
                {
                        // restore this cvar, it existed at init
@@ -928,12 +868,8 @@ void Cvar_ResetToDefaults_All_f(cmd_state_t *cmd)
        cvar_t *var;
        // restore the default values of all cvars
        for (var = cvars->vars ; var ; var = var->next)
-       {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                if((var->flags & CVAR_NORESETTODEFAULTS) == 0)
                        Cvar_SetQuick(var, var->defstring);
-       }
 }
 
 
@@ -943,12 +879,8 @@ void Cvar_ResetToDefaults_NoSaveOnly_f(cmd_state_t *cmd)
        cvar_t *var;
        // restore the default values of all cvars
        for (var = cvars->vars ; var ; var = var->next)
-       {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                if ((var->flags & (CVAR_NORESETTODEFAULTS | CVAR_SAVE)) == 0)
                        Cvar_SetQuick(var, var->defstring);
-       }
 }
 
 
@@ -958,12 +890,8 @@ void Cvar_ResetToDefaults_SaveOnly_f(cmd_state_t *cmd)
        cvar_t *var;
        // restore the default values of all cvars
        for (var = cvars->vars ; var ; var = var->next)
-       {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                if ((var->flags & (CVAR_NORESETTODEFAULTS | CVAR_SAVE)) == CVAR_SAVE)
                        Cvar_SetQuick(var, var->defstring);
-       }
 }
 
 
@@ -981,16 +909,13 @@ void Cvar_WriteVariables (cvar_state_t *cvars, qfile_t *f)
        char buf1[MAX_INPUTLINE], buf2[MAX_INPUTLINE];
 
        // don't save cvars that match their default value
-       for (var = cvars->vars ; var ; var = var->next) {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
+       for (var = cvars->vars ; var ; var = var->next)
                if ((var->flags & CVAR_SAVE) && (strcmp(var->string, var->defstring) || ((var->flags & CVAR_ALLOCATED) && !(var->flags & CVAR_DEFAULTSET))))
                {
                        Cmd_QuoteString(buf1, sizeof(buf1), var->name, "\"\\$", false);
                        Cmd_QuoteString(buf2, sizeof(buf2), var->string, "\"\\$", false);
                        FS_Printf(f, "%s\"%s\" \"%s\"\n", var->flags & CVAR_ALLOCATED ? "seta " : "", buf1, buf2);
                }
-       }
 }
 
 
@@ -1058,10 +983,12 @@ void Cvar_Set_f(cmd_state_t *cmd)
        }
 
        // check if it's read-only
-       cvar = Cvar_FindVar(cvars, Cmd_Argv(cmd, 1), ~0, true);
-       if (cvar)
-               if(Cvar_Readonly(cvar,"Set"))
-                       return;
+       cvar = Cvar_FindVar(cvars, Cmd_Argv(cmd, 1), ~0);
+       if (cvar && cvar->flags & CVAR_READONLY)
+       {
+               Con_Printf("Set: %s is read-only\n", cvar->name);
+               return;
+       }
 
        if (developer_extra.integer)
                Con_DPrint("Set: ");
@@ -1083,10 +1010,12 @@ void Cvar_SetA_f(cmd_state_t *cmd)
        }
 
        // check if it's read-only
-       cvar = Cvar_FindVar(cvars, Cmd_Argv(cmd, 1), ~0, true);
-       if (cvar)
-               if(Cvar_Readonly(cvar,"SetA"))
-                       return;
+       cvar = Cvar_FindVar(cvars, Cmd_Argv(cmd, 1), ~0);
+       if (cvar && cvar->flags & CVAR_READONLY)
+       {
+               Con_Printf("SetA: %s is read-only\n", cvar->name);
+               return;
+       }
 
        if (developer_extra.integer)
                Con_DPrint("SetA: ");
@@ -1115,8 +1044,11 @@ void Cvar_Del_f(cmd_state_t *cmd)
                        Con_Printf("%s: %s is not defined\n", Cmd_Argv(cmd, 0), Cmd_Argv(cmd, i));
                        continue;
                }
-               if(Cvar_Readonly(cvar, Cmd_Argv(cmd, 0)))
+               if(cvar->flags & CVAR_READONLY)
+               {
+                       Con_Printf("%s: %s is read-only\n", Cmd_Argv(cmd, 0), cvar->name);
                        continue;
+               }
                if(!(cvar->flags & CVAR_ALLOCATED))
                {
                        Con_Printf("%s: %s is static and cannot be deleted\n", Cmd_Argv(cmd, 0), cvar->name);
@@ -1137,15 +1069,13 @@ void Cvar_Del_f(cmd_state_t *cmd)
                        parent->nextonhashchain = cvar->nextonhashchain;
                else if(link)
                        *link = cvar->nextonhashchain;
-               if(!(cvar->flags & CVAR_ALIAS))
-               {
-                       if(cvar->description != cvar_dummy_description)
-                               Z_Free((char *)cvar->description);
 
-                       Z_Free((char *)cvar->name);
-                       Z_Free((char *)cvar->string);
-                       Z_Free((char *)cvar->defstring);
-               }
+               if(cvar->description != cvar_dummy_description)
+                       Z_Free((char *)cvar->description);
+
+               Z_Free((char *)cvar->name);
+               Z_Free((char *)cvar->string);
+               Z_Free((char *)cvar->defstring);
                Z_Free(cvar);
        }
 }
@@ -1171,8 +1101,6 @@ void Cvar_FillAll_f(cmd_state_t *cmd)
        buf[n] = 0;
        for(var = cvars->vars; var; var = var->next)
        {
-               if(var->flags & CVAR_ALIAS)
-                       continue;
                for(i = 0, p = buf, q = var->name; i < n; ++i)
                {
                        *p++ = *q++;
diff --git a/cvar.h b/cvar.h
index 84248c56fb339d539bf22e87d7deabf015a447a1..2bbcd1dc177bc9a4470d30ff59064ca7127db208 100644 (file)
--- a/cvar.h
+++ b/cvar.h
@@ -76,10 +76,8 @@ interface from being ambiguous.
 #define CVAR_CLIENT 256
 // cvar is accessible in dedicated server
 #define CVAR_SERVER 512
-// cvar is an alias of another cvar
-#define CVAR_ALIAS 1024
 // used to determine if flags is valid
-#define CVAR_MAXFLAGSVAL 2047
+#define CVAR_MAXFLAGSVAL 1023
 // for internal use only!
 #define CVAR_DEFAULTSET (1<<30)
 #define CVAR_ALLOCATED (1<<31)
@@ -151,7 +149,6 @@ typedef struct cvar_s
        //menucvar_t menuinfo;
        struct cvar_s *next;
        struct cvar_s *nextonhashchain;
-       struct cvar_s *alias;
 } cvar_t;
 
 typedef struct cvar_state_s
@@ -175,14 +172,10 @@ void Cvar_MenuOption(cvar_t *variable, int menu, int value[16], const char *name
 
 /// registers a cvar that already has the name, string, and optionally the
 /// archive elements set.
-void Cvar_RegisterAlias(cvar_t *source, cvar_t *target);
-
 void Cvar_RegisterCallback(cvar_t *variable, void (*callback)(char *));
 
 void Cvar_RegisterVariable(cvar_t *variable);
 
-qboolean Cvar_Readonly (cvar_t *var, const char *cmd_name);
-
 /// equivelant to "<name> <variable>" typed at the console
 void Cvar_Set (cvar_state_t *cvars, const char *var_name, const char *value);
 
@@ -236,7 +229,7 @@ void Cvar_WriteVariables (cvar_state_t *cvars, qfile_t *f);
 // Writes lines containing "set variable value" for all variables
 // with the archive flag set to true.
 
-cvar_t *Cvar_FindVar(cvar_state_t *cvars, const char *var_name, int neededflags, qboolean alias);
+cvar_t *Cvar_FindVar(cvar_state_t *cvars, const char *var_name, int neededflags);
 cvar_t *Cvar_FindVarAfter(cvar_state_t *cvars, const char *prev_var_name, int neededflags);
 
 int Cvar_CompleteCountPossible(cvar_state_t *cvars, const char *partial, int neededflags);
diff --git a/host.c b/host.c
index 5c6af792322dfd2aad3691e544a429de462322f2..f9dd0c570fc4546079c3dcdb1cadd9825c661a2e 100644 (file)
--- a/host.c
+++ b/host.c
@@ -881,8 +881,8 @@ void Host_Main(void)
                                framelimit = cl_maxphysicsframesperserverframe.integer;
                                aborttime = Sys_DirtyTime() + 0.1;
                        }
-                       if(host_timescale.value > 0 && host_timescale.value < 1)
-                               advancetime = min(advancetime, 0.1 / host_timescale.value);
+                       if(slowmo.value > 0 && slowmo.value < 1)
+                               advancetime = min(advancetime, 0.1 / slowmo.value);
                        else
                                advancetime = min(advancetime, 0.1);
 
@@ -899,7 +899,7 @@ void Host_Main(void)
 
                        // only advance time if not paused
                        // the game also pauses in singleplayer when menu or console is used
-                       sv.frametime = advancetime * host_timescale.value;
+                       sv.frametime = advancetime * slowmo.value;
                        if (host_framerate.value)
                                sv.frametime = host_framerate.value;
                        if (sv.paused || (cl.islocalgame && (key_dest != key_game || key_consoleactive || cl.csqc_paused)))
@@ -980,7 +980,7 @@ void Host_Main(void)
                        // scale playback speed of demos by slowmo cvar
                        if (cls.demoplayback)
                        {
-                               clframetime *= host_timescale.value;
+                               clframetime *= slowmo.value;
                                // if demo playback is paused, don't advance time at all
                                if (cls.demopaused)
                                        clframetime = 0;
index 9f50578adfc2b48cb6c0e81e7b265b08c0f665d6..280ce6a6f1c79e6dae8a8a9e3c0f51be45047190 100644 (file)
@@ -2502,13 +2502,13 @@ static void Host_SendCvar_f(cmd_state_t *cmd)
        cvarname = Cmd_Argv(cmd, 1);
        if (cls.state == ca_connected)
        {
-               c = Cvar_FindVar(&cvars_all, cvarname, CVAR_CLIENT | CVAR_SERVER, false);
+               c = Cvar_FindVar(&cvars_all, cvarname, CVAR_CLIENT | CVAR_SERVER);
                // LadyHavoc: if there is no such cvar or if it is private, send a
                // reply indicating that it has no value
                if(!c || (c->flags & CVAR_PRIVATE))
                        Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "sentcvar %s", cvarname));
                else
-                       Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "sentcvar %s \"%s\"", cvarname, c->string));
+                       Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "sentcvar %s \"%s\"", c->name, c->string));
                return;
        }
        if(!sv.active)// || !PRVM_serverfunction(SV_ParseClientCommand))
diff --git a/lhnet.c b/lhnet.c
index 6bacc224a5ef5aa561e36d4dda8b9fdde22fa17b..40b5148bf02b85bdb1e6cf29f6f5e79f6b48d99d 100644 (file)
--- a/lhnet.c
+++ b/lhnet.c
@@ -1110,7 +1110,7 @@ int LHNET_Read(lhnetsocket_t *lhnetsocket, void *content, int maxcontentlength,
                                continue;
                        }
 #ifndef STANDALONETEST
-                       if (net_fakelag.value && (realtime - net_fakelag.value * (1.0 / 2000.0)) < p->sentdoubletime)
+                       if (cl_netlocalping.value && (realtime - cl_netlocalping.value * (1.0 / 2000.0)) < p->sentdoubletime)
                                continue;
 #endif
                        if (value == 0 && p->destinationport == lhnetsocket->address.port)
diff --git a/menu.c b/menu.c
index 25fd8acb816e049f6362d08be9c8855d658129d3..be6c3c01d3b844ba72fee795310f95137802b943 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -1581,7 +1581,7 @@ void M_Menu_Options_f(cmd_state_t *cmd)
        m_entersound = true;
 }
 
-extern cvar_t host_timescale;
+extern cvar_t slowmo;
 extern dllhandle_t jpeg_dll;
 extern cvar_t gl_texture_anisotropy;
 extern cvar_t r_textshadow;
@@ -1615,8 +1615,8 @@ static void M_Menu_Options_AdjustSliders (int dir)
                        Cvar_SetValueQuick (&cl_backspeed, 400);
                }
        }
-       else if (options_cursor == optnum++) Cvar_SetValueQuick(&cl_showfps, !cl_showfps.integer);
-       else if (options_cursor == optnum++) {f = !(cl_showdate.integer && cl_showtime.integer);Cvar_SetValueQuick(&cl_showdate, f);Cvar_SetValueQuick(&cl_showtime, f);}
+       else if (options_cursor == optnum++) Cvar_SetValueQuick(&showfps, !showfps.integer);
+       else if (options_cursor == optnum++) {f = !(showdate.integer && showtime.integer);Cvar_SetValueQuick(&showdate, f);Cvar_SetValueQuick(&showtime, f);}
        else if (options_cursor == optnum++) ;
        else if (options_cursor == optnum++) Cvar_SetValueQuick(&r_hdr_scenebrightness, bound(1, r_hdr_scenebrightness.value + dir * 0.0625, 4));
        else if (options_cursor == optnum++) Cvar_SetValueQuick(&v_contrast, bound(1, v_contrast.value + dir * 0.0625, 4));
@@ -1692,8 +1692,8 @@ static void M_Options_Draw (void)
        M_Options_PrintCheckbox("          Invert Mouse", true, m_pitch.value < 0);
        M_Options_PrintSlider(  "         Field of View", true, scr_fov.integer, 1, 170);
        M_Options_PrintCheckbox("            Always Run", true, cl_forwardspeed.value > 200);
-       M_Options_PrintCheckbox("        Show Framerate", true, cl_showfps.integer);
-       M_Options_PrintCheckbox("    Show Date and Time", true, cl_showdate.integer && cl_showtime.integer);
+       M_Options_PrintCheckbox("        Show Framerate", true, showfps.integer);
+       M_Options_PrintCheckbox("    Show Date and Time", true, showdate.integer && showtime.integer);
        M_Options_PrintCommand( "     Custom Brightness", true);
        M_Options_PrintSlider(  "       Game Brightness", true, r_hdr_scenebrightness.value, 1, 4);
        M_Options_PrintSlider(  "            Brightness", true, v_contrast.value, 1, 2);
index b48e89a71b5a7880c2e1bdd2b9df97f6bf45bbe4..b7527d7480cf469a36470672cb0f62023378fa2a 100755 (executable)
--- a/netconn.c
+++ b/netconn.c
@@ -85,13 +85,9 @@ cvar_t net_sourceaddresscheck = {CVAR_CLIENT, "net_sourceaddresscheck", "1", "co
 cvar_t hostname = {CVAR_SERVER | CVAR_SAVE, "hostname", "UNNAMED", "server message to show in server browser"};
 cvar_t developer_networking = {CVAR_CLIENT | CVAR_SERVER, "developer_networking", "0", "prints all received and sent packets (recommended only for debugging)"};
 
-cvar_t net_fakelag = {CVAR_CLIENT, "net_fakelag","0", "lags local loopback connection by this much ping time (useful to play more fairly on your own server with people with higher pings)"};
-cvar_t cl_netlocalping = {CVAR_ALIAS, "cl_netlocalping"};
-static cvar_t net_fakeloss_send = {CVAR_CLIENT, "cl_netpacketloss_send","0", "drops this percentage of outgoing packets, useful for testing network protocol robustness (jerky movement, prediction errors, etc)"};
-static cvar_t net_fakeloss_receive = {CVAR_CLIENT, "cl_netpacketloss_receive","0", "drops this percentage of incoming packets, useful for testing network protocol robustness (jerky movement, effects failing to start, sounds failing to play, etc)"};
-static cvar_t cl_netpacketloss_send = {CVAR_ALIAS, "cl_netpacketloss_send"};
-static cvar_t cl_netpacketloss_receive = {CVAR_ALIAS, "cl_netpacketloss_receive"};
-
+cvar_t cl_netlocalping = {CVAR_CLIENT, "cl_netlocalping","0", "lags local loopback connection by this much ping time (useful to play more fairly on your own server with people with higher pings)"};
+static cvar_t cl_netpacketloss_send = {CVAR_CLIENT, "cl_netpacketloss_send","0", "drops this percentage of outgoing packets, useful for testing network protocol robustness (jerky movement, prediction errors, etc)"};
+static cvar_t cl_netpacketloss_receive = {CVAR_CLIENT, "cl_netpacketloss_receive","0", "drops this percentage of incoming packets, useful for testing network protocol robustness (jerky movement, effects failing to start, sounds failing to play, etc)"};
 static cvar_t net_slist_queriespersecond = {CVAR_CLIENT, "net_slist_queriespersecond", "20", "how many server information requests to send per second"};
 static cvar_t net_slist_queriesperframe = {CVAR_CLIENT, "net_slist_queriesperframe", "4", "maximum number of server information requests to send each rendered frame (guards against low framerates causing problems)"};
 static cvar_t net_slist_timeout = {CVAR_CLIENT, "net_slist_timeout", "4", "how long to listen for a server information response before giving up"};
@@ -622,9 +618,9 @@ int NetConn_Read(lhnetsocket_t *mysocket, void *data, int maxlength, lhnetaddres
                Thread_UnlockMutex(netconn_mutex);
        if (length == 0)
                return 0;
-       if (net_fakeloss_receive.integer)
+       if (cl_netpacketloss_receive.integer)
                for (i = 0;i < cl_numsockets;i++)
-                       if (cl_sockets[i] == mysocket && (rand() % 100) < net_fakeloss_receive.integer)
+                       if (cl_sockets[i] == mysocket && (rand() % 100) < cl_netpacketloss_receive.integer)
                                return 0;
        if (developer_networking.integer)
        {
@@ -646,9 +642,9 @@ int NetConn_Write(lhnetsocket_t *mysocket, const void *data, int length, const l
 {
        int ret;
        int i;
-       if (net_fakeloss_send.integer)
+       if (cl_netpacketloss_send.integer)
                for (i = 0;i < cl_numsockets;i++)
-                       if (cl_sockets[i] == mysocket && (rand() % 100) < net_fakeloss_send.integer)
+                       if (cl_sockets[i] == mysocket && (rand() % 100) < cl_netpacketloss_send.integer)
                                return length;
        if (mysocket->address.addresstype == LHNETADDRESSTYPE_LOOP && netconn_mutex)
                Thread_LockMutex(netconn_mutex);
@@ -3903,12 +3899,9 @@ void NetConn_Init(void)
        Cvar_RegisterVariable(&net_challengefloodblockingtimeout);
        Cvar_RegisterVariable(&net_getstatusfloodblockingtimeout);
        Cvar_RegisterVariable(&net_sourceaddresscheck);
-       Cvar_RegisterVariable(&net_fakelag);
-       Cvar_RegisterVariable(&net_fakeloss_send);
-       Cvar_RegisterVariable(&net_fakeloss_receive);
-       Cvar_RegisterAlias(&cl_netlocalping, &net_fakelag);
-       Cvar_RegisterAlias(&cl_netpacketloss_send, &net_fakeloss_send);
-       Cvar_RegisterAlias(&cl_netpacketloss_receive, &net_fakeloss_receive);
+       Cvar_RegisterVariable(&cl_netlocalping);
+       Cvar_RegisterVariable(&cl_netpacketloss_send);
+       Cvar_RegisterVariable(&cl_netpacketloss_receive);
        Cvar_RegisterVariable(&hostname);
        Cvar_RegisterVariable(&developer_networking);
        Cvar_RegisterVariable(&cl_netport);
index 7120c531f87d98f186085e4d3d789ab664c1c136..6f0d762e8043e35e2c8001e0be55837c7e1921e5 100755 (executable)
--- a/netconn.h
+++ b/netconn.h
@@ -421,7 +421,7 @@ extern char sv_readstring[MAX_INPUTLINE];
 
 extern cvar_t sv_public;
 
-extern cvar_t net_fakelag;
+extern cvar_t cl_netlocalping;
 
 extern cvar_t cl_netport;
 extern cvar_t sv_netport;
index 680aa06ef8de0c651c46542752daae6c6da9a7fd..f947766ae6e9a56040f0643cde7a49127cb8592b 100644 (file)
@@ -641,7 +641,7 @@ void VM_localcmd_server(prvm_prog_t *prog)
 static qboolean PRVM_Cvar_ReadOk(prvm_prog_t *prog, const char *string)
 {
        cvar_t *cvar;
-       cvar = Cvar_FindVar(prog->console_cmd->cvars, string, prog->console_cmd->cvars_flagsmask, false);
+       cvar = Cvar_FindVar(prog->console_cmd->cvars, string, prog->console_cmd->cvars_flagsmask);
        return ((cvar) && ((cvar->flags & CVAR_PRIVATE) == 0));
 }
 
@@ -683,7 +683,7 @@ void VM_cvar_type(prvm_prog_t *prog)
        VM_SAFEPARMCOUNTRANGE(1,8,VM_cvar);
        VM_VarString(prog, 0, string, sizeof(string));
        VM_CheckEmptyString(prog, string);
-       cvar = Cvar_FindVar(prog->console_cmd->cvars, string, prog->console_cmd->cvars_flagsmask, true);
+       cvar = Cvar_FindVar(prog->console_cmd->cvars, string, prog->console_cmd->cvars_flagsmask);
 
 
        if(!cvar)
@@ -1674,7 +1674,7 @@ void VM_registercvar(prvm_prog_t *prog)
                return;
 
 // first check to see if it has already been defined
-       if (Cvar_FindVar (prog->console_cmd->cvars, name, prog->console_cmd->cvars_flagsmask, true))
+       if (Cvar_FindVar (prog->console_cmd->cvars, name, prog->console_cmd->cvars_flagsmask))
                return;
 
 // check for overlap with a command
index 90cc8d8f79e38badfc76e9769c8c430ed04179ea..c027ec719bdd656242c50fb7d54fe196787e88ea 100644 (file)
@@ -1164,11 +1164,12 @@ static void PRVM_ED_EdictGet_f(cmd_state_t *cmd)
        s = PRVM_UglyValueString(prog, (etype_t)key->type, v, valuebuf, sizeof(valuebuf));
        if(Cmd_Argc(cmd) == 5)
        {
-               cvar_t *cvar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 4), cmd->cvars_flagsmask, true);
-               if (cvar)
-                       if(Cvar_Readonly(cvar, "prvm_edictget"))
-                               goto fail;
-
+               cvar_t *cvar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 4), cmd->cvars_flagsmask);
+               if (cvar && cvar->flags & CVAR_READONLY)
+               {
+                       Con_Printf("prvm_edictget: %s is read-only\n", cvar->name);
+                       goto fail;
+               }
                Cvar_Get(cmd->cvars, Cmd_Argv(cmd, 4), s, cmd->cvars_flagsmask, NULL);
        }
        else
@@ -1206,10 +1207,12 @@ static void PRVM_ED_GlobalGet_f(cmd_state_t *cmd)
        s = PRVM_UglyValueString(prog, (etype_t)key->type, v, valuebuf, sizeof(valuebuf));
        if(Cmd_Argc(cmd) == 4)
        {
-               cvar_t *cvar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 3), cmd->cvars_flagsmask, true);
-               if (cvar)
-                       if(Cvar_Readonly(cvar, "prvm_globalget"))
-                               goto fail;
+               cvar_t *cvar = Cvar_FindVar(cmd->cvars, Cmd_Argv(cmd, 3), cmd->cvars_flagsmask);
+               if (cvar && cvar->flags & CVAR_READONLY)
+               {
+                       Con_Printf("prvm_globalget: %s is read-only\n", cvar->name);
+                       goto fail;
+               }
                Cvar_Get(cmd->cvars, Cmd_Argv(cmd, 3), s, cmd->cvars_flagsmask, NULL);
        }
        else
@@ -2387,7 +2390,7 @@ void PRVM_Prog_Load(prvm_prog_t *prog, const char * filename, unsigned char * da
                )
                {
                        prvm_eval_t *val = PRVM_GLOBALFIELDVALUE(prog->globaldefs[i].ofs);
-                       cvar = Cvar_FindVar(prog->console_cmd->cvars, name + 9, prog->console_cmd->cvars_flagsmask, false);
+                       cvar = Cvar_FindVar(prog->console_cmd->cvars, name + 9, prog->console_cmd->cvars_flagsmask);
                        //Con_Printf("PRVM_LoadProgs: autocvar global %s in %s, processing...\n", name, prog->name);
                        if(!cvar)
                        {
diff --git a/sbar.c b/sbar.c
index 092e353535722ecfd11edde95f6f42a8929ab1f3..010925b7b6bf81cb63eb80c86dc55d3957b7917f 100644 (file)
--- a/sbar.c
+++ b/sbar.c
@@ -85,28 +85,16 @@ cachepic_t *sb_complete;
 cachepic_t *sb_inter;
 cachepic_t *sb_finale;
 
-cvar_t cl_showfps = {CVAR_CLIENT | CVAR_SAVE, "cl_showfps", "0", "shows your rendered fps (frames per second)"};
-cvar_t cl_showsound = {CVAR_CLIENT | CVAR_SAVE, "cl_showsound", "0", "shows number of active sound sources, sound latency, and other statistics"};
-cvar_t cl_showblur = {CVAR_CLIENT | CVAR_SAVE, "cl_showblur", "0", "shows the current alpha level of motionblur"};
-cvar_t cl_showspeed = {CVAR_CLIENT | CVAR_SAVE, "cl_showspeed", "0", "shows your current speed (qu per second); number selects unit: 1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots"};
-cvar_t cl_showtopspeed = {CVAR_CLIENT | CVAR_SAVE, "cl_showtopspeed", "0", "shows your top speed (kept on screen for max 3 seconds); value -1 takes over the unit from cl_showspeed, otherwise it's an unit number just like in cl_showspeed"};
-cvar_t cl_showtime = {CVAR_CLIENT | CVAR_SAVE, "cl_showtime", "0", "shows current time of day (useful on screenshots)"};
-cvar_t cl_showtime_format = {CVAR_CLIENT | CVAR_SAVE, "cl_showtime_format", "%H:%M:%S", "format string for time of day"};
-cvar_t cl_showdate = {CVAR_CLIENT | CVAR_SAVE, "cl_showdate", "0", "shows current date (useful on screenshots)"};
-cvar_t cl_showdate_format = {CVAR_CLIENT | CVAR_SAVE, "cl_showdate_format", "%Y-%m-%d", "format string for date"};
-cvar_t cl_showtex = {CVAR_CLIENT, "cl_showtex", "0", "shows the name of the texture on the crosshair (for map debugging)"};
-
-cvar_t showfps = {CVAR_ALIAS, "showfps"};
-cvar_t showsound = {CVAR_ALIAS, "showsound"};
-cvar_t showblur = {CVAR_ALIAS, "showblur"};
-cvar_t showspeed = {CVAR_ALIAS, "showspeed"};
-cvar_t showtopspeed = {CVAR_ALIAS, "showtopspeed"};
-cvar_t showtime = {CVAR_ALIAS, "showtime"};
-cvar_t showtime_format = {CVAR_ALIAS, "showtime_format"};
-cvar_t showdate = {CVAR_ALIAS, "showdate"};
-cvar_t showdate_format = {CVAR_ALIAS, "showdate_format"};
-cvar_t showtex = {CVAR_ALIAS, "showtex"};
-
+cvar_t showfps = {CVAR_CLIENT | CVAR_SAVE, "showfps", "0", "shows your rendered fps (frames per second)"};
+cvar_t showsound = {CVAR_CLIENT | CVAR_SAVE, "showsound", "0", "shows number of active sound sources, sound latency, and other statistics"};
+cvar_t showblur = {CVAR_CLIENT | CVAR_SAVE, "showblur", "0", "shows the current alpha level of motionblur"};
+cvar_t showspeed = {CVAR_CLIENT | CVAR_SAVE, "showspeed", "0", "shows your current speed (qu per second); number selects unit: 1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots"};
+cvar_t showtopspeed = {CVAR_CLIENT | CVAR_SAVE, "showtopspeed", "0", "shows your top speed (kept on screen for max 3 seconds); value -1 takes over the unit from showspeed, otherwise it's an unit number just like in showspeed"};
+cvar_t showtime = {CVAR_CLIENT | CVAR_SAVE, "showtime", "0", "shows current time of day (useful on screenshots)"};
+cvar_t showtime_format = {CVAR_CLIENT | CVAR_SAVE, "showtime_format", "%H:%M:%S", "format string for time of day"};
+cvar_t showdate = {CVAR_CLIENT | CVAR_SAVE, "showdate", "0", "shows current date (useful on screenshots)"};
+cvar_t showdate_format = {CVAR_CLIENT | CVAR_SAVE, "showdate_format", "%Y-%m-%d", "format string for date"};
+cvar_t showtex = {CVAR_CLIENT, "showtex", "0", "shows the name of the texture on the crosshair (for map debugging)"};
 cvar_t sbar_alpha_bg = {CVAR_CLIENT | CVAR_SAVE, "sbar_alpha_bg", "0.4", "opacity value of the statusbar background image"};
 cvar_t sbar_alpha_fg = {CVAR_CLIENT | CVAR_SAVE, "sbar_alpha_fg", "1", "opacity value of the statusbar weapon/item icons and numbers"};
 cvar_t sbar_hudselector = {CVAR_CLIENT | CVAR_SAVE, "sbar_hudselector", "0", "selects which of the builtin hud layouts to use (meaning is somewhat dependent on gamemode, so nexuiz has a very different set of hud layouts than quake for example)"};
@@ -374,28 +362,16 @@ void Sbar_Init (void)
                Cmd_AddCommand(&cmd_client, "+showscores", Sbar_ShowScores_f, "show scoreboard");
                Cmd_AddCommand(&cmd_client, "-showscores", Sbar_DontShowScores_f, "hide scoreboard");
        }
-       Cvar_RegisterVariable(&cl_showfps);
-       Cvar_RegisterVariable(&cl_showsound);
-       Cvar_RegisterVariable(&cl_showblur);
-       Cvar_RegisterVariable(&cl_showspeed);
-       Cvar_RegisterVariable(&cl_showtopspeed);
-       Cvar_RegisterVariable(&cl_showtime);
-       Cvar_RegisterVariable(&cl_showtime_format);
-       Cvar_RegisterVariable(&cl_showdate);
-       Cvar_RegisterVariable(&cl_showdate_format);
-       Cvar_RegisterVariable(&cl_showtex);
-       
-       Cvar_RegisterAlias(&showfps, &cl_showfps);
-       Cvar_RegisterAlias(&showsound, &cl_showsound);
-       Cvar_RegisterAlias(&showblur, &cl_showblur);
-       Cvar_RegisterAlias(&showspeed, &cl_showspeed);
-       Cvar_RegisterAlias(&showtopspeed, &cl_showtopspeed);
-       Cvar_RegisterAlias(&showtime, &cl_showtime);
-       Cvar_RegisterAlias(&showtime_format, &cl_showtime_format);
-       Cvar_RegisterAlias(&showdate, &cl_showdate);
-       Cvar_RegisterAlias(&showdate_format, &cl_showdate_format);
-       Cvar_RegisterAlias(&showtex, &cl_showtex);
-       
+       Cvar_RegisterVariable(&showfps);
+       Cvar_RegisterVariable(&showsound);
+       Cvar_RegisterVariable(&showblur);
+       Cvar_RegisterVariable(&showspeed);
+       Cvar_RegisterVariable(&showtopspeed);
+       Cvar_RegisterVariable(&showtime);
+       Cvar_RegisterVariable(&showtime_format);
+       Cvar_RegisterVariable(&showdate);
+       Cvar_RegisterVariable(&showdate_format);
+       Cvar_RegisterVariable(&showtex);
        Cvar_RegisterVariable(&sbar_alpha_bg);
        Cvar_RegisterVariable(&sbar_alpha_fg);
        Cvar_RegisterVariable(&sbar_hudselector);
@@ -1059,7 +1035,7 @@ time_t topxy_time = 0;
 static void get_showspeed_unit(int unitnumber, double *conversion_factor, const char **unit)
 {
        if(unitnumber < 0)
-               unitnumber = cl_showspeed.integer;
+               unitnumber = showspeed.integer;
        switch(unitnumber)
        {
                default:
@@ -1145,10 +1121,10 @@ void Sbar_ShowFPS(void)
        topspeedstring[0] = 0;
        texstring[0] = 0;
        entstring[0] = 0;
-       if (cl_showfps.integer)
+       if (showfps.integer)
        {
                red = (showfps_framerate < 1.0f);
-               if(cl_showfps.integer == 2)
+               if(showfps.integer == 2)
                        dpsnprintf(fpsstring, sizeof(fpsstring), "%7.3f mspf", (1000.0 / showfps_framerate));
                else if (red)
                        dpsnprintf(fpsstring, sizeof(fpsstring), "%4i spf", (int)(1.0 / showfps_framerate + 0.5));
@@ -1163,42 +1139,42 @@ void Sbar_ShowFPS(void)
                        fps_strings++;
                }
        }
-       if (cl_showtime.integer)
+       if (showtime.integer)
        {
-               strlcpy(timestring, Sys_TimeString(cl_showtime_format.string), sizeof(timestring));
+               strlcpy(timestring, Sys_TimeString(showtime_format.string), sizeof(timestring));
                fps_strings++;
        }
-       if (cl_showdate.integer)
+       if (showdate.integer)
        {
-               strlcpy(datestring, Sys_TimeString(cl_showdate_format.string), sizeof(datestring));
+               strlcpy(datestring, Sys_TimeString(showdate_format.string), sizeof(datestring));
                fps_strings++;
        }
-       if (cl_showblur.integer)
+       if (showblur.integer)
        {
                dpsnprintf(blurstring, sizeof(blurstring), "%3i%% blur", (int)(cl.motionbluralpha * 100));
                fps_strings++;
        }
-       if (cl_showsound.integer)
+       if (showsound.integer)
        {
                dpsnprintf(soundstring, sizeof(soundstring), "%4i/4%i at %3ims", cls.soundstats.mixedsounds, cls.soundstats.totalsounds, cls.soundstats.latency_milliseconds);
                fps_strings++;
        }
-       if (cl_showspeed.integer || cl_showtopspeed.integer)
+       if (showspeed.integer || showtopspeed.integer)
        {
                double speed, speedxy, f;
                const char *unit;
                speed = VectorLength(cl.movement_velocity);
                speedxy = sqrt(cl.movement_velocity[0] * cl.movement_velocity[0] + cl.movement_velocity[1] * cl.movement_velocity[1]);
-               if (cl_showspeed.integer)
+               if (showspeed.integer)
                {
-                       get_showspeed_unit(cl_showspeed.integer, &f, &unit);
+                       get_showspeed_unit(showspeed.integer, &f, &unit);
                        dpsnprintf(speedstring, sizeof(speedstring), "%.0f (%.0f) %s", f*speed, f*speedxy, unit);
                        fps_strings++;
                }
-               if (cl_showtopspeed.integer)
+               if (showtopspeed.integer)
                {
                        qboolean topspeed_latched = false, topspeedxy_latched = false;
-                       get_showspeed_unit(cl_showtopspeed.integer, &f, &unit);
+                       get_showspeed_unit(showtopspeed.integer, &f, &unit);
                        if (speed >= topspeed || current_time - top_time > 3)
                        {
                                topspeed = speed;
@@ -1221,7 +1197,7 @@ void Sbar_ShowFPS(void)
                        fps_strings++;
                }
        }
-       if (cl_showtex.integer)
+       if (showtex.integer)
        {
                vec3_t org;
                vec3_t dest;
index 55b0e3f0a0c0786cf9fb0f281d706c1baad533a4..8a9080c7d4f47b44385bfdc0dd11be0d6c7e2548 100644 (file)
--- a/screen.h
+++ b/screen.h
@@ -44,9 +44,9 @@ extern int sb_lines;
 
 extern cvar_t scr_viewsize;
 extern cvar_t scr_fov;
-extern cvar_t cl_showfps;
-extern cvar_t cl_showtime;
-extern cvar_t cl_showdate;
+extern cvar_t showfps;
+extern cvar_t showtime;
+extern cvar_t showdate;
 
 extern cvar_t crosshair;
 extern cvar_t crosshair_size;
index 46c124633d90e86a4e4d831ff0ef1146613e7ab6..c84fab1dece8779aa962cbd73262324c755d6081 100644 (file)
--- a/server.h
+++ b/server.h
@@ -404,7 +404,7 @@ extern cvar_t scratch2;
 extern cvar_t scratch3;
 extern cvar_t scratch4;
 extern cvar_t skill;
-extern cvar_t host_timescale;
+extern cvar_t slowmo;
 extern cvar_t sv_accelerate;
 extern cvar_t sv_aim;
 extern cvar_t sv_airaccel_qw;
index 874174780ee9551e5a14e46e9df60da70acb6e48..0a0dd9820c36aa8639a822d6c1ebafd1f31bcd67 100644 (file)
--- a/sv_main.c
+++ b/sv_main.c
@@ -47,8 +47,7 @@ cvar_t pausable = {CVAR_SERVER, "pausable","1", "allow players to pause or not (
 cvar_t pr_checkextension = {CVAR_SERVER | CVAR_READONLY, "pr_checkextension", "1", "indicates to QuakeC that the standard quakec extensions system is available (if 0, quakec should not attempt to use extensions)"};
 cvar_t samelevel = {CVAR_SERVER | CVAR_NOTIFY, "samelevel","0", "repeats same level if level ends (due to timelimit or someone hitting an exit)"};
 cvar_t skill = {CVAR_SERVER, "skill","1", "difficulty level of game, affects monster layouts in levels, 0 = easy, 1 = normal, 2 = hard, 3 = nightmare (same layout as hard but monsters fire twice)"};
-cvar_t host_timescale = {CVAR_CLIENT | CVAR_SERVER, "host_timescale", "1.0", "controls game speed, 0.5 is half speed, 2 is double speed"};
-cvar_t slowmo = {CVAR_ALIAS, "slowmo"};
+cvar_t slowmo = {CVAR_CLIENT | CVAR_SERVER, "slowmo", "1.0", "controls game speed, 0.5 is half speed, 2 is double speed"};
 
 cvar_t sv_accelerate = {CVAR_SERVER, "sv_accelerate", "10", "rate at which a player accelerates to sv_maxspeed"};
 cvar_t sv_aim = {CVAR_SERVER | CVAR_SAVE, "sv_aim", "2", "maximum cosine angle for quake's vertical autoaim, a value above 1 completely disables the autoaim, quake used 0.93"};
@@ -205,7 +204,7 @@ server_static_t svs;
 
 mempool_t *sv_mempool = NULL;
 
-extern cvar_t host_timescale;
+extern cvar_t slowmo;
 extern float           scr_centertime_off;
 
 // MUST match effectnameindex_t in client.h
@@ -414,7 +413,7 @@ prvm_required_field_t sv_reqglobals[] =
 #undef PRVM_DECLARE_function
 };
 
-static void Host_Timescale_c(char *string)
+static void SV_Slowmo_c(char *string)
 {
        double value;
        value = atof(string);
@@ -474,9 +473,8 @@ void SV_Init (void)
        Cvar_RegisterVariable (&pr_checkextension);
        Cvar_RegisterVariable (&samelevel);
        Cvar_RegisterVariable (&skill);
-       Cvar_RegisterVariable (&host_timescale);
-       Cvar_RegisterCallback (&host_timescale, Host_Timescale_c);
-       Cvar_RegisterAlias (&slowmo, &host_timescale);
+       Cvar_RegisterVariable (&slowmo);
+       Cvar_RegisterCallback (&slowmo, SV_Slowmo_c);
        Cvar_RegisterVariable (&sv_accelerate);
        Cvar_RegisterVariable (&sv_aim);
        Cvar_RegisterVariable (&sv_airaccel_qw);
@@ -2127,7 +2125,7 @@ void SV_WriteClientdataToMessage (client_t *client, prvm_edict_t *ent, sizebuf_t
                | (sv_gameplayfix_gravityunaffectedbyticrate.integer ? MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE : 0)
        ;
        statsf[STAT_MOVEVARS_TICRATE] = sys_ticrate.value;
-       statsf[STAT_MOVEVARS_TIMESCALE] = host_timescale.value;
+       statsf[STAT_MOVEVARS_TIMESCALE] = slowmo.value;
        statsf[STAT_MOVEVARS_GRAVITY] = sv_gravity.value;
        statsf[STAT_MOVEVARS_STOPSPEED] = sv_stopspeed.value;
        statsf[STAT_MOVEVARS_MAXSPEED] = sv_maxspeed.value;
@@ -4042,7 +4040,7 @@ static int SV_ThreadFunc(void *voiddata)
 
                        // only advance time if not paused
                        // the game also pauses in singleplayer when menu or console is used
-                       sv.frametime = advancetime * host_timescale.value;
+                       sv.frametime = advancetime * slowmo.value;
                        if (host_framerate.value)
                                sv.frametime = host_framerate.value;
                        if (sv.paused || (cl.islocalgame && (key_dest != key_game || key_consoleactive || cl.csqc_paused)))
index 7a7e13cdce4cc68c48b5e1226c1bf8e774a298a7..a415ebce0e661836645369854d0f7b3dbfba102a 100644 (file)
--- a/vid_sdl.c
+++ b/vid_sdl.c
@@ -1618,8 +1618,8 @@ extern cvar_t gl_info_driver;
 qboolean VID_InitMode(viddef_mode_t *mode)
 {
        // GAME_STEELSTORM specific
-       steelstorm_showing_map = Cvar_FindVar(&cvars_all, "steelstorm_showing_map", ~0, false);
-       steelstorm_showing_mousecursor = Cvar_FindVar(&cvars_all, "steelstorm_showing_mousecursor", ~0, false);
+       steelstorm_showing_map = Cvar_FindVar(&cvars_all, "steelstorm_showing_map", ~0);
+       steelstorm_showing_mousecursor = Cvar_FindVar(&cvars_all, "steelstorm_showing_mousecursor", ~0);
 
        if (!SDL_WasInit(SDL_INIT_VIDEO) && SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
                Sys_Error ("Failed to init SDL video subsystem: %s", SDL_GetError());