diff options
| author | Shauren <shauren.trinity@gmail.com> | 2017-05-13 19:37:33 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-05-13 19:37:33 +0200 |
| commit | 9299e9bde087af7e5d777d5a55a3b79d2b63c48e (patch) | |
| tree | 4d3e436ae21faf28154be8a70fd7d23c1b7692f0 /src/server/game/Entities/GameObject | |
| parent | 229c78b5a38dc58e14f4912de49437b68341452b (diff) | |
Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50790acde8928aa0f3dc4a9c096b4a8c
Diffstat (limited to 'src/server/game/Entities/GameObject')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index ffbb13b42e1..cf9209699a9 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -560,9 +560,9 @@ void GameObject::Update(uint32 diff) // Hunter trap: Search units which are unfriendly to the trap's owner Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck checker(this, owner, radius); Trinity::UnitSearcher<Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck> searcher(this, target, checker); - VisitNearbyGridObject(radius, searcher); + Cell::VisitGridObjects(this, searcher, radius); if (!target) - VisitNearbyWorldObject(radius, searcher); + Cell::VisitWorldObjects(this, searcher, radius); } else { @@ -570,7 +570,7 @@ void GameObject::Update(uint32 diff) Player* player = nullptr; Trinity::AnyPlayerInObjectRangeCheck checker(this, radius); Trinity::PlayerSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, player, checker); - VisitNearbyWorldObject(radius, searcher); + Cell::VisitWorldObjects(this, searcher, radius); target = player; } @@ -1162,17 +1162,10 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target) // search nearest linked GO GameObject* trapGO = nullptr; - { - // using original GO distance - CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY())); - Cell cell(p); - - Trinity::NearestGameObjectEntryInObjectRangeCheck go_check(*target, trapEntry, range); - Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> checker(this, trapGO, go_check); - - TypeContainerVisitor<Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck>, GridTypeMapContainer > object_checker(checker); - cell.Visit(p, object_checker, *GetMap(), *target, range); - } + // using original GO distance + Trinity::NearestGameObjectEntryInObjectRangeCheck go_check(*target, trapEntry, range); + Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> checker(this, trapGO, go_check); + Cell::VisitGridObjects(this, checker, range); // found correct GO if (trapGO) @@ -1182,15 +1175,9 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target) GameObject* GameObject::LookupFishingHoleAround(float range) { GameObject* ok = nullptr; - - CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY())); - Cell cell(p); Trinity::NearestGameObjectFishingHole u_check(*this, range); Trinity::GameObjectSearcher<Trinity::NearestGameObjectFishingHole> checker(this, ok, u_check); - - TypeContainerVisitor<Trinity::GameObjectSearcher<Trinity::NearestGameObjectFishingHole>, GridTypeMapContainer > grid_object_checker(checker); - cell.Visit(p, grid_object_checker, *GetMap(), *this, range); - + Cell::VisitGridObjects(this, checker, range); return ok; } |
