diff options
author | QAston <none@none> | 2009-02-14 15:56:04 +0100 |
---|---|---|
committer | QAston <none@none> | 2009-02-14 15:56:04 +0100 |
commit | 14d85a183e2bf1fef602e6377510e9fc05ac9107 (patch) | |
tree | 0aa17b9f8fa292f8396f227308799e8188531a97 /src/game/GameObject.cpp | |
parent | f506fde01e84d2a1aeb7fbabe051673479a5afb6 (diff) |
*Make range check dependent from target.
--HG--
branch : trunk
Diffstat (limited to 'src/game/GameObject.cpp')
-rw-r--r-- | src/game/GameObject.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index 64d604a04fc..e22bd7264ab 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -826,7 +826,20 @@ void GameObject::TriggeringLinkedGameObject( uint32 trapEntry, Unit* target) if(!trapSpell) // checked at load already return; - float range = GetSpellMaxRange(sSpellRangeStore.LookupEntry(trapSpell->rangeIndex)); + float range; + SpellRangeEntry const * srentry = sSpellRangeStore.LookupEntry(trapSpell->rangeIndex); + //get owner to check hostility of GameObject + if (GetSpellMaxRangeForHostile(srentry) == GetSpellMaxRangeForHostile(srentry)) + range = GetSpellMaxRangeForHostile(srentry); + else + { + Unit * owner=GetOwner(); + if (owner) + range = 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; |