]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/gametypebutton.c
Tweak the Effects menu, and add iris adaptation to it as well.
[voretournament/voretournament.git] / data / qcsrc / menu / voret / gametypebutton.c
1 #ifdef INTERFACE\r
2 CLASS(VoretGametypeButton) EXTENDS(RadioButton)\r
3         METHOD(VoretGametypeButton, configureVoretGametypeButton, void(entity, float, string, string))\r
4         METHOD(VoretGametypeButton, setChecked, void(entity, float))\r
5         ATTRIB(VoretGametypeButton, fontSize, float, SKINFONTSIZE_NORMAL)\r
6         ATTRIB(VoretGametypeButton, image, string, SKINGFX_BUTTON_BIG)\r
7         ATTRIB(VoretGametypeButton, color, vector, SKINCOLOR_BUTTON_N)\r
8         ATTRIB(VoretGametypeButton, colorC, vector, SKINCOLOR_BUTTON_C)\r
9         ATTRIB(VoretGametypeButton, colorF, vector, SKINCOLOR_BUTTON_F)\r
10         ATTRIB(VoretGametypeButton, colorD, vector, SKINCOLOR_BUTTON_D)\r
11         ATTRIB(VoretGametypeButton, srcMulti, float, 1)\r
12         ATTRIB(VoretGametypeButton, useDownAsChecked, float, 1)\r
13 \r
14         ATTRIB(VoretGametypeButton, cvarName, string, string_null)\r
15         METHOD(VoretGametypeButton, loadCvars, void(entity))\r
16         METHOD(VoretGametypeButton, saveCvars, void(entity))\r
17 \r
18         ATTRIB(VoretGametypeButton, alpha, float, SKINALPHA_TEXT)\r
19         ATTRIB(VoretGametypeButton, disabledAlpha, float, SKINALPHA_DISABLED)\r
20 ENDCLASS(VoretGametypeButton)\r
21 entity makeVoretGametypeButton(float, string, string);\r
22 #endif\r
23 \r
24 #ifdef IMPLEMENTATION\r
25 void GameTypeButton_Click(entity me, entity other);\r
26 entity makeVoretGametypeButton(float theGroup, string theCvar, string theText)\r
27 {\r
28         entity me;\r
29         me = spawnVoretGametypeButton();\r
30         me.configureVoretGametypeButton(me, theGroup, theCvar, theText);\r
31         return me;\r
32 }\r
33 void configureVoretGametypeButtonVoretGametypeButton(entity me, float theGroup, string theCvar, string theText)\r
34 {\r
35         if(theCvar)\r
36         {\r
37                 me.cvarName = theCvar;\r
38                 me.tooltip = getZonedTooltipForIdentifier(theCvar);\r
39                 me.loadCvars(me);\r
40         }\r
41         me.configureRadioButton(me, theText, me.fontSize, me.image, theGroup, 0);\r
42         me.align = 0.5;\r
43         me.onClick = GameTypeButton_Click;\r
44         me.onClickEntity = NULL;\r
45 }\r
46 void setCheckedVoretGametypeButton(entity me, float val)\r
47 {\r
48         if(val != me.checked)\r
49         {\r
50                 me.checked = val;\r
51                 me.saveCvars(me);\r
52         }\r
53 }\r
54 void loadCvarsVoretGametypeButton(entity me)\r
55 {\r
56         if not(me.cvarName)\r
57                 return;\r
58 \r
59         me.checked = cvar(me.cvarName);\r
60 }\r
61 void saveCvarsVoretGametypeButton(entity me)\r
62 {\r
63         if not(me.cvarName)\r
64                 return;\r
65 \r
66         cvar_set(me.cvarName, ftos(me.checked));\r
67 }\r
68 void GameTypeButton_Click(entity me, entity other)\r
69 {\r
70         RadioButton_Click(me, other);\r
71         me.parent.gameTypeChangeNotify(me.parent);\r
72 }\r
73 #endif\r