much improved weapon icons panel, committing while it works :) still going to make...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_hudpanel_weaponicons.c
1 #ifdef INTERFACE
2 CLASS(XonoticHUDWeaponIconsDialog) EXTENDS(XonoticRootDialog)
3         METHOD(XonoticHUDWeaponIconsDialog, fill, void(entity))
4         ATTRIB(XonoticHUDWeaponIconsDialog, title, string, "Weapon Icons Panel")
5         ATTRIB(XonoticHUDWeaponIconsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
6         ATTRIB(XonoticHUDWeaponIconsDialog, intendedWidth, float, 0.4)
7         ATTRIB(XonoticHUDWeaponIconsDialog, rows, float, 15)
8         ATTRIB(XonoticHUDWeaponIconsDialog, columns, float, 4)
9         ATTRIB(XonoticHUDWeaponIconsDialog, name, string, "HUDweaponicons")
10 ENDCLASS(XonoticHUDWeaponIconsDialog)
11 #endif
12
13 #ifdef IMPLEMENTATION
14 void XonoticHUDWeaponIconsDialog_fill(entity me)
15 {
16         entity e;
17         string panelname = "weaponicons";
18         float i;
19
20         me.TR(me);
21                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_weaponicons", "Enable panel"));
22         me.TR(me);
23                 me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Background:"));
24         me.TR(me);
25                 me.TDempty(me, 0.2);
26                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
27                 me.TD(me, 3, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_", panelname, "_bg_color"))));
28                         setDependentStringNotEqual(e, strzone(strcat("hud_", panelname, "_bg_color")), "");
29         me.TR(me);
30                 me.TDempty(me, 0.2);
31                         me.TD(me, 1, 0.8, e = makeXonoticRadioButton(1, strzone(strcat("hud_", panelname, "_bg_color")), "", "Use default"));
32         me.TR(me);
33                 me.TDempty(me, 0.2);
34                         me.TD(me, 1, 0.8, e = makeXonoticRadioButton(1, strzone(strcat("hud_", panelname, "_bg_color")), strzone(cvar_string("hud_bg_color")), "Custom"));
35         me.TR(me);
36                 me.TDempty(me, 0.2);
37                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
38                         me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_", panelname, "_bg_border"))));
39                                 e.addValue(e, "Default", "");
40                                 e.addValue(e, "Disable", "0");
41                                 for(i = 1; i <= 10; ++i)
42                                         e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
43                                 e.configureXonoticTextSliderValues(e);
44         me.TR(me);
45                 me.TDempty(me, 0.2);
46                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
47                         me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_", panelname, "_bg_alpha"))));
48                                 e.addValue(e, "Default", "");
49                                 for(i = 1; i <= 10; ++i)
50                                         e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
51                                 e.configureXonoticTextSliderValues(e);
52         me.TR(me);
53                 me.TDempty(me, 0.2);
54                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
55                         me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_", panelname, "_bg_color_team"))));
56                                 e.addValue(e, "Default", "");
57                                 e.addValue(e, "Disable", "0");
58                                 for(i = 1; i <= 10; ++i)
59                                         e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
60                                 e.configureXonoticTextSliderValues(e);
61         me.TR(me);
62                 me.TDempty(me, 0.2);
63                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
64                         me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_", panelname, "_bg_padding"))));
65                                 e.addValue(e, "Default", "");
66                                 for(i = 0; i <= 10; ++i)
67                                         e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
68                                 e.configureXonoticTextSliderValues(e);
69         me.TR(me);
70                 me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Weapon icons:"));
71         me.TR(me);
72                 me.TDempty(me, 0.2);
73                 me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Show weapon ID as:"));
74                         me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_weaponicons_number", "0", "None"));
75                         me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_weaponicons_number", "1", "Number"));
76                         me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_weaponicons_number", "2", "Bind"));
77         me.TR(me);
78                 me.TDempty(me, 0.2);
79                 me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_weaponicons_accuracy", "Show Accuracy"));
80                 me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "hud_weaponicons_ammo", "Show Ammo"));
81         me.TR(me);
82                 me.TDempty(me, 0.2);
83                 me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Ammo bar alpha:"));
84                         me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_weaponicons_ammo_alpha"));
85                         setDependent(e, "hud_weaponicons_ammo", 1, 1);
86         me.TR(me);
87                 me.TDempty(me, 0.2);
88                 me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Ammo bar color:"));
89                 me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_weaponicons_ammo_color"));
90         //me.gotoRC(me, me.rows - 1, 0);
91                 //me.TD(me, 1, me.columns, e = makeXonoticCommandButton("Exit Setup", '0 0 0', "_hud_configure 0", 1));
92 }
93 #endif