From 2a053cd761ae76c65c0d9374eea72aec13101b46 Mon Sep 17 00:00:00 2001
From: terencehill <piuntn@gmail.com>
Date: Sun, 11 Sep 2011 18:35:19 +0200
Subject: [PATCH] hud_panel_radar_maximized to show the radar centered and
 bigger (customizable scale and size); toggleable by the default key m

---
 defaultXonotic.cfg        |  4 ++++
 keybinds.txt              |  1 +
 qcsrc/client/autocvars.qh |  3 +++
 qcsrc/client/hud.qc       | 19 +++++++++++++++++++
 qcsrc/client/teamradar.qc |  5 +++++
 5 files changed, 32 insertions(+)

diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg
index 29bf1e0b7c..47d610e615 100644
--- a/defaultXonotic.cfg
+++ b/defaultXonotic.cfg
@@ -1053,6 +1053,7 @@ bind t messagemode
 bind y messagemode2
 bind z messagemode2
 bind u "+con_chat_maximize"
+bind m "toggle hud_panel_radar_maximized"
 bind i +show_info
 bind PAUSE pause
 bind F10 quit
@@ -1468,6 +1469,9 @@ seta hud_panel_radar_scale 4096 "distance you can see on the team radar"
 seta hud_panel_radar_rotation 0	"rotation mode: you set what points up. 0 = player, 1 = west, 2 = south, 3 = east, 4 = north"
 seta hud_panel_radar_zoommode 0	"zoom mode: 0 = zoomed by default, 1 = zoomed when +zoom, 2 = always zoomed, 3 = always zoomed out"
 alias hud_panel_radar_rotate "toggle hud_panel_radar_rotation 0 1 2 3 4"
+seta hud_panel_radar_maximized;
+seta hud_panel_radar_maximized_scale "8192" "distance you can see on the radar when maximized"
+seta hud_panel_radar_maximized_size "0.5 0.5" "size of the radar when maximized"
 
 seta hud_panel_score_rankings 0 "show rankings: 1 always show my own score; 2 pure rankings"
 
diff --git a/keybinds.txt b/keybinds.txt
index ca1f9b37e0..63311277e1 100644
--- a/keybinds.txt
+++ b/keybinds.txt
@@ -33,6 +33,7 @@
 "togglezoom"                            "toggle zoom"
 "+showscores"                           "show scores"
 "screenshot"                            "screen shot"
+"toggle hud_panel_radar_maximized"      "maximize/minimize radar"
 ""                                      ""
 ""                                      "Communicate"
 "messagemode"                           "public chat"
diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh
index bf425fc477..086594b9da 100644
--- a/qcsrc/client/autocvars.qh
+++ b/qcsrc/client/autocvars.qh
@@ -273,6 +273,9 @@ float autocvar_hud_panel_pressedkeys_aspect;
 float autocvar_hud_panel_racetimer;
 float autocvar_hud_panel_radar;
 float autocvar_hud_panel_radar_foreground_alpha;
+float autocvar_hud_panel_radar_maximized;
+float autocvar_hud_panel_radar_maximized_scale;
+vector autocvar_hud_panel_radar_maximized_size;
 float autocvar_hud_panel_radar_rotation;
 float autocvar_hud_panel_radar_scale;
 float autocvar_hud_panel_radar_zoommode;
diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc
index 92bbc52231..78c30edc63 100644
--- a/qcsrc/client/hud.qc
+++ b/qcsrc/client/hud.qc
@@ -2310,6 +2310,25 @@ void HUD_Radar(void)
 
 	HUD_Panel_UpdateCvars(radar);
 	HUD_Panel_ApplyFadeAlpha();
+
+	if (autocvar_hud_panel_radar_maximized && !autocvar__hud_configure)
+	{
+		panel_size = autocvar_hud_panel_radar_maximized_size;
+		panel_size_x = bound(0.2, panel_size_x, 1) * vid_conwidth;
+		panel_size_y = bound(0.2, panel_size_y, 1) * vid_conheight;
+		panel_pos_x = (vid_conwidth - panel_size_x) / 2;
+		panel_pos_y = (vid_conheight - panel_size_y) / 2;
+		if(panel_bg == "0") // force a border when maximized
+		{
+			if(precache_pic(panel_bg) == "") {
+				panel_bg = strcat(hud_skin_path, "/border_default");
+				if(precache_pic(panel_bg) == "") {
+					panel_bg = "gfx/hud/default/border_default";
+				}
+			}
+		}
+	}
+
 	vector pos, mySize;
 	pos = panel_pos;
 	mySize = panel_size;
diff --git a/qcsrc/client/teamradar.qc b/qcsrc/client/teamradar.qc
index 852b360924..f89c9f8a01 100644
--- a/qcsrc/client/teamradar.qc
+++ b/qcsrc/client/teamradar.qc
@@ -177,6 +177,11 @@ void teamradar_loadcvars()
 {
 	v_flipped = autocvar_v_flipped;
 	hud_panel_radar_scale = autocvar_hud_panel_radar_scale;
+	if (autocvar_hud_panel_radar_maximized && !autocvar__hud_configure)
+	{
+		if (autocvar_hud_panel_radar_maximized_scale > 0)
+			hud_panel_radar_scale = autocvar_hud_panel_radar_maximized_scale;
+	}
 	hud_panel_radar_foreground_alpha = autocvar_hud_panel_radar_foreground_alpha * panel_fg_alpha;
 	hud_panel_radar_rotation = autocvar_hud_panel_radar_rotation;
 	hud_panel_radar_zoommode = autocvar_hud_panel_radar_zoommode;
-- 
2.39.5