diff options
| author | MitchesD <majklprofik@seznam.cz> | 2016-05-18 20:06:47 +0200 |
|---|---|---|
| committer | MitchesD <majklprofik@seznam.cz> | 2016-05-18 20:06:47 +0200 |
| commit | f636141345a98569840548372dbb6030299d91b3 (patch) | |
| tree | 40ae2c2bb32ccf66f14a38ff90544118968a9ac4 /src/server/game/Entities/Object | |
| parent | 042e1ae266c968ce27994b1b4feb7342adb52db7 (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.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 2 |
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(); |
