aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Combat/HostileRefManager.cpp
diff options
context:
space:
mode:
authorlinencloth <none@none>2010-11-13 18:04:56 +0100
committerlinencloth <none@none>2010-11-13 18:04:56 +0100
commit880ef0c398a043b60d18e750c420dd8209272cb3 (patch)
tree0a1296ba298b52630df38576a74132b6cceb56d1 /src/server/game/Combat/HostileRefManager.cpp
parentbf888285aab32ae2571002f23dd217396b2f12d8 (diff)
Core/Spells: Fix spelleffect sanctuary
- No longer removes every attacker, but updates the visibility - Using that effect won't remove attackers that can still see through the stealth of the caster based on distance - Ignores spells that were casted before or at the same time of that effect - Trigger other needed spells when casting Shadowmeld --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Combat/HostileRefManager.cpp')
-rwxr-xr-xsrc/server/game/Combat/HostileRefManager.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/Combat/HostileRefManager.cpp b/src/server/game/Combat/HostileRefManager.cpp
index 029725fa128..6af228c9117 100755
--- a/src/server/game/Combat/HostileRefManager.cpp
+++ b/src/server/game/Combat/HostileRefManager.cpp
@@ -185,3 +185,18 @@ void HostileRefManager::setOnlineOfflineState(Unit *pCreature, bool bIsOnline)
//=================================================
+void HostileRefManager::UpdateVisibility()
+{
+ HostileReference* ref = getFirst();
+ while (ref)
+ {
+ HostileReference* nextRef = ref->next();
+ if (!ref->getSource()->getOwner()->canSeeOrDetect(getOwner()))
+ {
+ HostileReference* nextRef = ref->next();
+ ref->removeReference();
+ delete ref;
+ }
+ ref = nextRef;
+ }
+}