aboutsummaryrefslogtreecommitdiff
path: root/src/game/GameObject.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-02-14 15:56:04 +0100
committerQAston <none@none>2009-02-14 15:56:04 +0100
commit14d85a183e2bf1fef602e6377510e9fc05ac9107 (patch)
tree0aa17b9f8fa292f8396f227308799e8188531a97 /src/game/GameObject.cpp
parentf506fde01e84d2a1aeb7fbabe051673479a5afb6 (diff)
*Make range check dependent from target.
--HG-- branch : trunk
Diffstat (limited to 'src/game/GameObject.cpp')
-rw-r--r--src/game/GameObject.cpp15
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;