// Begin: Missile functions, these are general functions to be manipulated by other code
// ============================
void W_Seeker_Missile_Explode(void)
-{
+{SELFPARAM();
self.event_damage = func_null;
RadiusDamage(self, self.realowner, WEP_CVAR(seeker, missile_damage), WEP_CVAR(seeker, missile_edgedamage), WEP_CVAR(seeker, missile_radius), world, world, WEP_CVAR(seeker, missile_force), self.projectiledeathtype, other);
}
void W_Seeker_Missile_Think(void)
-{
+{SELFPARAM();
entity e;
vector desireddir, olddir, newdir, eorg;
float turnrate;
void W_Seeker_Missile_Damage(entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force)
-{
+{SELFPARAM();
if(self.health <= 0)
return;
*/
void W_Seeker_Fire_Missile(vector f_diff, entity m_target)
-{
+{SELFPARAM();
entity missile;
W_DecreaseAmmo(WEP_CVAR(seeker, missile_ammo));
// Begin: FLAC, close range attack meant for defeating rockets which are coming at you.
// ============================
void W_Seeker_Flac_Explode(void)
-{
+{SELFPARAM();
self.event_damage = func_null;
RadiusDamage(self, self.realowner, WEP_CVAR(seeker, flac_damage), WEP_CVAR(seeker, flac_edgedamage), WEP_CVAR(seeker, flac_radius), world, world, WEP_CVAR(seeker, flac_force), self.projectiledeathtype, other);
}
void W_Seeker_Fire_Flac(void)
-{
+{SELFPARAM();
entity missile;
vector f_diff;
float c;
}
void W_Seeker_Attack(void)
-{
+{SELFPARAM();
entity tracker, closest_target;
closest_target = world;
}
void W_Seeker_Vollycontroller_Think(void) // TODO: Merge this with W_Seeker_Attack
-{
+{SELFPARAM();
float c;
entity oldself,oldenemy;
self.cnt = self.cnt - 1;
}
void W_Seeker_Tracker_Think(void)
-{
+{SELFPARAM();
// commit suicide if: You die OR target dies OR you switch away from the seeker OR commit suicide if lifetime is up
if((self.realowner.deadflag != DEAD_NO) || (self.tag_target.deadflag != DEAD_NO) || (self.realowner.switchweapon != WEP_SEEKER.m_id)
|| (time > self.tag_time + WEP_CVAR(seeker, tag_tracker_lifetime)))
// Begin: Tag projectile
// ============================
void W_Seeker_Tag_Explode(void)
-{
+{SELFPARAM();
//if(other==self.realowner)
// return;
Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER.m_id | HITTYPE_BOUNCE, other.species, self);
}
void W_Seeker_Tag_Damage(entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force)
-{
+{SELFPARAM();
if(self.health <= 0)
return;
self.health = self.health - damage;
}
void W_Seeker_Tag_Touch(void)
-{
+{SELFPARAM();
vector dir;
vector org2;
entity e;
}
void W_Seeker_Fire_Tag(void)
-{
+{SELFPARAM();
entity missile;
W_DecreaseAmmo(WEP_CVAR(seeker, tag_ammo));
// ============================
bool W_Seeker(int req)
-{
+{SELFPARAM();
float ammo_amount;
switch(req)
#endif
#ifdef CSQC
bool W_Seeker(int req)
-{
+{SELFPARAM();
switch(req)
{
case WR_IMPACTEFFECT: