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