#ifdef IMPLEMENTATION
+REGISTER_NET_LINKED(ENT_CLIENT_BUMBLE_RAYGUN)
+
#ifdef SVQC
float autocvar_g_vehicle_bumblebee_cannon_cost;
float autocvar_g_vehicle_bumblebee_cannon_spread;
float autocvar_g_vehicle_bumblebee_cannon_force;
-float bumble_raygun_send(entity to, int sf);
+bool bumble_raygun_send(entity this, entity to, int sf);
void bumblebee_fire_cannon(entity _gun, string _tagname, entity _owner)
{
vehicles_projectile(EFFECT_BIGPLASMA_MUZZLEFLASH.eent_eff_name, SND(VEH_BUMBLEBEE_FIRE),
v, normalize(v_forward + randomvec() * autocvar_g_vehicle_bumblebee_cannon_spread) * autocvar_g_vehicle_bumblebee_cannon_speed,
autocvar_g_vehicle_bumblebee_cannon_damage, autocvar_g_vehicle_bumblebee_cannon_radius, autocvar_g_vehicle_bumblebee_cannon_force, 0,
- DEATH_VH_BUMB_GUN, PROJECTILE_BUMBLE_GUN, 0, true, true, _owner);
+ DEATH_VH_BUMB_GUN.m_id, PROJECTILE_BUMBLE_GUN, 0, true, true, _owner);
}
-float bumble_raygun_send(entity to, float sf)
-{SELFPARAM();
- WriteByte(MSG_ENTITY, ENT_CLIENT_BUMBLE_RAYGUN);
+bool bumble_raygun_send(entity this, entity to, float sf)
+{
+ WriteHeader(MSG_ENTITY, ENT_CLIENT_BUMBLE_RAYGUN);
WriteByte(MSG_ENTITY, sf);
if(sf & BRG_SETUP)
{
- WriteByte(MSG_ENTITY, num_for_edict(self.realowner));
+ WriteByte(MSG_ENTITY, etof(self.realowner));
WriteByte(MSG_ENTITY, self.realowner.team);
WriteByte(MSG_ENTITY, self.cnt);
}
#ifdef CSQC
-void bumble_raygun_draw();
+void bumble_raygun_draw(entity this);
-void bumble_raygun_read(bool bIsNew)
-{SELFPARAM();
+NET_HANDLE(ENT_CLIENT_BUMBLE_RAYGUN, bool isnew)
+{
int sf = ReadByte();
if(sf & BRG_SETUP)
self.move_origin_y = ReadCoord();
self.move_origin_z = ReadCoord();
}
+ return true;
}
-void bumble_raygun_draw()
-{SELFPARAM();
+.float bumble_raygun_nextdraw;
+void bumble_raygun_draw(entity this)
+{
float _len;
vector _dir;
vector _vtmp1, _vtmp2;
_len = vlen(self.origin - self.move_origin);
_dir = normalize(self.move_origin - self.origin);
- if(self.total_damages < time)
+ if(self.bumble_raygun_nextdraw < time)
{
- boxparticles(particleeffectnum(effects_ent[self.traileffect]), self, self.origin, self.origin + _dir * -64, _dir * -_len , _dir * -_len, 1, PARTICLES_USEALPHA);
+ boxparticles(particleeffectnum(Effects_from(self.traileffect)), self, self.origin, self.origin + _dir * -64, _dir * -_len , _dir * -_len, 1, PARTICLES_USEALPHA);
boxparticles(self.lip, self, self.move_origin, self.move_origin + _dir * -64, _dir * -200 , _dir * -200, 1, PARTICLES_USEALPHA);
- self.total_damages = time + 0.1;
+ self.bumble_raygun_nextdraw = time + 0.1;
}
float i, df, sz, al;