NexuizSlider: allow multiple cvars to be controlled
authordiv0 <div0@f962a42d-fe04-0410-a3ab-8c8b0445ebaa>
Tue, 5 Jan 2010 16:08:48 +0000 (16:08 +0000)
committerdiv0 <div0@f962a42d-fe04-0410-a3ab-8c8b0445ebaa>
Tue, 5 Jan 2010 16:08:48 +0000 (16:08 +0000)
git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8478 f962a42d-fe04-0410-a3ab-8c8b0445ebaa

data/qcsrc/menu/nexuiz/textslider.c

index e225b5a..19574e8 100644 (file)
@@ -55,7 +55,12 @@ void loadCvarsNexuizTextSlider(entity me)
        if not(me.cvarName)
                return;
 
-       me.setValueFromIdentifier(me, cvar_string(me.cvarName));
+       var float n = tokenize_console(me.cvarName);
+       var string s = cvar_string(argv(0));
+       float i;
+       for(i = 1; i < n; ++i)
+               s = strcat(s, " ", cvar_string(argv(i)));
+       me.setValueFromIdentifier(me, s);
 }
 void saveCvarsNexuizTextSlider(entity me)
 {
@@ -63,7 +68,23 @@ void saveCvarsNexuizTextSlider(entity me)
                return;
 
        if(me.value >= 0 && me.value < me.nValues)
-               cvar_set(me.cvarName, me.getIdentifier(me));
+       {
+               var float n = tokenize_console(me.cvarName);
+               if(n == 1)
+               {
+                       // this is a special case to allow spaces in the identifiers
+                       cvar_set(argv(0), me.getIdentifier(me));
+               }
+               else
+               {
+                       var float m = tokenize_console(strcat(me.cvarName, " ", me.getIdentifier(me)));
+                       if(m != n * 2)
+                               error("NexuizTextSlider: invalid identifier ", me.getIdentifier(me), " does not match cvar list ", me.cvarName);
+                       float i;
+                       for(i = 0; i < n; ++i)
+                               cvar_set(argv(i), argv(i + n));
+               }
+       }
 }
 void configureNexuizTextSliderValuesNexuizTextSlider(entity me)
 {