float CSQCProjectile_SendEntity(entity to, float sf)
{
float ft, fr;
- float s;
- // note: flag 0x10 = no trail please
- sf = sf & 0x1F;
+ // note: flag 0x08 = no trail please (teleport bit)
+ sf = sf & 0x0F;
if(self.csqcprojectile_clientanimate)
sf |= 0x80; // client animated, not interpolated
if(self.flags & FL_ONGROUND)
sf |= 0x40;
- if(self.fade_time != 0 && self.fade_rate != 0)
+ if(self.fade_time != 0 || self.fade_rate != 0)
{
ft = (self.fade_time - time) / sys_frametime;
fr = (1 / self.fade_rate) / sys_frametime;
sf |= 0x20;
}
- // HACK: subflags for sendflags = 0x80
-
- s = 0;
-
- if (self.movetype == MOVETYPE_BOUNCEMISSILE || self.movetype == MOVETYPE_BOUNCE)
- s |= 1;
+ if(self.gravity != 0)
+ sf |= 0x10;
WriteByte(MSG_ENTITY, ENT_CLIENT_PROJECTILE);
WriteByte(MSG_ENTITY, sf);
WriteCoord(MSG_ENTITY, self.velocity_x);
WriteCoord(MSG_ENTITY, self.velocity_y);
WriteCoord(MSG_ENTITY, self.velocity_z);
- WriteCoord(MSG_ENTITY, self.gravity);
-
- WriteByte(MSG_ENTITY, s);
-
- if (s & 1)
- {
- WriteCoord(MSG_ENTITY, self.bouncefactor);
- WriteCoord(MSG_ENTITY, self.bouncestop);
- }
+ if(sf & 0x10)
+ WriteCoord(MSG_ENTITY, self.gravity);
}
if(sf & 0x20)
if(e.SendEntity == CSQCProjectile_SendEntity)
{
// send new origin data
- e.SendFlags |= 1;
+ e.SendFlags |= 0x01;
}
}
{
if(e.SendEntity == CSQCProjectile_SendEntity)
{
- // send new origin data and mark as teleported
- e.SendFlags |= 0x11;
- }
-}
-
-.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;
+ // send new origin data
+ e.SendFlags |= 0x01;
+ // mark as teleported
+ e.SendFlags |= 0x08;
}
}