Beispiel #1
0
        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();
                }
            }
        }
Beispiel #2
0
        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);
        }