]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix "sv_cmd settemp mycvar" wrongly warning "Already had a tracker for mycvar .....
authorterencehill <piuntn@gmail.com>
Wed, 25 Apr 2012 23:10:46 +0000 (01:10 +0200)
committerterencehill <piuntn@gmail.com>
Thu, 26 Apr 2012 12:41:39 +0000 (14:41 +0200)
qcsrc/common/command/generic.qc
qcsrc/common/util.qc

index 99d5681bec1b7e87f313cc72a2337f252e2c1954..ebf546eff2e62fefa2ff6f064ef9dad10d03f311 100644 (file)
@@ -380,15 +380,17 @@ void GenericCommand_settemp(float request, float argc)
                {
                        if(argc >= 3)
                        {
-                               if(cvar_settemp(argv(1), argv(2)))
+                               float f = cvar_settemp(argv(1), argv(2));
+                               if(f == 1)
                                        dprint("Creating new settemp tracker for ", argv(1), " and setting it to \"", argv(2), "\" temporarily.\n"); 
-                               else
+                               else if(f == -1)
                                        dprint("Already had a tracker for ", argv(1), ", updating it to \"", argv(2), "\".\n");
-                       
+                               // else cvar_settemp itself errors out
+
                                return;
                        }
                }
-                       
+
                default:
                        print("Incorrect parameters for ^2settemp^7\n");
                case CMD_REQUEST_USAGE:
index ec72290e87ebbf1a937ced62d6daafed1e920950..6b737603ec039ca02fc0b4c1646f00adab562ee7 100644 (file)
@@ -863,28 +863,28 @@ float cvar_settemp(string tmp_cvar, string tmp_value)
        if not(tmp_cvar || tmp_value)
        {
                dprint("Error: Invalid usage of cvar_settemp(string, string); !\n");
-               return FALSE;
+               return 0;
        }
 
        if(!cvar_type(tmp_cvar))
        {
                print(sprintf("Error: cvar %s doesn't exist!\n", tmp_cvar));
-               return FALSE;
+               return 0;
        }
 
        for(e = world; (e = find(e, classname, "saved_cvar_value")); )
                if(e.netname == tmp_cvar)
-                       goto saved; // skip creation
-
-       // creating a new entity to keep track of this cvar
-       e = spawn();
-       e.classname = "saved_cvar_value";
-       e.netname = strzone(tmp_cvar);
-       e.message = strzone(cvar_string(tmp_cvar));
-       created_saved_value = TRUE;
+                       created_saved_value = -1; // skip creation
 
-       // an entity for this cvar already exists
-       :saved
+       if(created_saved_value != -1)
+       {
+               // creating a new entity to keep track of this cvar
+               e = spawn();
+               e.classname = "saved_cvar_value";
+               e.netname = strzone(tmp_cvar);
+               e.message = strzone(cvar_string(tmp_cvar));
+               created_saved_value = 1;
+       }
 
        // update the cvar to the value given
        cvar_set(tmp_cvar, tmp_value);