]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/radiobutton.qc
Compact weapon flag checks
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / radiobutton.qc
index 85cc4fc5c559a3c56125fcce05e8aef6f1f7bf6e..536ea4f154f1b07d4c9b17afe67f18a2ff176f4d 100644 (file)
@@ -1,45 +1,22 @@
-#ifdef INTERFACE
-CLASS(XonoticRadioButton) EXTENDS(RadioButton)
-       METHOD(XonoticRadioButton, configureXonoticRadioButton, void(entity, float, string, string, string))
-       METHOD(XonoticRadioButton, draw, void(entity))
-       METHOD(XonoticRadioButton, setChecked, void(entity, float))
-       ATTRIB(XonoticRadioButton, fontSize, float, SKINFONTSIZE_NORMAL)
-       ATTRIB(XonoticRadioButton, image, string, SKINGFX_RADIOBUTTON)
-       ATTRIB(XonoticRadioButton, color, vector, SKINCOLOR_RADIOBUTTON_N)
-       ATTRIB(XonoticRadioButton, colorC, vector, SKINCOLOR_RADIOBUTTON_C)
-       ATTRIB(XonoticRadioButton, colorF, vector, SKINCOLOR_RADIOBUTTON_F)
-       ATTRIB(XonoticRadioButton, colorD, vector, SKINCOLOR_RADIOBUTTON_D)
+#include "radiobutton.qh"
 
-       ATTRIB(XonoticRadioButton, cvarName, string, string_null)
-       ATTRIB(XonoticRadioButton, cvarValue, string, string_null)
-       ATTRIB(XonoticRadioButton, cvarOffValue, string, string_null)
-       ATTRIB(XonoticRadioButton, getCvarValueFromCvar, float, 0)
-       METHOD(XonoticRadioButton, loadCvars, void(entity))
-       METHOD(XonoticRadioButton, saveCvars, void(entity))
-
-       ATTRIB(XonoticRadioButton, alpha, float, SKINALPHA_TEXT)
-       ATTRIB(XonoticRadioButton, disabledAlpha, float, SKINALPHA_DISABLED)
-ENDCLASS(XonoticRadioButton)
-entity makeXonoticRadioButton(float, string, string, string);
-#endif
-
-#ifdef IMPLEMENTATION
-entity makeXonoticRadioButton(float theGroup, string theCvar, string theValue, string theText)
+entity makeXonoticRadioButton_T(float theGroup, string theCvar, string theValue, string theText, string theTooltip)
 {
        entity me;
-       me = spawnXonoticRadioButton();
-       me.configureXonoticRadioButton(me, theGroup, theCvar, theValue, theText);
+       me = NEW(XonoticRadioButton);
+       me.configureXonoticRadioButton(me, theGroup, theCvar, theValue, theText, theTooltip);
        return me;
 }
-void XonoticRadioButton_configureXonoticRadioButton(entity me, float theGroup, string theCvar, string theValue, string theText)
+entity makeXonoticRadioButton(float theGroup, string theCvar, string theValue, string theText)
 {
-       if(theCvar)
-       {
-               me.cvarName = theCvar;
-               me.cvarValue = theValue;
-               me.tooltip = getZonedTooltipForIdentifier(theCvar);
-               me.loadCvars(me);
-       }
+       return makeXonoticRadioButton_T(theGroup, theCvar, theValue, theText, string_null);
+}
+void XonoticRadioButton_configureXonoticRadioButton(entity me, float theGroup, string theCvar, string theValue, string theText, string theTooltip)
+{
+       me.cvarName = (theCvar) ? theCvar : string_null;
+       me.cvarValue = theValue;
+       me.loadCvars(me);
+       setZonedTooltip(me, theTooltip, theCvar);
        me.configureRadioButton(me, theText, me.fontSize, me.image, theGroup, 0);
 }
 void XonoticRadioButton_setChecked(entity me, float val)
@@ -55,13 +32,18 @@ void XonoticRadioButton_loadCvars(entity me)
        if(me.cvarValue)
        {
                if(me.cvarName)
-                       me.checked = (cvar_string(me.cvarName) == me.cvarValue);
+               {
+                       if(me.cvarValueIsAnotherCvar)
+                               me.checked = (cvar_string(me.cvarName) == cvar_string(me.cvarValue));
+                       else
+                               me.checked = (cvar_string(me.cvarName) == me.cvarValue);
+               }
        }
        else
        {
                if(me.cvarName)
                {
-                       me.checked = !!cvar(me.cvarName);
+                       me.checked = boolean(cvar(me.cvarName));
                }
                else
                {
@@ -100,7 +82,7 @@ void XonoticRadioButton_saveCvars(entity me)
                {
                        if(me.checked)
                        {
-                               if(me.getCvarValueFromCvar)
+                               if(me.cvarValueIsAnotherCvar)
                                        cvar_set(me.cvarName, cvar_string(me.cvarValue));
                                else
                                        cvar_set(me.cvarName, me.cvarValue);
@@ -117,4 +99,3 @@ void XonoticRadioButton_saveCvars(entity me)
                }
        }
 }
-#endif