From a70983634480bcf28eb61077253af85cb5fa6165 Mon Sep 17 00:00:00 2001 From: terencehill Date: Thu, 26 Apr 2012 01:10:46 +0200 Subject: [PATCH] Fix "sv_cmd settemp mycvar" wrongly warning "Already had a tracker for mycvar ..." when the tracker cannot be created (e.g. nonexistent cvar) --- qcsrc/common/command/generic.qc | 10 ++++++---- qcsrc/common/util.qc | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/qcsrc/common/command/generic.qc b/qcsrc/common/command/generic.qc index 99d5681be..ebf546eff 100644 --- a/qcsrc/common/command/generic.qc +++ b/qcsrc/common/command/generic.qc @@ -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: diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index ec72290e8..6b737603e 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -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); -- 2.39.2