]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/miscfunctions.qc
Fix %W in chat messages
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / miscfunctions.qc
index 4b3d404bf316907a579f6d246330d9f591b257c8..39c42a55695f3e585ecf9f440fe89435d382342b 100644 (file)
@@ -11,6 +11,7 @@
 #include "weapons/selection.qh"
 #include "../common/command/_mod.qh"
 #include "../common/constants.qh"
+#include <common/net_linked.qh>
 #include "../common/deathtypes/all.qh"
 #include "../common/mapinfo.qh"
 #include "../common/notifications/all.qh"
@@ -228,15 +229,23 @@ string formatmessage(entity this, string msg)
        n = 7;
 
        ammoitems = "batteries";
-       if(this.items & ITEM_Plasma.m_itemid) ammoitems = ITEM_Plasma.m_name;
-       if(this.items & ITEM_Cells.m_itemid) ammoitems = ITEM_Cells.m_name;
-       if(this.items & ITEM_Rockets.m_itemid) ammoitems = ITEM_Rockets.m_name;
-       if(this.items & ITEM_Shells.m_itemid) ammoitems = ITEM_Shells.m_name;
+       switch((PS(this).m_weapon).ammo_field)
+       {
+               case ammo_shells:  ammoitems = ITEM_Shells.m_name;      break;
+               case ammo_nails:   ammoitems = ITEM_Bullets.m_name;     break;
+               case ammo_rockets: ammoitems = ITEM_Rockets.m_name;     break;
+               case ammo_cells:   ammoitems = ITEM_Cells.m_name;       break;
+               case ammo_plasma:  ammoitems = ITEM_Plasma.m_name;      break;
+               case ammo_fuel:    ammoitems = ITEM_JetpackFuel.m_name; break;
+       }
 
        WarpZone_crosshair_trace(this);
        cursor = trace_endpos;
        cursor_ent = trace_ent;
 
+       MUTATOR_CALLHOOK(PreFormatMessage, this, msg);
+       msg = M_ARGV(1, string);
+
        while (1) {
                if (n < 1)
                        break; // too many replacements
@@ -457,7 +466,7 @@ void GetCvars(entity this, int f)
 string playername(entity p)
 {
     string t;
-    if (teamplay && !intermission_running && IS_PLAYER(p))
+    if (teamplay && !gameover && IS_PLAYER(p))
     {
         t = Team_ColorCode(p.team);
         return strcat(t, strdecolorize(p.netname));