X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=cvar.c;h=98a7207eef5d54be079a76669450cdcbc1a25e38;hb=807a2d21bd8d7ef7eb82b04eb631057d89b3526d;hp=790bdd051220133bc264c2465cec29edbd6140b2;hpb=57252d1b300d96b2353bf9d564b0de281552d2c5;p=xonotic%2Fdarkplaces.git diff --git a/cvar.c b/cvar.c index 790bdd05..98a7207e 100644 --- a/cvar.c +++ b/cvar.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -187,7 +187,7 @@ void Cvar_SetQuick (cvar_t *var, const char *value) if (var == NULL) { - Con_Printf("Cvar_SetQuick: var == NULL\n"); + Con_Print("Cvar_SetQuick: var == NULL\n"); return; } @@ -206,11 +206,8 @@ void Cvar_SetQuick (cvar_t *var, const char *value) strcpy (var->string, value); var->value = atof (var->string); var->integer = (int) var->value; - if ((var->flags & CVAR_NOTIFY) && changed) - { - if (sv.active) - SV_BroadcastPrintf ("\"%s\" changed to \"%s\"\n", var->name, var->string); - } + if ((var->flags & CVAR_NOTIFY) && changed && sv.active) + SV_BroadcastPrintf("\"%s\" changed to \"%s\"\n", var->name, var->string); } void Cvar_Set (const char *var_name, const char *value) @@ -220,7 +217,12 @@ void Cvar_Set (const char *var_name, const char *value) if (var == NULL) { // there is an error in C code if this happens - Con_Printf ("Cvar_Set: variable %s not found\n", var_name); + Con_Printf("Cvar_Set: variable %s not found\n", var_name); + return; + } + if (var->flags & CVAR_READONLY) + { + Con_Printf("Cvar_Set: %s is read-only\n", var_name); return; } @@ -232,22 +234,26 @@ void Cvar_Set (const char *var_name, const char *value) Cvar_SetValue ============ */ -void Cvar_SetValueQuick (cvar_t *var, float value) +void Cvar_SetValueQuick(cvar_t *var, float value) { - char val[32]; + char val[256]; - // LordHavoc: changed from %f to %g to use shortest representation - sprintf (val, "%g",value); - Cvar_SetQuick (var, val); + if ((float)((int)value) == value) + sprintf(val, "%i", (int)value); + else + sprintf(val, "%f", value); + Cvar_SetQuick(var, val); } -void Cvar_SetValue (const char *var_name, float value) +void Cvar_SetValue(const char *var_name, float value) { - char val[32]; + char val[256]; - // LordHavoc: changed from %f to %g to use shortest representation - sprintf (val, "%g",value); - Cvar_Set (var_name, val); + if ((float)((int)value) == value) + sprintf(val, "%i", (int)value); + else + sprintf(val, "%f", value); + Cvar_Set(var_name, val); } /* @@ -264,14 +270,14 @@ void Cvar_RegisterVariable (cvar_t *variable) // first check to see if it has already been defined if (Cvar_FindVar (variable->name)) { - Con_Printf ("Can't register variable %s, already defined\n", variable->name); + Con_Printf("Can't register variable %s, already defined\n", variable->name); return; } // check for overlap with a command if (Cmd_Exists (variable->name)) { - Con_Printf ("Cvar_RegisterVariable: %s is a command\n", variable->name); + Con_Printf("Cvar_RegisterVariable: %s is a command\n", variable->name); return; } @@ -306,7 +312,9 @@ qboolean Cvar_Command (void) // perform a variable print or set if (Cmd_Argc() == 1) { - Con_Printf ("\"%s\" is \"%s\"\n", v->name, v->string); + // only print if host_initialized (otherwise it could print twice if this is in a script) + if (host_initialized) + Con_Printf("\"%s\" is \"%s\"\n", v->name, v->string); return true; } @@ -329,7 +337,7 @@ void Cvar_WriteVariables (qfile_t *f) for (var = cvar_vars ; var ; var = var->next) if (var->flags & CVAR_SAVE) - FS_Printf (f, "%s \"%s\"\n", var->name, var->string); + FS_Printf(f, "%s \"%s\"\n", var->name, var->string); } @@ -363,14 +371,14 @@ void Cvar_List_f (void) if (partial && strncmp (partial,cvar->name,len)) continue; - Con_Printf ("%s is \"%s\"\n", cvar->name, cvar->string); + Con_Printf("%s is \"%s\"\n", cvar->name, cvar->string); count++; } - Con_Printf ("%i cvar(s)", count); + Con_Printf("%i cvar(s)", count); if (partial) - Con_Printf (" beginning with \"%s\"", partial); - Con_Printf ("\n"); + Con_Printf(" beginning with \"%s\"", partial); + Con_Print("\n"); } // 2000-01-09 CvarList command by Maddes