1 #ifndef DIALOG_SETTINGS_GAME_HUD_H
2 #define DIALOG_SETTINGS_GAME_HUD_H
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());
19 void HUDSetup_Check_Gamestatus(entity me, entity btn)
21 if(!(gamestatus & (GAME_CONNECTED | GAME_ISSERVER))) // we're not in a match, ask the player if they want to start one anyway
23 DialogOpenButton_Click(me, main.hudconfirmDialog);
25 else // already in a match, lets just cut to the point and open up the hud editor directly
27 HUDSetup_Start(me, btn);
30 void XonoticGameHUDSettingsTab_showNotify(entity me)
34 entity makeXonoticGameHUDSettingsTab()
37 me = NEW(XonoticGameHUDSettingsTab);
38 me.configureDialog(me);
42 void XonoticGameHUDSettingsTab_fill(entity me)
47 // threshold: hud_damage_pain_threshold_lower_health
50 //me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
52 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Scoreboard")));
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"));
57 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Fading speed:")));
58 me.TD(me, 1, 2, e = makeXonoticScoreboardFadeTimeSlider());
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");
66 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_respawntime_decimals", _("Show decimals in respawn countdown")));
68 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_accuracy", _("Show accuracy underneath scoreboard")));
72 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Waypoints")));
74 me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_hidewaypoints", _("Display waypoint markers for objectives on the map")));
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);
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);
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);
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);
103 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Damage")));
105 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Overlay:")));
106 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
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);
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);
120 me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
121 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Player Names")));
123 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_shownames", _("Show names above players")));
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);
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);
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);
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);
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);
161 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "hud_shownames_status", _("Display health and armor")));
162 setDependent(e, "hud_shownames", 1, 1);
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"));
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