aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorMitchesD <majklprofik@seznam.cz>2016-05-18 20:06:47 +0200
committerMitchesD <majklprofik@seznam.cz>2016-05-18 20:06:47 +0200
commitf636141345a98569840548372dbb6030299d91b3 (patch)
tree40ae2c2bb32ccf66f14a38ff90544118968a9ac4 /src/server/game/Entities/Object
parent042e1ae266c968ce27994b1b4feb7342adb52db7 (diff)
Core/Phase: phase_area table now support even parent area (known as zone)
Closes https://github.com/TrinityCore/TrinityCore/issues/17025
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp8
-rw-r--r--src/server/game/Entities/Object/Object.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 1fe1b3b73c4..f9fa1b3aeb6 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2809,16 +2809,16 @@ bool WorldObject::HasInPhaseList(uint32 phase)
// Updates Area based phases, does not remove phases from auras
// Phases from gm commands are not taken into calculations, they can be lost!!
-void WorldObject::UpdateAreaPhase()
+void WorldObject::UpdateAreaAndZonePhase()
{
bool updateNeeded = false;
- PhaseInfo const& phases = sObjectMgr->GetAreaPhases();
+ PhaseInfo const& phases = sObjectMgr->GetAreaAndZonePhases();
for (PhaseInfo::const_iterator itr = phases.begin(); itr != phases.end(); ++itr)
{
- uint32 areaId = itr->first;
+ uint32 areaOrZoneId = itr->first;
for (PhaseInfoStruct const& phase : itr->second)
{
- if (areaId == GetAreaId())
+ if (areaOrZoneId == GetAreaId() || areaOrZoneId == GetZoneId())
{
if (sConditionMgr->IsObjectMeetToConditions(this, phase.Conditions))
{
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index dfb2647d760..503555037e1 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -453,7 +453,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
virtual void SetPhaseMask(uint32 newPhaseMask, bool update);
virtual bool SetInPhase(uint32 id, bool update, bool apply);
void CopyPhaseFrom(WorldObject* obj, bool update = false);
- void UpdateAreaPhase();
+ void UpdateAreaAndZonePhase();
void ClearPhases(bool update = false);
void RebuildTerrainSwaps();
void RebuildWorldMapAreaSwaps();