Fix %W in chat messages again...
authorterencehill <piuntn@gmail.com>
Fri, 30 Dec 2016 19:01:35 +0000 (20:01 +0100)
committerterencehill <piuntn@gmail.com>
Fri, 30 Dec 2016 19:01:35 +0000 (20:01 +0100)
qcsrc/server/miscfunctions.qc

index c36e1ed..a546a67 100644 (file)
@@ -217,6 +217,21 @@ string NearestLocation(vector p)
     return ret;
 }
 
+string AmmoNameFromWeaponentity(entity wpn)
+{
+       string ammoitems = "batteries";
+       switch((wpn.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;
+       }
+       return ammoitems;
+}
+
 string formatmessage(entity this, string msg)
 {
        float p, p1, p2;
@@ -225,21 +240,9 @@ string formatmessage(entity this, string msg)
        entity cursor_ent;
        string escape;
        string replacement;
-       string ammoitems;
        p = 0;
        n = 7;
 
-       ammoitems = "batteries";
-       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;
@@ -282,7 +285,7 @@ string formatmessage(entity this, string msg)
                        case "y": replacement = NearestLocation(cursor); break;
                        case "d": replacement = NearestLocation(this.death_origin); break;
                        case "w": replacement = ((this.(weaponentity).m_weapon == WEP_Null) ? ((this.(weaponentity).m_switchweapon == WEP_Null) ? Weapons_from(this.(weaponentity).cnt) : this.(weaponentity).m_switchweapon) : this.(weaponentity).m_weapon).m_name; break;
-                       case "W": replacement = ammoitems; break;
+                       case "W": replacement = AmmoNameFromWeaponentity(this.(weaponentity)); break;
                        case "x": replacement = ((cursor_ent.netname == "" || !cursor_ent) ? "nothing" : cursor_ent.netname); break;
                        case "s": replacement = ftos(vlen(this.velocity - this.velocity_z * '0 0 1')); break;
                        case "S": replacement = ftos(vlen(this.velocity)); break;