diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2016-11-16 04:59:43 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2016-11-16 04:59:43 -0300 |
| commit | 400a69bf9efb227e8734668f07ed2f3f2863ba47 (patch) | |
| tree | f85bbaf1726e719425735973981ea94fa04b5f79 | |
| parent | 56beec8aaf151e10a50a4451ba3b04cd94411e25 (diff) | |
Core/Gameobject: fixed sometimes not found linked trap
Closes #18256
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 3869c8be56d..dd67d99c366 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1110,25 +1110,8 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target) if (!trapSpell) // checked at load already return; - float range = float(target->GetSpellMaxRangeForTarget(GetOwner(), trapSpell)); - - // 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); - } - - // found correct GO - if (trapGO) - trapGO->CastSpell(target, trapInfo->trap.spellId); + if (GameObject* trapGO = GetLinkedTrap()) + trapGO->CastSpell(target, trapSpell->Id); } GameObject* GameObject::LookupFishingHoleAround(float range) |
