}
-void raptor_bombdrop();
+void raptor_bombdrop(entity this);
METHOD(RaptorBomb, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
bool isPlayer = IS_PLAYER(actor);
entity player = isPlayer ? actor : actor.owner;
entity veh = player.vehicle;
if (fire & 2)
if (!isPlayer || weapon_prepareattack(thiswep, player, weaponentity, true, autocvar_g_vehicle_raptor_bombs_refire)) {
- if (veh) setself(veh);
- raptor_bombdrop();
+ entity e = (veh) ? veh : player;
+ raptor_bombdrop(e);
weapon_thinkf(player, weaponentity, WFRAME_FIRE2, 0, w_ready);
}
}
-void raptor_flare_think();
+void raptor_flare_think(entity this);
void raptor_flare_damage(entity this, entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force);
-void raptor_flare_touch();
+void raptor_flare_touch(entity this);
METHOD(RaptorFlare, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
bool isPlayer = IS_PLAYER(actor);
_flare.movetype = MOVETYPE_TOSS;
_flare.gravity = 0.15;
_flare.velocity = 0.25 * actor.velocity + (v_forward + randomvec() * 0.25)* -500;
- _flare.think = raptor_flare_think;
+ setthink(_flare, raptor_flare_think);
_flare.nextthink = time;
_flare.owner = veh ? veh : player;
_flare.solid = SOLID_CORPSE;
_flare.event_damage = raptor_flare_damage;
_flare.health = 20;
_flare.tur_impacttime = time + autocvar_g_vehicle_raptor_flare_lifetime;
- _flare.touch = raptor_flare_touch;
+ settouch(_flare, raptor_flare_touch);
}
weapon_thinkf(player, weaponentity, WFRAME_FIRE2, 0, w_ready);
}
}
-void raptor_bomblet_boom()
-{SELFPARAM();
+void raptor_bomblet_boom(entity this)
+{
RadiusDamage (self, self.realowner, autocvar_g_vehicle_raptor_bomblet_damage,
autocvar_g_vehicle_raptor_bomblet_edgedamage,
autocvar_g_vehicle_raptor_bomblet_radius, world, world,
remove(self);
}
-void raptor_bomblet_touch()
-{SELFPARAM();
+void raptor_bomblet_touch(entity this)
+{
if(other == self.owner)
return;
- PROJECTILE_TOUCH;
- self.think = raptor_bomblet_boom;
+ PROJECTILE_TOUCH(this);
+ setthink(self, raptor_bomblet_boom);
self.nextthink = time + random() * autocvar_g_vehicle_raptor_bomblet_explode_delay;
}
-void raptor_bomb_burst()
-{SELFPARAM();
+void raptor_bomb_burst(entity this)
+{
if(self.cnt > time)
if(autocvar_g_vehicle_raptor_bomblet_alt)
{
setorigin(bomblet, self.origin);
bomblet.movetype = MOVETYPE_TOSS;
- bomblet.touch = raptor_bomblet_touch;
- bomblet.think = raptor_bomblet_boom;
+ settouch(bomblet, raptor_bomblet_touch);
+ setthink(bomblet, raptor_bomblet_boom);
bomblet.nextthink = time + 5;
bomblet.owner = self.owner;
bomblet.realowner = self.realowner;
remove(self);
}
-void raptor_bombdrop()
-{SELFPARAM();
+void raptor_bombdrop(entity this)
+{
entity bomb_1, bomb_2;
bomb_1 = spawn();
bomb_2 = spawn();
- vector org = gettaginfo(self, gettagindex(self, "bombmount_left"));
+ vector org = gettaginfo(this, gettagindex(this, "bombmount_left"));
setorigin(bomb_1, org);
- org = gettaginfo(self, gettagindex(self, "bombmount_right"));
+ org = gettaginfo(this, gettagindex(this, "bombmount_right"));
setorigin(bomb_2, org);
bomb_1.movetype = bomb_2.movetype = MOVETYPE_BOUNCE;
- bomb_1.velocity = bomb_2.velocity = self.velocity;
- bomb_1.touch = bomb_2.touch = raptor_bomb_burst;
- bomb_1.think = bomb_2.think = raptor_bomb_burst;
+ bomb_1.velocity = bomb_2.velocity = this.velocity;
+ settouch(bomb_1, raptor_bomb_burst);
+ settouch(bomb_2, raptor_bomb_burst);
+ setthink(bomb_1, raptor_bomb_burst);
+ setthink(bomb_2, raptor_bomb_burst);
bomb_1.cnt = bomb_2.cnt = time + 10;
if(autocvar_g_vehicle_raptor_bomblet_alt)
else
bomb_1.nextthink = bomb_2.nextthink = time + autocvar_g_vehicle_raptor_bomblet_time;
- bomb_1.owner = bomb_2.owner = self;
- bomb_1.realowner = bomb_2.realowner = self.owner;
+ bomb_1.owner = bomb_2.owner = this;
+ bomb_1.realowner = bomb_2.realowner = this.owner;
bomb_1.solid = bomb_2.solid = SOLID_BBOX;
bomb_1.gravity = bomb_2.gravity = 1;
CSQCProjectile(bomb_2, true, PROJECTILE_RAPTORBOMB, true);
}
-void raptor_flare_touch()
-{SELFPARAM();
- remove(self);
+void raptor_flare_touch(entity this)
+{
+ remove(this);
}
void raptor_flare_damage(entity this, entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force)
remove(this);
}
-void raptor_flare_think()
-{SELFPARAM();
+void raptor_flare_think(entity this)
+{
self.nextthink = time + 0.1;
entity _missile = findchainentity(enemy, self.owner);
while(_missile)
}
void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang)
-{SELFPARAM();
- entity sfrag;
-
- sfrag = spawn();
+{
+ entity sfrag = spawn();
setmodel(sfrag, MDL_VEH_RAPTOR_CB_FRAGMENT);
setorigin(sfrag, _org);
sfrag.move_origin = sfrag.origin = _org;
sfrag.move_velocity = _vel;
sfrag.move_avelocity = prandomvec() * vlen(sfrag.move_velocity);
- sfrag.angles = self.move_angles = _ang;
+ sfrag.angles = sfrag.move_angles = _ang;
sfrag.move_time = time;
sfrag.damageforcescale = 4;