]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/hud/panel/chat.qc
Merge branch 'master' into z411/bai-server
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / hud / panel / chat.qc
index 448b9f408f954e2766762a28c0fff2e57ac8f478..03a63cbbd905911d5d62b161fd4c1c1d723f12e4 100644 (file)
@@ -1,6 +1,10 @@
 #include "chat.qh"
 
 #include <client/draw.qh>
+#include <common/items/inventory.qh>
+
+bool autocvar_hud_panel_itempickup = true; //LegendGuard adds a bool to enable/disable item pickup display HUD 06-04-2021
+bool autocvar_hud_panel_itempickup_timer = true;
 
 // Chat (#12)
 
@@ -157,6 +161,7 @@ void HUD_Chat()
        if (autocvar_con_chat != floor(mySize.y / autocvar_con_chatsize - 0.5))
                cvar_set("con_chat", ftos(floor(mySize.y / autocvar_con_chatsize - 0.5)));
 
+       vector chatsize = '1 1 0' * autocvar_con_chatsize;
        if(autocvar__hud_configure)
        {
                vector chatsize = '1 1 0' * autocvar_con_chatsize;
@@ -170,4 +175,43 @@ void HUD_Chat()
                        pos.y += chatsize.y;
                }
        }
+       
+       // z411 items
+       if (autocvar_hud_panel_itempickup)
+       {
+               float stat_last_pickup = STAT(LAST_PICKUP);
+               pos.y += mySize.y;
+               entity it = last_pickup_item;
+               
+               if(stat_last_pickup && stat_last_pickup > time - 3 && it) {
+                       float a, y;
+                       string str1, str2, icon;
+                       vector sz, sz2;
+                       vector pickupsize = chatsize * 1.25;
+                       vector iconsize = chatsize * 2;
+                       
+                       icon = strcat(hud_skin_path, "/", ((it.model2) ? it.model2 : it.m_icon));
+                       sz = draw_getimagesize(icon);
+                       sz2 = vec2(iconsize.y*(sz.x/sz.y), iconsize.y);
+                       str2 = ((last_pickup_times > 1) ? sprintf("%s (x%d)", it.m_name, last_pickup_times) : it.m_name);
+                       y = (iconsize.y - pickupsize.y) / 2;
+                       
+                       if(time < stat_last_pickup + 3 - 0.5)
+                               a = 1;
+                       else
+                               a = (stat_last_pickup + 3 - time) / 0.5;
+                       
+                       if(autocvar_hud_panel_itempickup_timer) {
+                               if(spectatee_status || !(serverflags & SERVERFLAG_FORBID_PICKUPTIMER)) {
+                                       str1 = seconds_tostring(last_pickup_timer);
+                                       drawstring(pos + eY * y, str1, pickupsize, '1 1 1', a, DRAWFLAG_NORMAL);
+                                       pos.x += stringwidth(str1, false, pickupsize) + pickupsize.x * 0.25;
+                               }
+                       }
+                       
+                       drawpic(pos, icon, sz2, '1 1 1', a, DRAWFLAG_NORMAL);
+                       pos.x += sz2.x + pickupsize.x * 0.25;
+                       drawstring(pos + eY * y, str2, pickupsize, '1 1 1', a, DRAWFLAG_NORMAL);
+               }
+       }
 }