Sort menu classes
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_settings_game_hud.qc
1 #ifndef DIALOG_SETTINGS_GAME_HUD_H
2 #define DIALOG_SETTINGS_GAME_HUD_H
3 CLASS(XonoticGameHUDSettingsTab, XonoticTab)
4         //METHOD(XonoticGameHUDSettingsTab, toString, string(entity))
5         METHOD(XonoticGameHUDSettingsTab, fill, void(entity))
6         METHOD(XonoticGameHUDSettingsTab, showNotify, void(entity))
7         ATTRIB(XonoticGameHUDSettingsTab, title, string, _("HUD"))
8         ATTRIB(XonoticGameHUDSettingsTab, intendedWidth, float, 0.9)
9         ATTRIB(XonoticGameHUDSettingsTab, rows, float, 13)
10         ATTRIB(XonoticGameHUDSettingsTab, columns, float, 6.2)
11 ENDCLASS(XonoticGameHUDSettingsTab)
12 entity makeXonoticGameHUDSettingsTab();
13 void HUDSetup_Start(entity me, entity btn);
14 #endif
15
16 #ifdef IMPLEMENTATION
17 void HUDSetup_Check_Gamestatus(entity me, entity btn)
18 {
19         if(!(gamestatus & (GAME_CONNECTED | GAME_ISSERVER))) // we're not in a match, ask the player if they want to start one anyway
20         {
21                 DialogOpenButton_Click(me, main.hudconfirmDialog);
22         }
23         else // already in a match, lets just cut to the point and open up the hud editor directly
24         {
25                 HUDSetup_Start(me, btn);
26         }
27 }
28 void XonoticGameHUDSettingsTab_showNotify(entity me)
29 {
30         loadAllCvars(me);
31 }
32 entity makeXonoticGameHUDSettingsTab()
33 {
34         entity me;
35         me = NEW(XonoticGameHUDSettingsTab);
36         me.configureDialog(me);
37         return me;
38 }
39
40 void XonoticGameHUDSettingsTab_fill(entity me)
41 {
42         entity e;
43
44         // todo:
45         // threshold: hud_damage_pain_threshold_lower_health
46         // scoreboard_alpha*
47
48         //me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
49         me.TR(me);
50                 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Scoreboard")));
51         //me.TR(me);
52         //      me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
53         //      me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "scoreboard_alpha_bg"));
54         me.TR(me);
55                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Fading speed:")));
56                 me.TD(me, 1, 2, e = makeXonoticScoreboardFadeTimeSlider());
57         me.TR(me);
58                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Side padding:")));
59                 me.TD(me, 1, 2, e = makeXonoticSlider(0.05, 0.3, 0.01, "scoreboard_offset_left"));
60                         makeMulti(e, "scoreboard_offset_right");
61
62         me.TR(me);
63         //me.TR(me);
64                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_respawntime_decimals", _("Show decimals in respawn countdown")));
65         me.TR(me);
66                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_accuracy", _("Show accuracy underneath scoreboard")));
67
68         me.TR(me);
69         me.TR(me);
70                 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Waypoints")));
71         me.TR(me);
72                 me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_hidewaypoints", _("Display waypoint markers for objectives on the map")));
73         me.TR(me);
74                 me.TDempty(me, 0.2);
75                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
76                         setDependent(e, "cl_hidewaypoints", 0, 0);
77                 me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 1, 0.05, "g_waypointsprite_alpha"));
78                         setDependent(e, "cl_hidewaypoints", 0, 0);
79         me.TR(me);
80                 me.TDempty(me, 0.2);
81                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Fontsize:")));
82                         setDependent(e, "cl_hidewaypoints", 0, 0);
83                 me.TD(me, 1, 2, e = makeXonoticSlider(5, 16, 1, "g_waypointsprite_fontsize"));
84                         setDependent(e, "cl_hidewaypoints", 0, 0);
85         me.TR(me);
86                 me.TDempty(me, 0.2);
87                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Edge offset:")));
88                         setDependent(e, "cl_hidewaypoints", 0, 0);
89                 me.TD(me, 1, 2, e = makeXonoticSlider(0, 0.3, 0.01, "g_waypointsprite_edgeoffset_bottom"));
90                         makeMulti(e, "g_waypointsprite_edgeoffset_top g_waypointsprite_edgeoffset_left g_waypointsprite_edgeoffset_right");
91                         setDependent(e, "cl_hidewaypoints", 0, 0);
92
93         me.TR(me);
94         //me.TR(me);
95                 me.TDempty(me, 0.2);
96                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.25, 1, "g_waypointsprite_crosshairfadealpha", _("Fade when near the crosshair")));
97                         setDependent(e, "cl_hidewaypoints", 0, 0);
98
99         #if 0
100         me.TR(me);
101                 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Damage")));
102         me.TR(me);
103                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Overlay:")));
104                 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
105         me.TR(me);
106                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Factor:")));
107                         setDependent(e, "hud_damage", 0.001, 100);
108                 me.TD(me, 1, 2, e = makeXonoticSlider(0.025, 0.1, 0.025, "hud_damage_factor"));
109                         setDependent(e, "hud_damage", 0.001, 100);
110         me.TR(me);
111                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Fade rate:")));
112                         setDependent(e, "hud_damage", 0.001, 100);
113                 me.TD(me, 1, 2, e = makeXonoticSlider(0.25, 1, 0.05, "hud_damage_fade_rate"));
114                         setDependent(e, "hud_damage", 0.001, 100);
115         me.TR(me);
116         #endif
117
118         me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
119                 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Player Names")));
120         me.TR(me);
121                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_shownames", _("Show names above players")));
122
123         me.TR(me);
124                 me.TDempty(me, 0.2);
125                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
126                         setDependent(e, "hud_shownames", 1, 1);
127                 me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 1, 0.05, "hud_shownames_alpha"));
128                         setDependent(e, "hud_shownames", 1, 1);
129         me.TR(me);
130                 me.TDempty(me, 0.2);
131                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Fontsize:")));
132                         setDependent(e, "hud_shownames", 1, 1);
133                 me.TD(me, 1, 2, e = makeXonoticSlider(5, 16, 1, "hud_shownames_fontsize"));
134                         setDependent(e, "hud_shownames", 1, 1);
135         me.TR(me);
136                 me.TDempty(me, 0.2);
137                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Max distance:")));
138                         setDependent(e, "hud_shownames", 1, 1);
139                 me.TD(me, 1, 2, e = makeXonoticSlider(2000, 10000, 500, "hud_shownames_maxdistance"));
140                         setDependent(e, "hud_shownames", 1, 1);
141         me.TR(me);
142                 me.TDempty(me, 0.2);
143                 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Decolorize:")));
144                         setDependent(e, "hud_shownames", 1, 1);
145                 me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_shownames_decolorize"));
146                         e.addValue(e, _("Never"), "0");
147                         e.addValue(e, _("Teamplay"), "1");
148                         e.addValue(e, _("Always"), "2");
149                         e.configureXonoticTextSliderValues(e);
150                         setDependent(e, "hud_shownames", 1, 1);
151
152         me.TR(me);
153         //me.TR(me);
154                 me.TDempty(me, 0.2);
155                 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(25, 0, "hud_shownames_crosshairdistance", _("Only when near crosshair")));
156                         setDependent(e, "hud_shownames", 1, 1);
157         me.TR(me);
158                 me.TDempty(me, 0.2);
159                 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "hud_shownames_status", _("Display health and armor")));
160                         setDependent(e, "hud_shownames", 1, 1);
161
162         me.TR(me);
163         me.TR(me);
164                 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Damage overlay:")));
165                 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
166         me.TR(me);
167         me.TR(me);
168                 me.TDempty(me, 0.5);
169                 me.TD(me, 1, 2, e = makeXonoticButton(_("Enter HUD editor"), '0 0 0'));
170                         e.onClick = HUDSetup_Check_Gamestatus;
171                         e.onClickEntity = me;
172                 // TODO: show hud config name with text here
173 }
174 #endif