diff options
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 8 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
6 files changed, 14 insertions, 14 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 5494f5a8bb4..2ff7196a2dc 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -1379,7 +1379,7 @@ bool ConditionMgr::addToPhases(Condition* cond) const if (!cond->SourceEntry) { bool found = false; - PhaseInfo& p = sObjectMgr->GetAreaPhasesForLoading(); + PhaseInfo& p = sObjectMgr->GetAreaAndZonePhasesForLoading(); for (auto phaseItr = p.begin(); phaseItr != p.end(); ++phaseItr) { for (PhaseInfoStruct& phase : phaseItr->second) @@ -1395,7 +1395,7 @@ bool ConditionMgr::addToPhases(Condition* cond) const if (found) return true; } - else if (std::vector<PhaseInfoStruct>* phases = sObjectMgr->GetPhasesForAreaForLoading(cond->SourceEntry)) + else if (std::vector<PhaseInfoStruct>* phases = sObjectMgr->GetPhasesForAreaOrZoneForLoading(cond->SourceEntry)) { for (PhaseInfoStruct& phase : *phases) { 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(); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 912f13b8515..1efc4988a08 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6846,7 +6846,7 @@ void Player::UpdateArea(uint32 newArea) UpdatePvPState(true); UpdateAreaDependentAuras(newArea); - UpdateAreaPhase(); + UpdateAreaAndZonePhase(); // previously this was in UpdateZone (but after UpdateArea) so nothing will break pvpInfo.IsInNoPvPArea = false; @@ -6955,7 +6955,7 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea) UpdateZoneDependentAuras(newZone); - UpdateAreaPhase(); + UpdateAreaAndZonePhase(); } //If players are too far away from the duel flag... they lose the duel diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index faea0d7f414..31eff02b3dc 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1330,14 +1330,14 @@ class TC_GAME_API ObjectMgr return itr != _phases.end() ? &itr->second : nullptr; } TerrainPhaseInfo const& GetDefaultTerrainSwapStore() const { return _terrainMapDefaultStore; } - PhaseInfo const& GetAreaPhases() const { return _phases; } + PhaseInfo const& GetAreaAndZonePhases() const { return _phases; } // condition loading helpers - std::vector<PhaseInfoStruct>* GetPhasesForAreaForLoading(uint32 area) + std::vector<PhaseInfoStruct>* GetPhasesForAreaOrZoneForLoading(uint32 areaOrZone) { - auto itr = _phases.find(area); + auto itr = _phases.find(areaOrZone); return itr != _phases.end() ? &itr->second : nullptr; } - PhaseInfo& GetAreaPhasesForLoading() { return _phases; } + PhaseInfo& GetAreaAndZonePhasesForLoading() { return _phases; } // for wintergrasp only GraveYardContainer GraveYardStore; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index b274750c5ab..d605e1d8679 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5927,7 +5927,7 @@ void Spell::EffectUpdatePlayerPhase(SpellEffIndex /*effIndex*/) if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) return; - unitTarget->UpdateAreaPhase(); + unitTarget->UpdateAreaAndZonePhase(); } void Spell::EffectUpdateZoneAurasAndPhases(SpellEffIndex /*effIndex*/) |