X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Ftextslider.c;h=3fee2bf558374b36d525f528ec3bad114c64c5c4;hb=f8a768f456f516214f724e75fe050ab0cd3d3521;hp=d4786a7910aa7e43fbe1f915090abc8bee1fad54;hpb=b49d3f3ffff847ec761e15fcc6285a736cddcba3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/textslider.c b/qcsrc/menu/xonotic/textslider.c index d4786a791..3fee2bf55 100644 --- a/qcsrc/menu/xonotic/textslider.c +++ b/qcsrc/menu/xonotic/textslider.c @@ -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) { - me.value = 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);