]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/weapons/csqcprojectile.qc
Merge branch 'master' into terencehill/ft_autorevive_progress
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / weapons / csqcprojectile.qc
index d426e2f610d3000c69c2b16cba9defb350adfb9f..07f6f5c6651bd1615b35761921119294ee0d8bcd 100644 (file)
@@ -1,14 +1,12 @@
 #include "csqcprojectile.qh"
 
-#include <server/defs.qh>
-#include <server/miscfunctions.qh>
-#include <common/t_items.qh>
-
-#include "../command/common.qh"
-
 #include <common/constants.qh>
 #include <common/net_linked.qh>
+#include <common/stats.qh>
+#include <common/weapons/_all.qh>
 #include <common/weapons/_all.qh>
+#include <server/command/common.qh>
+#include <server/items/items.qh>
 
 .float csqcprojectile_type;
 
@@ -42,15 +40,11 @@ bool CSQCProjectile_SendEntity(entity this, entity to, int sf)
 
        if(sf & 1)
        {
-               WriteCoord(MSG_ENTITY, this.origin.x);
-               WriteCoord(MSG_ENTITY, this.origin.y);
-               WriteCoord(MSG_ENTITY, this.origin.z);
+               WriteVector(MSG_ENTITY, this.origin);
 
                if(sf & 0x80)
                {
-                       WriteCoord(MSG_ENTITY, this.velocity.x);
-                       WriteCoord(MSG_ENTITY, this.velocity.y);
-                       WriteCoord(MSG_ENTITY, this.velocity.z);
+                       WriteVector(MSG_ENTITY, this.velocity);
                        if(sf & 0x10)
                                WriteCoord(MSG_ENTITY, this.gravity);
                }
@@ -123,6 +117,10 @@ void UpdateCSQCProjectileAfterTeleport(entity e)
        {
                // send new origin data
                e.SendFlags |= 0x01;
+               // send full data as the projectile may need resetting
+               // this is a workaround for client-side projectiles erroneously calling their SUB_Stop touch function occasionally
+               // when passing through a warpzone
+               e.SendFlags |= 2;
                // mark as teleported
                e.SendFlags |= 0x08;
        }