public static void GetLatchedVars( ) { cvar_t var; for (var = Globals.cvar_vars; var != null; var = var.next) { if (var.latched_string == null || var.latched_string.Length == 0) { continue; } var.string_renamed = var.latched_string; var.latched_string = null; var.value = Lib.Atof(var.string_renamed); if (var.name.Equals("game")) { FS.SetGamedir(var.string_renamed); FS.ExecAutoexec(); } } }
static cvar_t Set2(String var_name, String value, Boolean force) { cvar_t var = Cvar.FindVar(var_name); if (var == null) { return(Cvar.Get(var_name, value, 0)); } if ((var.flags & (CVAR_USERINFO | CVAR_SERVERINFO)) != 0) { if (!InfoValidate(value)) { Com.Printf("invalid info cvar value\\n"); return(var); } } if (!force) { if ((var.flags & CVAR_NOSET) != 0) { Com.Printf(var_name + " is write protected.\\n"); return(var); } if ((var.flags & CVAR_LATCH) != 0) { if (var.latched_string != null) { if (value.Equals(var.latched_string)) { return(var); } var.latched_string = null; } else { if (value.Equals(var.string_renamed)) { return(var); } } if (Globals.server_state != 0) { Com.Printf(var_name + " will be changed for next game.\\n"); var.latched_string = value; } else { var.string_renamed = value; var.value = Lib.Atof(var.string_renamed); if (var.name.Equals("game")) { FS.SetGamedir(var.string_renamed); FS.ExecAutoexec(); } } return(var); } } else { if (var.latched_string != null) { var.latched_string = null; } } if (value.Equals(var.string_renamed)) { return(var); } var.modified = true; if ((var.flags & CVAR_USERINFO) != 0) { Globals.userinfo_modified = true; } var.string_renamed = value; try { var.value = Single.Parse(var.string_renamed); } catch (Exception e) { var.value = 0F; } return(var); }