]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/master' into terencehill/maximized_radar
authorSamual <samual@xonotic.org>
Fri, 14 Oct 2011 18:12:44 +0000 (14:12 -0400)
committerSamual <samual@xonotic.org>
Fri, 14 Oct 2011 18:12:44 +0000 (14:12 -0400)
defaultXonotic.cfg
keybinds.txt
qcsrc/client/Main.qc
qcsrc/client/autocvars.qh
qcsrc/client/hud.qc
qcsrc/client/hud.qh
qcsrc/client/teamradar.qc

index 916c68983ac6276b36addc7ad7b91544788c9fcf..55f267b341227692dbda2ba925ae1d8d50d552e6 100644 (file)
@@ -1052,6 +1052,7 @@ bind t messagemode
 bind y messagemode2
 bind z messagemode2
 bind u "+con_chat_maximize"
+bind m +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,11 @@ 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_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"
+alias +hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 1"
+alias -hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized 0"
+alias hud_panel_radar_maximized "cl_cmd hud_panel_radar_maximized"
 
 seta hud_panel_score_rankings 0 "show rankings: 1 always show my own score; 2 pure rankings"
 
index ca1f9b37e074d6d8ad824987262002cffda23830..2df89afae0e9f0ecf8b5dd4cdc6a737071a65a80 100644 (file)
@@ -33,6 +33,7 @@
 "togglezoom"                            "toggle zoom"
 "+showscores"                           "show scores"
 "screenshot"                            "screen shot"
+"+hud_panel_radar_maximized"            "maximize radar"
 ""                                      ""
 ""                                      "Communicate"
 "messagemode"                           "public chat"
index 6f116d90221d26e0a6e014a547582678b8fd6f00..9aa81be98e0ccf5b555705bfaf10d1761a0a18bd 100644 (file)
@@ -507,6 +507,13 @@ void GameCommand(string msg)
        if(cmd == "mv_download") {
                Cmd_MapVote_MapDownload(argc);
        }
+       else if(cmd == "hud_panel_radar_maximized")
+       {
+               if(argc == 1)
+                       hud_panel_radar_maximized = !hud_panel_radar_maximized;
+               else
+                       hud_panel_radar_maximized = (stof(argv(1)) != 0);
+       }
        else if(cmd == "settemp") {
                cvar_clientsettemp(argv(1), argv(2));
        }
index 7451ee7c300a13b54d9f0bb56f1898798434d23e..7259761c204406119b377876e73bd7377c6db012 100644 (file)
@@ -274,6 +274,8 @@ 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_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 7f7d6e079aa5e3051d0beba86fbfc8fe0120d863..d223181c313767a7f47c2184f1d0bcbd740a6bcb 100644 (file)
@@ -2385,14 +2385,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 (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 (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;
@@ -3895,6 +3921,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;
@@ -4920,15 +4948,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(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..2491d5ca38a7f656fc55319981070771b3124b9e 100644 (file)
@@ -3,6 +3,9 @@ float log(float f);
 float panel_order[HUD_PANEL_NUM];
 string hud_panelorder_prev;
 
+float hud_draw_maximized;
+float hud_panel_radar_maximized;
+
 vector mousepos;
 vector panel_click_distance; // mouse cursor distance from the top left corner of the panel (saved only upon a click)
 vector panel_click_resizeorigin; // coordinates for opposite point when resizing
index dd1952a5c2f36841ba383e026e4b266d63b2b111..28c992b4d4430d0af87048549ec4be504e19e409 100644 (file)
@@ -177,6 +177,11 @@ void teamradar_loadcvars()
 {
        v_flipped = autocvar_v_flipped;
        hud_panel_radar_scale = autocvar_hud_panel_radar_scale;
+       if (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;