From 16360050c542dbabb12aac44cca421fbf3ad98d0 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 7 Mar 2013 16:39:53 +1100 Subject: [PATCH] Remove unused neutral check from target validation & remove unnecessary enemy checks in spider attack code --- qcsrc/server/monsters/lib/monsters.qc | 13 +++++-------- qcsrc/server/monsters/monster/demon.qc | 2 +- qcsrc/server/monsters/monster/spider.qc | 16 +++------------- qcsrc/server/mutators/gamemode_towerdefense.qc | 2 +- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index a9d706945..3bd719af0 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -60,7 +60,7 @@ void Monster_DropItem (string itype, string itemsize) self = oldself; } -float monster_isvalidtarget (entity targ, entity ent, float neutral) +float monster_isvalidtarget (entity targ, entity ent) { if(!targ || !ent) return FALSE; // this check should fix a crash @@ -79,9 +79,6 @@ float monster_isvalidtarget (entity targ, entity ent, float neutral) if(trace_ent != targ) return FALSE; // we can't see the enemy - if(neutral == TRUE) - return TRUE; // we come in peace! - if(targ.takedamage == DAMAGE_NO) return FALSE; // enemy can't be damaged @@ -143,7 +140,7 @@ entity FindTarget (entity ent) local entity e; for(e = world; (e = findflags(e, monster_attack, TRUE)); ) { - if(monster_isvalidtarget(e, ent, FALSE)) + if(monster_isvalidtarget(e, ent)) { return e; } @@ -158,7 +155,7 @@ void MonsterTouch () if(self.enemy != other) if not(other.flags & FL_MONSTER) - if(monster_isvalidtarget(other, self, FALSE)) + if(monster_isvalidtarget(other, self)) self.enemy = other; } @@ -389,7 +386,7 @@ void monster_use () if (self.health <= 0) return; - if(!monster_isvalidtarget(activator, self, -1)) + if(!monster_isvalidtarget(activator, self)) return; self.enemy = activator; @@ -627,7 +624,7 @@ void monsters_damage (entity inflictor, entity attacker, float damage, float dea return; if((ignore_turrets && !(attacker.turrcaps_flags & TFL_TURRCAPS_ISTURRET)) || !ignore_turrets) - if(monster_isvalidtarget(attacker, self, FALSE)) + if(monster_isvalidtarget(attacker, self)) self.enemy = attacker; self.health -= damage; diff --git a/qcsrc/server/monsters/monster/demon.qc b/qcsrc/server/monsters/monster/demon.qc index 3e9ba34f8..7f0f4bc40 100644 --- a/qcsrc/server/monsters/monster/demon.qc +++ b/qcsrc/server/monsters/monster/demon.qc @@ -44,7 +44,7 @@ void Demon_JumpTouch () float bigdmg = autocvar_g_monster_demon_attack_jump_damage * self.scale; - if (monster_isvalidtarget(other, self, FALSE)) + if (monster_isvalidtarget(other, self)) { if (vlen(self.velocity) > 300) { diff --git a/qcsrc/server/monsters/monster/spider.qc b/qcsrc/server/monsters/monster/spider.qc index a578628d0..ddd68805a 100644 --- a/qcsrc/server/monsters/monster/spider.qc +++ b/qcsrc/server/monsters/monster/spider.qc @@ -46,34 +46,24 @@ void spider_die () /** * Performe a standing attack on self.enemy. */ -void spider_attack_standing() { +void spider_attack_standing() +{ float dot = 0, bigdmg = autocvar_g_monster_spider_attack_stand_damage * self.scale; self.velocity_x = 0; self.velocity_y = 0; - - if(self.monster_owner == self.enemy) - { - self.enemy = world; - return; - } makevectors (self.angles); dot = normalize (self.enemy.origin - self.origin) * v_forward; if(dot > 0.3) - { Damage(self.enemy, self, self, bigdmg * monster_skill, DEATH_MONSTER_SPIDER, self.origin, '0 0 0'); - } - - if (!monster_isvalidtarget(self.enemy, self, FALSE)) - self.enemy = world; if(random() < 0.50) self.frame = spider_anim_attack; else self.frame = spider_anim_attack2; - self.nextthink = time + autocvar_g_monster_spider_attack_stand_delay; + self.attack_finished_single = time + autocvar_g_monster_spider_attack_stand_delay; } void spider_web_explode () diff --git a/qcsrc/server/mutators/gamemode_towerdefense.qc b/qcsrc/server/mutators/gamemode_towerdefense.qc index e75afac28..eee62194f 100644 --- a/qcsrc/server/mutators/gamemode_towerdefense.qc +++ b/qcsrc/server/mutators/gamemode_towerdefense.qc @@ -873,7 +873,7 @@ MUTATOR_HOOKFUNCTION(td_MonsterFindTarget) if(e.turrcaps_flags & TFL_TURRCAPS_ISTURRET) continue; - if(monster_isvalidtarget(e, self, FALSE)) + if(monster_isvalidtarget(e, self)) if((vlen(trace_endpos - self.origin) < 200 && e.turrcaps_flags & TFL_TURRCAPS_ISTURRET) || (vlen(trace_endpos - self.origin) < 200 && e.classname != "td_generator") || (vlen(trace_endpos - self.origin) < 500 && e.classname == "td_generator")) { self.enemy = e; -- 2.39.2