]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/textslider.c
use a default value on the colorpicker_string
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / textslider.c
index 2236bc51fe362b88705c10b353e0e57b6e5ef7fe..3fee2bf558374b36d525f528ec3bad114c64c5c4 100644 (file)
@@ -6,13 +6,13 @@ CLASS(XonoticTextSlider) EXTENDS(TextSlider)
        ATTRIB(XonoticTextSlider, fontSize, float, SKINFONTSIZE_NORMAL)
        ATTRIB(XonoticTextSlider, valueSpace, float, SKINWIDTH_SLIDERTEXT)
        ATTRIB(XonoticTextSlider, image, string, SKINGFX_SLIDER)
-       ATTRIB(XonoticSlider, tolerance, vector, SKINTOLERANCE_SLIDER)
+       ATTRIB(XonoticTextSlider, tolerance, vector, SKINTOLERANCE_SLIDER)
        ATTRIB(XonoticTextSlider, align, float, 0.5)
-       ATTRIB(XonoticSlider, color, vector, SKINCOLOR_SLIDER_N)
-       ATTRIB(XonoticSlider, colorC, vector, SKINCOLOR_SLIDER_C)
-       ATTRIB(XonoticSlider, colorF, vector, SKINCOLOR_SLIDER_F)
-       ATTRIB(XonoticSlider, colorD, vector, SKINCOLOR_SLIDER_D)
-       ATTRIB(XonoticSlider, color2, vector, SKINCOLOR_SLIDER_S)
+       ATTRIB(XonoticTextSlider, color, vector, SKINCOLOR_SLIDER_N)
+       ATTRIB(XonoticTextSlider, colorC, vector, SKINCOLOR_SLIDER_C)
+       ATTRIB(XonoticTextSlider, colorF, vector, SKINCOLOR_SLIDER_F)
+       ATTRIB(XonoticTextSlider, colorD, vector, SKINCOLOR_SLIDER_D)
+       ATTRIB(XonoticTextSlider, color2, vector, SKINCOLOR_SLIDER_S)
 
        ATTRIB(XonoticTextSlider, cvarName, string, string_null)
        METHOD(XonoticTextSlider, loadCvars, void(entity))
@@ -32,7 +32,7 @@ entity makeXonoticTextSlider(string theCvar)
        me.configureXonoticTextSlider(me, theCvar);
        return me;
 }
-void configureXonoticTextSliderXonoticTextSlider(entity me, string theCvar)
+void XonoticTextSlider_configureXonoticTextSlider(entity me, string theCvar)
 {
        me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);
        if(theCvar)
@@ -42,15 +42,15 @@ void configureXonoticTextSliderXonoticTextSlider(entity me, string theCvar)
                // don't load it yet
        }
 }
-void setValueXonoticTextSlider(entity me, float val)
+void XonoticTextSlider_setValue(entity me, float val)
 {
        if(val != me.value)
        {
-               setValueSlider( me, val );
+               SUPER(XonoticTextSlider).setValue( me, val );
                me.saveCvars(me);
        }
 }
-void loadCvarsXonoticTextSlider(entity me)
+void XonoticTextSlider_loadCvars(entity me)
 {
        if not(me.cvarName)
                return;
@@ -61,8 +61,18 @@ void loadCvarsXonoticTextSlider(entity me)
        for(i = 1; i < n; ++i)
                s = strcat(s, " ", cvar_string(argv(i)));
        me.setValueFromIdentifier(me, s);
+       if(me.value < 0 && n > 1)
+       {
+               // if it failed: check if all cvars have the same value
+               // if yes, try its value as 1-word identifier
+               for(i = 1; i < n; ++i)
+                       if(cvar_string(argv(i)) != cvar_string(argv(i-1)))
+                               break;
+               if(i >= n)
+                       me.setValueFromIdentifier(me, cvar_string(argv(0)));
+       }
 }
-void saveCvarsXonoticTextSlider(entity me)
+void XonoticTextSlider_saveCvars(entity me)
 {
        if not(me.cvarName)
                return;
@@ -94,7 +104,7 @@ void saveCvarsXonoticTextSlider(entity me)
                }
        }
 }
-void configureXonoticTextSliderValuesXonoticTextSlider(entity me)
+void XonoticTextSlider_configureXonoticTextSliderValues(entity me)
 {
        me.configureTextSliderValues(me, string_null);
        me.loadCvars(me);