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