From 63b62d4ad051d08870550b57d33be258108b319e Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 17 Sep 2011 13:18:42 +0200 Subject: Core/Grids: Added GameObjectWorker --- src/server/game/Grids/Notifiers/GridNotifiers.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index ec93c3c5580..2ed74279224 100755 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -297,6 +297,26 @@ namespace Trinity template void Visit(GridRefManager &) {} }; + template + struct GameObjectWorker + { + GameObjectWorker(WorldObject const* searcher, Functor& func) + : _func(func), _phaseMask(searcher->GetPhaseMask()) {} + + void Visit(GameObjectMapType& m) + { + for (GameObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr) + if (itr->getSource()->InSamePhase(_phaseMask)) + _func(itr->getSource()); + } + + template void Visit(GridRefManager &) {} + + private: + Functor& _func; + uint32 _phaseMask; + }; + // Unit searchers // First accepted by Check Unit if any @@ -570,7 +590,7 @@ namespace Trinity class AnyDeadUnitSpellTargetInRangeCheck : public AnyDeadUnitObjectInRangeCheck { public: - AnyDeadUnitSpellTargetInRangeCheck(Unit const* searchObj, float range, SpellInfo const* spellInfo, SpellTargetSelectionCheckTypes check) + AnyDeadUnitSpellTargetInRangeCheck(Unit const* searchObj, float range, SpellInfo const* spellInfo, SpellTargetSelectionCheckTypes check) : AnyDeadUnitObjectInRangeCheck(searchObj, range), i_spellInfo(spellInfo), i_check(check) {} bool operator()(Player* u); bool operator()(Corpse* u); -- cgit v1.2.3