From 517d0cb6178ad5cb43407b936a6b01779ceca5ef Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 11 Oct 2009 15:25:42 +0000 Subject: [PATCH] support longer settemp lists git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8102 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/defaultNexuiz.cfg | 8 +++++--- data/qcsrc/common/util.qc | 14 +++++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/data/defaultNexuiz.cfg b/data/defaultNexuiz.cfg index 50d2a2dff..d562314c4 100644 --- a/data/defaultNexuiz.cfg +++ b/data/defaultNexuiz.cfg @@ -1181,10 +1181,12 @@ r_labelsprites_scale 0.40625 // labels sprites get displayed at 0.5x from 640x48 // settemp subsystem. Do not touch. Usage: settemp variable value, next map resets it. set settemp_list 0 -set settemp_var _settemp_x -alias settemp "settemp_list \"1 $1 $settemp_var $settemp_list\"; set $settemp_var \"${$1}\"; settemp_var ${settemp_var}x; $1 \"$2\"" +set settemp_idx 0 +set _settemp_var UNUSED +alias settemp "_settemp_var \"_settemp_x$settemp_idx\"; qc_cmd rpn /settemp_idx settemp_idx 1 add def; _settemp \"$1\" \"$2\"" +alias _settemp "settemp_list \"1 $1 $_settemp_var $settemp_list\"; set $_settemp_var \"${$1}\"; $1 \"$2\"" alias settemp_restore "_settemp_restore_${settemp_list asis}" -alias _settemp_restore_0 "set settemp_var _settemp_x; set settemp_list 0" +alias _settemp_restore_0 "set settemp_var 0; set settemp_list 0" alias _settemp_restore_1 "$1 \"${$2}\"; _settemp_restore_${3- asis}" // usercommands. These can be edited and bound by the menu. diff --git a/data/qcsrc/common/util.qc b/data/qcsrc/common/util.qc index 5d6420647..1fa45206c 100644 --- a/data/qcsrc/common/util.qc +++ b/data/qcsrc/common/util.qc @@ -882,16 +882,20 @@ void cvar_settemp_restore() #else void cvar_settemp(string pKey, string pValue) { + float i; + string settemp_var; if(cvar_string(pKey) == pValue) return; - cvar_set("settemp_list", strcat("1 ", pKey, " ", cvar_string("settemp_var"), " ", cvar_string("settemp_list"))); + i = cvar("settemp_idx"); + cvar_set("settemp_idx", ftos(i+1)); + settemp_var = strcat("_settemp_x", ftos(i)); #ifdef MENUQC - registercvar(cvar_string("settemp_var"), "", 0); + registercvar(settemp_var, "", 0); #else - registercvar(cvar_string("settemp_var"), ""); + registercvar(settemp_var, ""); #endif - cvar_set(cvar_string("settemp_var"), cvar_string(pKey)); - cvar_set("settemp_var", strcat(cvar_string("settemp_var"), "x")); + cvar_set("settemp_list", strcat("1 ", pKey, " ", settemp_var, " ", cvar_string("settemp_list"))); + cvar_set(settemp_var, cvar_string(pKey)); cvar_set(pKey, pValue); } -- 2.39.2