1 #include "dialog_settings_game_hud.qh"
3 #include "../item/modalcontroller.qh"
4 #include "mainwindow.qh"
5 #include "textlabel.qh"
7 #include "slider_sbfadetime.qh"
11 void HUDSetup_Check_Gamestatus(entity me, entity btn)
13 if(!(gamestatus & (GAME_CONNECTED | GAME_ISSERVER))) // we're not in a match, ask the player if they want to start one anyway
15 DialogOpenButton_Click(me, main.hudconfirmDialog);
17 else // already in a match, lets just cut to the point and open up the hud editor directly
19 HUDSetup_Start(me, btn);
22 void XonoticGameHUDSettingsTab_showNotify(entity me)
26 entity makeXonoticGameHUDSettingsTab()
29 me = NEW(XonoticGameHUDSettingsTab);
30 me.configureDialog(me);
34 void XonoticGameHUDSettingsTab_fill(entity me)
39 // threshold: hud_damage_pain_threshold_lower_health
43 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Scoreboard")));
45 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Alpha:")));
46 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "scoreboard_alpha_bg"));
48 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Fading speed:")));
49 me.TD(me, 1, 2, e = makeXonoticScoreboardFadeTimeSlider());
51 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Side padding:")));
52 me.TD(me, 1, 2, e = makeXonoticSlider(0.05, 0.3, 0.01, "scoreboard_offset_left"));
53 makeMulti(e, "scoreboard_offset_right");
57 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_respawntime_decimals", _("Show decimals in respawn countdown")));
59 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "scoreboard_accuracy", _("Show accuracy underneath scoreboard")));
63 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Waypoints")));
65 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1, "cl_hidewaypoints", _("Display waypoint markers for objectives on the map"),
66 _("Show various gametype specific waypoints")));
69 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
70 setDependent(e, "cl_hidewaypoints", 0, 0);
71 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.1, 1, 0.05, "g_waypointsprite_alpha",
72 _("Control transparency of the waypoints")));
73 setDependent(e, "cl_hidewaypoints", 0, 0);
76 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Fontsize:")));
77 setDependent(e, "cl_hidewaypoints", 0, 0);
78 me.TD(me, 1, 2, e = makeXonoticSlider(5, 16, 1, "g_waypointsprite_fontsize"));
79 setDependent(e, "cl_hidewaypoints", 0, 0);
82 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Edge offset:")));
83 setDependent(e, "cl_hidewaypoints", 0, 0);
84 me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 0.3, 0.01, "g_waypointsprite_edgeoffset_bottom", "-"));
85 makeMulti(e, "g_waypointsprite_edgeoffset_top g_waypointsprite_edgeoffset_left g_waypointsprite_edgeoffset_right");
86 setDependent(e, "cl_hidewaypoints", 0, 0);
91 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.25, 1, "g_waypointsprite_crosshairfadealpha", _("Fade when near the crosshair")));
92 setDependent(e, "cl_hidewaypoints", 0, 0);
96 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Damage")));
98 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Overlay:")));
99 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
101 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Factor:")));
102 setDependent(e, "hud_damage", 0.001, 100);
103 me.TD(me, 1, 2, e = makeXonoticSlider(0.025, 0.1, 0.025, "hud_damage_factor"));
104 setDependent(e, "hud_damage", 0.001, 100);
106 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Fade rate:")));
107 setDependent(e, "hud_damage", 0.001, 100);
108 me.TD(me, 1, 2, e = makeXonoticSlider(0.25, 1, 0.05, "hud_damage_fade_rate"));
109 setDependent(e, "hud_damage", 0.001, 100);
113 me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
114 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Player Names")));
116 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_shownames", _("Show names above players")));
120 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
121 setDependent(e, "hud_shownames", 1, 1);
122 me.TD(me, 1, 2, e = makeXonoticSlider(0.1, 1, 0.05, "hud_shownames_alpha"));
123 setDependent(e, "hud_shownames", 1, 1);
126 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Fontsize:")));
127 setDependent(e, "hud_shownames", 1, 1);
128 me.TD(me, 1, 2, e = makeXonoticSlider(5, 16, 1, "hud_shownames_fontsize"));
129 setDependent(e, "hud_shownames", 1, 1);
132 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Max distance:")));
133 setDependent(e, "hud_shownames", 1, 1);
134 me.TD(me, 1, 2, e = makeXonoticSlider(2000, 10000, 500, "hud_shownames_maxdistance"));
135 setDependent(e, "hud_shownames", 1, 1);
138 me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Decolorize:")));
139 setDependent(e, "hud_shownames", 1, 1);
140 me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_shownames_decolorize"));
141 e.addValue(e, _("Never"), "0");
142 e.addValue(e, _("Teamplay"), "1");
143 e.addValue(e, _("Always"), "2");
144 e.configureXonoticTextSliderValues(e);
145 setDependent(e, "hud_shownames", 1, 1);
150 me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(25, 0, "hud_shownames_crosshairdistance", _("Only when near crosshair")));
151 setDependent(e, "hud_shownames", 1, 1);
154 me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "hud_shownames_status", _("Display health and armor")));
155 setDependent(e, "hud_shownames", 1, 1);
159 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Damage overlay:")));
160 me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
162 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "hud_dynamic_follow", _("Dynamic HUD"),
163 _("HUD moves around following player's movement")));
165 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_dynamic_shake", _("Shake the HUD when hurt")));
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