]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into terencehill/maximized_radar
authorterencehill <piuntn@gmail.com>
Mon, 3 Oct 2011 19:38:06 +0000 (21:38 +0200)
committerterencehill <piuntn@gmail.com>
Mon, 3 Oct 2011 19:38:06 +0000 (21:38 +0200)
defaultXonotic.cfg
keybinds.txt
qcsrc/client/autocvars.qh
qcsrc/client/hud.qc
qcsrc/client/hud.qh
qcsrc/client/teamradar.qc

index 883f8efcea2f66ab3f01a5ab59c9c328a3c72f39..9ea422f760922646b35d59b63b9ae4e3cbbc345a 100644 (file)
@@ -1052,6 +1052,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
@@ -1437,7 +1438,7 @@ seta hud_configure_grid_alpha 0.15 "alpha for visible grid when in configure mod
 
 seta sbar_info_pos 0 "Y-axis distance from lower right corner for engine info prints"
 
-// user preference cvars (i.e. shouldn't be adjusted by a skin config) 
+// user preference cvars (i.e. shouldn't be adjusted by a skin config)
 seta hud_panel_weapons_label 1 "1 = show number of weapon, 2 = show bound key of weapon"
 seta hud_panel_weapons_complainbubble_time 1 "time that a new entry stays until it fades out"
 seta hud_panel_weapons_complainbubble_fadetime 0.25 "fade out time"
@@ -1470,6 +1471,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 0 "show the radar centered and 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"
 
index ca1f9b37e074d6d8ad824987262002cffda23830..63311277e15a03dc56f45a6b14a8ae0ab5edd284 100644 (file)
@@ -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"
index 7451ee7c300a13b54d9f0bb56f1898798434d23e..f066a9fe58c5159e865865f97f00b4e4ae769b7b 100644 (file)
@@ -274,6 +274,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;
index 3d3fe93cc41ce8ba33a5116c9cde740b1af9c9e3..05b42ed3629e095b47b54dffb9a87bb05e5df438 100644 (file)
@@ -2339,14 +2339,40 @@ void HUD_Radar(void)
 {
        if (!autocvar__hud_configure)
        {
-               if (autocvar_hud_panel_radar == 0) return;
-               if (autocvar_hud_panel_radar != 2 && !teamplay) return;
+               if (autocvar_hud_panel_radar_maximized)
+               {
+                       if (!hud_draw_maximized) return;
+               }
+               else
+               {
+                       if (autocvar_hud_panel_radar == 0) return;
+                       if (autocvar_hud_panel_radar != 2 && !teamplay) return;
+               }
        }
        else
                hud_configure_active_panel = HUD_PANEL_RADAR;
 
        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;
@@ -3847,6 +3873,8 @@ void HUD_Chat(void)
                                cvar_set("con_chatrect", "0");
                        return;
                }
+               if(autocvar__con_chat_maximized)
+                       if(!hud_draw_maximized) return;
        }
        else
                hud_configure_active_panel = HUD_PANEL_CHAT;
@@ -4872,15 +4900,17 @@ void HUD_Main (void)
                }
        }
 
+       hud_draw_maximized = 0;
        // draw panels in order specified by panel_order array
-       for(i = HUD_PANEL_NUM - 1; i >= 0; --i) {
-               if(i != HUD_PANEL_CHAT || !autocvar__con_chat_maximized) // don't draw maximized chat panel twice!
-                       HUD_DrawPanel(panel_order[i]);
-       }
+       for(i = HUD_PANEL_NUM - 1; i >= 0; --i)
+               HUD_DrawPanel(panel_order[i]);
 
-       // draw chat panel on top if it is maximized
+       hud_draw_maximized = 1; // panels that may be maximized must check this var
+       // draw maximized panels on top
+       if(autocvar_hud_panel_radar_maximized)
+               HUD_Radar();
        if(autocvar__con_chat_maximized)
-               HUD_Chat(); // HUD_DrawPanel(HUD_PANEL_CHAT);
+               HUD_Chat();
 
        if(autocvar__hud_configure)
        {
index 120db4d0c223896bf209771a52fb3eed59fa65dd..b1b54f519b6939b32a725fca1c2f41cf5a1e9aa3 100644 (file)
@@ -2,6 +2,7 @@ float log(float f);
 
 float panel_order[HUD_PANEL_NUM];
 string hud_panelorder_prev;
+float hud_draw_maximized;
 
 vector mousepos;
 vector panel_click_distance; // mouse cursor distance from the top left corner of the panel (saved only upon a click)
index 852b3609243c5961072ac75f5b217ea25733cd9c..f89c9f8a014ee6724e20334c2270d4a1876098bd 100644 (file)
@@ -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;