1 #include "colorbutton.qh"
3 entity makeXonoticColorButton(float theGroup, float theColor, float theValue)
6 me = NEW(XonoticColorButton);
7 me.configureXonoticColorButton(me, theGroup, theColor, theValue);
10 void XonoticColorButton_configureXonoticColorButton(entity me, float theGroup, float theColor, float theValue)
14 // rearrange 1..14 for rainbow order
15 case 1: theValue = 10; break;
16 case 2: theValue = 4; break;
17 case 3: theValue = 1; break;
18 case 4: theValue = 14; break;
19 case 5: theValue = 12; break;
20 case 6: theValue = 7; break;
21 case 7: theValue = 3; break;
22 case 8: theValue = 2; break;
23 case 9: theValue = 6; break;
24 case 10: theValue = 5; break;
25 case 11: theValue = 13; break;
26 case 12: theValue = 11; break;
27 case 13: theValue = 8; break;
28 case 14: theValue = 9; break;
33 me.cvarName = "_cl_color";
34 me.cvarValueFloat = theValue;
35 me.cvarPart = theColor;
37 me.configureRadioButton(me, string_null, me.fontSize, me.image, theGroup, 0);
39 void XonoticColorButton_setChecked(entity me, float val)
47 void XonoticColorButton_loadCvars(entity me)
52 if(cvar_string(me.cvarName) == cvar_defstring(me.cvarName))
53 cvar_set(me.cvarName, ftos(16 * floor(random() * 15) + floor(random() * 15)));
56 me.checked = (cvar(me.cvarName) & 240) == me.cvarValueFloat * 16;
58 me.checked = (cvar(me.cvarName) & 15) == me.cvarValueFloat;
60 void XonoticColorButton_saveCvars(entity me)
68 cvar_set(me.cvarName, ftos((cvar(me.cvarName) & 15) + me.cvarValueFloat * 16));
70 cvar_set(me.cvarName, ftos((cvar(me.cvarName) & 240) + me.cvarValueFloat));
72 // TODO on an apply button, read _cl_color and execute the color command for it
74 void XonoticColorButton_draw(entity me)
76 me.color = colormapPaletteColor(me.cvarValueFloat, me.cvarPart);
80 SUPER(XonoticColorButton).draw(me);