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