aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-03-17 16:25:18 +0100
committerShauren <shauren.trinity@gmail.com>2018-03-25 19:28:36 +0300
commit58e9bc0008214080047b23f805c0f0aed4a4f406 (patch)
tree87cb11a28db61f8be8cffad1ee70cfa896cbfee6 /src
parent52fd0f43fa34f0625870b6d32fae3ac3009eeb7a (diff)
Core/Misc: Implemented phased areatriggers
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ffe6349e161..23d06007908 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2155,9 +2155,16 @@ void Player::SetInWater(bool apply)
bool Player::IsInAreaTriggerRadius(const AreaTriggerEntry* trigger) const
{
- if (!trigger || int32(GetMapId()) != trigger->ContinentID)
+ if (!trigger)
return false;
+ if (int32(GetMapId()) != trigger->ContinentID && !GetPhaseShift().HasVisibleMapId(trigger->ContinentID))
+ return false;
+
+ if (trigger->PhaseID || trigger->PhaseGroupID || trigger->PhaseUseFlags)
+ if (!PhasingHandler::InDbPhaseShift(this, trigger->PhaseUseFlags, trigger->PhaseID, trigger->PhaseGroupID))
+ return false;
+
if (trigger->Radius > 0.f)
{
// if we have radius check it