]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/dialog_hudpanel_compass.qc
Add compass panel, somewhat a CGaz compass clone
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_hudpanel_compass.qc
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_compass.qc b/qcsrc/menu/xonotic/dialog_hudpanel_compass.qc
new file mode 100644 (file)
index 0000000..d4500db
--- /dev/null
@@ -0,0 +1,107 @@
+#include "dialog_hudpanel_compass.qh"
+
+#include "colorpicker_string.qh"
+#include "button.qh"
+#include "slider.qh"
+#include "textlabel.qh"
+#include "textslider.qh"
+
+void Compass_CenterPanel(entity btn, entity me)
+{
+    vector size = stov(str_cvar("hud_panel_compass_size"));
+    vector pos = stov(str_cvar("hud_panel_compass_pos"));
+    pos.x = 0.5 - size.x / 2;
+    cvar_set("hud_panel_compass_pos", strcat(ftos(pos.x), " ", ftos(pos.y)));
+}
+
+void Compass_ColorReset(entity btn, entity me)
+{
+    cvar_set("hud_panel_compass_north_color", cvar_defstring("hud_panel_compass_north_color"));
+    cvar_set("hud_panel_compass_east_color", cvar_defstring("hud_panel_compass_east_color"));
+    cvar_set("hud_panel_compass_south_color", cvar_defstring("hud_panel_compass_south_color"));
+    cvar_set("hud_panel_compass_west_color", cvar_defstring("hud_panel_compass_west_color"));
+    cvar_set("hud_panel_compass_arrow_color", cvar_defstring("hud_panel_compass_arrow_color"));
+    cvar_set("hud_panel_compass_arrow_snap_color", cvar_defstring("hud_panel_compass_arrow_snap_color"));
+    cvar_set("hud_panel_compass_line_color", cvar_defstring("hud_panel_compass_line_color"));
+}
+
+void XonoticHUDCompassDialog_fill(entity me)
+{
+    entity e;
+    string panelname = "compass";
+
+    me.TR(me);
+        me.TD(me, 1, 4, e = makeXonoticTextSlider("hud_panel_compass"));
+            e.addValue(e, _("Disable"), "0");
+            e.addValue(e, _("Enable"), "1");
+            e.addValue(e, _("Enable even observing"), "2");
+            e.addValue(e, _("Enable only in Race/CTS"), "3");
+            e.configureXonoticTextSliderValues(e);
+
+    dialog_hudpanel_main_settings(me, panelname);
+    me.TR(me);
+
+        me.TD(me, 1, 1.9, e = makeXonoticButton(_("Center panel"), '0 0 0'));
+            e.onClick = Compass_CenterPanel;
+            e.onClickEntity = me;
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticButton(_("Reset colors"), '0 0 0'));
+            e.onClick = Compass_ColorReset;
+            e.onClickEntity = me;
+    me.TR(me);
+
+        me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("North:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("South:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("West:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("East:")));
+    me.TR(me);
+        me.TD(me, 2, 0.9, e = makeXonoticColorpickerString("hud_panel_compass_north_color", "hud_panel_compass_north_color"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 2, 0.9, e = makeXonoticColorpickerString("hud_panel_compass_south_color", "hud_panel_compass_south_color"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 2, 0.9, e = makeXonoticColorpickerString("hud_panel_compass_west_color", "hud_panel_compass_west_color"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 2, 0.9, e = makeXonoticColorpickerString("hud_panel_compass_east_color", "hud_panel_compass_east_color"));
+    me.TR(me);
+    me.TR(me);
+        me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Transparency:")));
+    me.TR(me);
+        me.TD(me, 1, 4, e = makeXonoticSlider(0, 1, 0.1, "hud_panel_compass_quarter_alpha"));
+    me.TR(me);
+
+        me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Arrow:")));
+    me.TR(me);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Normal:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Snap:")));
+    me.TR(me);
+        me.TD(me, 2, 1.9, e = makeXonoticColorpickerString("hud_panel_compass_arrow_color", "hud_panel_compass_arrow_color"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 2, 1.9, e = makeXonoticColorpickerString("hud_panel_compass_arrow_snap_color", "hud_panel_compass_arrow_snap_color"));
+    me.TR(me);
+    me.TR(me);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Transparency:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Size:")));
+    me.TR(me);
+        me.TD(me, 1, 1.9, e = makeXonoticSlider(0, 1, 0.1, "hud_panel_compass_arrow_alpha"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticSlider(0.1, 0.75, 0.05, "hud_panel_compass_arrow_size"));
+    me.TR(me);
+
+        me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("Orienting lines:")));
+    me.TR(me);
+        me.TD(me, 2, 4, e = makeXonoticColorpickerString("hud_panel_compass_line_color", "hud_panel_compass_line_color"));
+    me.TR(me);
+    me.TR(me);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Transparency:")));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticTextLabel(0, _("Size:")));
+    me.TR(me);
+        me.TD(me, 1, 1.9, e = makeXonoticSlider(0, 1, 0.1, "hud_panel_compass_line_alpha"));
+        me.TDempty(me, 0.2);
+        me.TD(me, 1, 1.9, e = makeXonoticSlider(0.1, 0.75, 0.05, "hud_panel_compass_line_size"));
+}