2 CLASS(XonoticColorButton) EXTENDS(RadioButton)
3 METHOD(XonoticColorButton, configureXonoticColorButton, void(entity, float, float, float))
4 METHOD(XonoticColorButton, setChecked, void(entity, float))
5 METHOD(XonoticColorButton, draw, void(entity))
6 ATTRIB(XonoticColorButton, fontSize, float, SKINFONTSIZE_NORMAL)
7 ATTRIB(XonoticColorButton, image, string, SKINGFX_COLORBUTTON)
8 ATTRIB(XonoticColorButton, image2, string, SKINGFX_COLORBUTTON_COLOR)
10 ATTRIB(XonoticColorButton, useDownAsChecked, float, 1)
12 ATTRIB(XonoticColorButton, cvarPart, float, 0)
13 ATTRIB(XonoticColorButton, cvarName, string, string_null)
14 ATTRIB(XonoticColorButton, cvarValueFloat, float, 0)
15 METHOD(XonoticColorButton, loadCvars, void(entity))
16 METHOD(XonoticColorButton, saveCvars, void(entity))
17 ENDCLASS(XonoticColorButton)
18 entity makeXonoticColorButton(float, float, float);
22 entity makeXonoticColorButton(float theGroup, float theColor, float theValue)
25 me = spawnXonoticColorButton();
26 me.configureXonoticColorButton(me, theGroup, theColor, theValue);
29 void XonoticColorButton_configureXonoticColorButton(entity me, float theGroup, float theColor, float theValue)
31 me.cvarName = "_cl_color";
32 me.cvarValueFloat = theValue;
33 me.cvarPart = theColor;
35 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)
53 me.checked = (cvar(me.cvarName) & 240) == me.cvarValueFloat * 16;
55 me.checked = (cvar(me.cvarName) & 15) == me.cvarValueFloat;
57 void XonoticColorButton_saveCvars(entity me)
65 cvar_set(me.cvarName, ftos(cvar(me.cvarName) & 15 + me.cvarValueFloat * 16));
67 cvar_set(me.cvarName, ftos(cvar(me.cvarName) & 240 + me.cvarValueFloat));
69 // TODO on an apply button, read _cl_color and execute the color command for it
71 void XonoticColorButton_draw(entity me)
73 me.color2 = colormapPaletteColor(me.cvarValueFloat, me.cvarPart);
74 SUPER(XonoticColorButton).draw(me);