Core: Minor optimization in AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck
This commit is contained in:
@@ -90,14 +90,14 @@ namespace Trinity
|
||||
void Visit(PlayerMapType &);
|
||||
};
|
||||
|
||||
struct AIRelocationNotifier
|
||||
{
|
||||
struct AIRelocationNotifier
|
||||
{
|
||||
Unit &i_unit;
|
||||
bool isCreature;
|
||||
explicit AIRelocationNotifier(Unit &unit) : i_unit(unit), isCreature(unit.GetTypeId() == TYPEID_UNIT) {}
|
||||
template<class T> void Visit(GridRefManager<T> &) {}
|
||||
void Visit(CreatureMapType &);
|
||||
};
|
||||
};
|
||||
|
||||
struct GridUpdater
|
||||
{
|
||||
@@ -824,20 +824,19 @@ namespace Trinity
|
||||
class AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck
|
||||
{
|
||||
public:
|
||||
AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range)
|
||||
: i_obj(obj), i_funit(funit), i_range(range) {}
|
||||
AnyUnfriendlyAttackableVisibleUnitInObjectRangeCheck(Unit const* funit, float range)
|
||||
: i_funit(funit), i_range(range) {}
|
||||
|
||||
bool operator()(Unit* u)
|
||||
bool operator()(const Unit* u)
|
||||
{
|
||||
return u->isAlive()
|
||||
&& i_obj->IsWithinDistInMap(u, i_range)
|
||||
&& i_funit->IsWithinDistInMap(u, i_range)
|
||||
&& !i_funit->IsFriendlyTo(u)
|
||||
&& i_funit->canAttack(u)
|
||||
&& u->GetCreatureType() != CREATURE_TYPE_CRITTER
|
||||
&& i_funit->canSeeOrDetect(u);
|
||||
}
|
||||
private:
|
||||
WorldObject const* i_obj;
|
||||
Unit const* i_funit;
|
||||
float i_range;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user