]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/csqcprojectile.qc
Merge remote-tracking branch 'origin/Mario/respawn_delays'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / csqcprojectile.qc
index 31e5b7788513b7eb180cd929c10d46bae871fc08..4d208ebda808341f778f242ba0135d7255bd29d9 100644 (file)
@@ -13,6 +13,7 @@ float CSQCProjectile_SendEntity(entity to, float sf)
        if(self.flags & FL_ONGROUND)
                sf |= 0x40;
 
+       ft = fr = 0;
        if(self.fade_time != 0 || self.fade_rate != 0)
        {
                ft = (self.fade_time - time) / sys_frametime;
@@ -51,7 +52,7 @@ float CSQCProjectile_SendEntity(entity to, float sf)
 
        if(sf & 2)
                WriteByte(MSG_ENTITY, self.csqcprojectile_type); // TODO maybe put this into sf?
-       
+
        return 1;
 }
 
@@ -68,9 +69,9 @@ void CSQCProjectile_Check(entity e)
 void CSQCProjectile(entity e, float clientanimate, float type, float docull)
 {
        Net_LinkEntity(e, docull, 0, CSQCProjectile_SendEntity);
-       
+
        e.csqcprojectile_clientanimate = clientanimate;
-       
+
        if(e.movetype == MOVETYPE_TOSS || e.movetype == MOVETYPE_BOUNCE)
        {
                if(e.gravity == 0)
@@ -79,11 +80,15 @@ void CSQCProjectile(entity e, float clientanimate, float type, float docull)
        else
                e.gravity = 0;
 
-       e.csqcprojectile_type = type;
        if(!sound_allowed(MSG_BROADCAST, e))
                type |= 0x80;
+       e.csqcprojectile_type = type;
 }
 
+// FIXME HACK
+float ItemSend(entity to, float sf);
+void ItemUpdate(entity item);
+// END HACK
 void UpdateCSQCProjectile(entity e)
 {
        if(e.SendEntity == CSQCProjectile_SendEntity)
@@ -91,6 +96,12 @@ void UpdateCSQCProjectile(entity e)
                // send new origin data
                e.SendFlags |= 0x01;
        }
+// FIXME HACK
+       else if(e.SendEntity == ItemSend)
+       {
+               ItemUpdate(e);
+       }
+// END HACK
 }
 
 void UpdateCSQCProjectileAfterTeleport(entity e)
@@ -103,25 +114,3 @@ void UpdateCSQCProjectileAfterTeleport(entity e)
                e.SendFlags |= 0x08;
        }
 }
-
-.void(void) csqcprojectile_oldthink;
-.float csqcprojectile_oldnextthink;
-
-void CSQCProjectile_Update_Think()
-{
-       UpdateCSQCProjectile(self);
-       self.think = self.csqcprojectile_oldthink;
-       self.nextthink = max(time, self.csqcprojectile_oldnextthink);
-}
-
-void UpdateCSQCProjectileNextFrame(entity e)
-{
-       if(e.SendEntity == CSQCProjectile_SendEntity)
-       if(e.think != CSQCProjectile_Update_Think)
-       {
-               e.csqcprojectile_oldthink = e.think;
-               e.csqcprojectile_oldnextthink = e.nextthink;
-               e.think = CSQCProjectile_Update_Think;
-               e.nextthink = time;
-       }
-}