diff options
-rwxr-xr-x | src/server/game/Entities/GameObject/GameObject.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 952634a8c67..0aeaf00dfa2 100755 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -911,15 +911,17 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target) if (!trapSpell) // checked at load already return; - /*** FIXME: this maybe not correct ***/ float range; SpellRangeEntry const * srentry = sSpellRangeStore.LookupEntry(trapSpell->rangeIndex); - //get owner to check hostility of GameObject - if (Unit *owner = GetOwner()) - range = (float)owner->GetSpellMaxRangeForTarget(target, srentry); - else - //if no owner assume that object is hostile to target + if (GetSpellMaxRangeForHostile(srentry) == GetSpellMaxRangeForFriend(srentry)) range = GetSpellMaxRangeForHostile(srentry); + else + // get owner to check hostility of GameObject + if (Unit *owner = GetOwner()) + range = (float)owner->GetSpellMaxRangeForTarget(target, srentry); + else + // if no owner assume that object is hostile to target + range = GetSpellMaxRangeForHostile(srentry); // search nearest linked GO GameObject* trapGO = NULL; |