X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cvar.c;fp=cvar.c;h=3dee0406d0351cc2ac9c39707dbca97ffb91e982;hp=707c54c5c0641b73528aa6c0b778b7845302d787;hb=6d89dcbc6b8565b1ee3cb7ec63213efde6c7d988;hpb=7a78585b9e14936dfa3d3b7b2a906ffac23bb2e5 diff --git a/cvar.c b/cvar.c index 707c54c5..3dee0406 100644 --- a/cvar.c +++ b/cvar.c @@ -105,32 +105,41 @@ cvar_t *Cvar_FindVarLink (const char *var_name, cvar_t **parent, cvar_t ***link, Cvar_VariableValue ============ */ -float Cvar_VariableValue (const char *var_name) +float Cvar_VariableValueOr (const char *var_name, float def) { cvar_t *var; var = Cvar_FindVar (var_name); if (!var) - return 0; + return def; return atof (var->string); } +float Cvar_VariableValue (const char *var_name) +{ + return Cvar_VariableValueOr(var_name, 0); +} /* ============ Cvar_VariableString ============ */ -const char *Cvar_VariableString (const char *var_name) +const char *Cvar_VariableStringOr (const char *var_name, const char *def) { cvar_t *var; var = Cvar_FindVar (var_name); if (!var) - return cvar_null_string; + return def; return var->string; } +const char *Cvar_VariableString (const char *var_name) +{ + return Cvar_VariableStringOr(var_name, cvar_null_string); +} + /* ============ Cvar_VariableDefString @@ -265,31 +274,32 @@ static void Cvar_UpdateAutoCvar(cvar_t *var) // MUST BE SYNCED WITH prvm_edict.c PRVM_LoadProgs int j; const char *s; - prvm_eval_t *val = (prvm_eval_t *)(prog->globals.generic + prog->globaldefs[var->globaldefindex[i]].ofs); + vec3_t v; switch(prog->globaldefs[var->globaldefindex[i]].type & ~DEF_SAVEGLOBAL) { case ev_float: - val->_float = var->value; + PRVM_GLOBALFIELDFLOAT(prog->globaldefs[var->globaldefindex[i]].ofs) = var->value; break; case ev_vector: s = var->string; - VectorClear(val->vector); + VectorClear(v); for (j = 0;j < 3;j++) { while (*s && ISWHITESPACE(*s)) s++; if (!*s) break; - val->vector[j] = atof(s); + v[j] = atof(s); while (!ISWHITESPACE(*s)) s++; if (!*s) break; } + VectorCopy(v, PRVM_GLOBALFIELDVECTOR(prog->globaldefs[var->globaldefindex[i]].ofs)); break; case ev_string: PRVM_ChangeEngineString(var->globaldefindex_stringno[i], var->string); - val->string = var->globaldefindex_stringno[i]; + PRVM_GLOBALFIELDSTRING(prog->globaldefs[var->globaldefindex[i]].ofs) = var->globaldefindex_stringno[i]; break; } }