aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none.none>2011-09-20 10:26:34 -0400
committermegamage <none@none.none>2011-09-20 10:26:34 -0400
commit4ccb22e1a6756cd31eee6d328ed995e192e2a8a5 (patch)
treef6b97fe826e543329cb1f6907ee57bc4e1c5646f /src
parent8aead2a1eea446c3a8ca40ac7c3c9ad13bc88ef9 (diff)
Fix the incorrect logic of threat online status check. Also add targets in other map or phase to offline container.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Combat/ThreatManager.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index 4d426d1a5af..e5a2460b1a6 100755
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -178,11 +178,13 @@ void HostileReference::updateOnlineStatus()
// ref is valid
// target is no player or not gamemaster
// target is not in flight
- if (isValid() &&
- ((getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->isGameMaster()) ||
- !getTarget()->HasUnitState(UNIT_STAT_IN_FLIGHT)))
+ if (isValid()
+ && (getTarget()->GetTypeId() != TYPEID_PLAYER || !getTarget()->ToPlayer()->isGameMaster())
+ && !getTarget()->HasUnitState(UNIT_STAT_IN_FLIGHT)
+ && getTarget()->IsInMap(getSourceUnit())
+ )
{
- Creature* creature = getSourceUnit()->ToCreature();
+ Creature* creature = getSourceUnit()->ToCreature();
online = getTarget()->isInAccessiblePlaceFor(creature);
if (!online)
{