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
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;
+ // send new origin data
+ e.SendFlags |= 0x01;
+ // mark as teleported
+ e.SendFlags |= 0x08;
}
}