]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/weaponarenacheckbox.qc
Merge branch 'master' into terencehill/menu_listbox_changes
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / weaponarenacheckbox.qc
1 #ifndef WEAPONARENACHECKBOX_H
2 #define WEAPONARENACHECKBOX_H
3 #include "../item/checkbox.qc"
4 CLASS(XonoticWeaponarenaCheckBox, CheckBox)
5         METHOD(XonoticWeaponarenaCheckBox, configureXonoticWeaponarenaCheckBox, void(entity, string, string))
6         METHOD(XonoticWeaponarenaCheckBox, setChecked, void(entity, float))
7         ATTRIB(XonoticWeaponarenaCheckBox, fontSize, float, SKINFONTSIZE_NORMAL)
8         ATTRIB(XonoticWeaponarenaCheckBox, image, string, SKINGFX_CHECKBOX)
9         ATTRIB(XonoticWeaponarenaCheckBox, netname, string, string_null)
10
11         METHOD(XonoticWeaponarenaCheckBox, loadCvars, void(entity))
12         METHOD(XonoticWeaponarenaCheckBox, saveCvars, void(entity))
13 ENDCLASS(XonoticWeaponarenaCheckBox)
14 entity makeXonoticWeaponarenaCheckBox(string, string);
15 #endif
16
17 #ifdef IMPLEMENTATION
18 entity makeXonoticWeaponarenaCheckBox(string theWeapon, string theText)
19 {
20         entity me;
21         me = NEW(XonoticWeaponarenaCheckBox);
22         me.configureXonoticWeaponarenaCheckBox(me, theWeapon, theText);
23         return me;
24 }
25 void XonoticWeaponarenaCheckBox_configureXonoticWeaponarenaCheckBox(entity me, string theWeapon, string theText)
26 {
27         me.netname = theWeapon;
28         me.checked = false;
29         me.loadCvars(me);
30         me.configureCheckBox(me, theText, me.fontSize, me.image);
31 }
32 void XonoticWeaponarenaCheckBox_setChecked(entity me, float foo)
33 {
34         me.checked = !me.checked;
35         me.saveCvars(me);
36 }
37 void XonoticWeaponarenaCheckBox_loadCvars(entity me)
38 {
39         float n = tokenize_console(cvar_string("menu_weaponarena"));
40         float i;
41         for(i=0; i<n; ++i)
42         {
43                 if(argv(i) == me.netname)
44                 {
45                         me.checked = true;
46                         break;
47                 }
48         }
49 }
50
51 void XonoticWeaponarenaCheckBox_saveCvars(entity me)
52 {
53         if(me.checked)
54                 localcmd(strcat("\nmenu_cmd addtolist menu_weaponarena ", me.netname, "\n"));
55         else
56                 localcmd(strcat("\nmenu_cmd removefromlist menu_weaponarena ", me.netname, "\n"));
57         localcmd("\ng_weaponarena \"$menu_weaponarena\"\n");
58 }
59 #endif