diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-12-25 00:44:12 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-12-25 00:44:12 +0100 |
commit | c3f385c48f5080e64b13b0f31864e20e04e531aa (patch) | |
tree | 8c023148e0b62baafea101bcbb81514708c30b04 | |
parent | d124cc68c8f43a55e4a4728fbcae563008521590 (diff) |
Core/Phasing: Reduce differences between branches in GridNotifiers
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.h | 16 | ||||
-rw-r--r-- | src/server/game/Entities/Transport/Transport.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.h | 125 | ||||
-rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiersImpl.h | 74 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp | 4 |
11 files changed, 131 insertions, 120 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 60b3cc2b370..49ce3ae4f34 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -4010,7 +4010,7 @@ bool GameObject::IsAtInteractDistance(Position const& pos, float radius) const bool GameObject::IsWithinDistInMap(Player const* player) const { - return IsInMap(player) && IsInPhase(player) && IsAtInteractDistance(player); + return IsInMap(player) && InSamePhase(player) && IsAtInteractDistance(player); } SpellInfo const* GameObject::GetSpellForLock(Player const* player) const diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index ba2ff05dc15..608cef987cd 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1111,7 +1111,7 @@ bool WorldObject::IsWithinDist(WorldObject const* obj, float dist2compare, bool bool WorldObject::IsWithinDistInMap(WorldObject const* obj, float dist2compare, bool is3D /*= true*/, bool incOwnRadius /*= true*/, bool incTargetRadius /*= true*/) const { - return obj && IsInMap(obj) && IsInPhase(obj) && _IsWithinDist(obj, dist2compare, is3D, incOwnRadius, incTargetRadius); + return obj && IsInMap(obj) && InSamePhase(obj) && _IsWithinDist(obj, dist2compare, is3D, incOwnRadius, incTargetRadius); } Position WorldObject::GetHitSpherePointFor(Position const& dest) const @@ -1570,7 +1570,7 @@ bool WorldObject::CanSeeOrDetect(WorldObject const* obj, bool ignoreStealth, boo bool WorldObject::CanNeverSee(WorldObject const* obj) const { - return GetMap() != obj->GetMap() || !IsInPhase(obj); + return GetMap() != obj->GetMap() || !InSamePhase(obj); } bool WorldObject::CanDetect(WorldObject const* obj, bool ignoreStealth, bool checkAlert) const diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 6269bc1b975..17ded06619f 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -463,19 +463,23 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation uint32 GetInstanceId() const { return m_InstanceId; } - bool IsInPhase(WorldObject const* obj) const + PhaseShift& GetPhaseShift() { return _phaseShift; } + PhaseShift const& GetPhaseShift() const { return _phaseShift; } + PhaseShift& GetSuppressedPhaseShift() { return _suppressedPhaseShift; } + PhaseShift const& GetSuppressedPhaseShift() const { return _suppressedPhaseShift; } + bool InSamePhase(PhaseShift const& phaseShift) const + { + return GetPhaseShift().CanSee(phaseShift); + } + bool InSamePhase(WorldObject const* obj) const { return GetPhaseShift().CanSee(obj->GetPhaseShift()); } static bool InSamePhase(WorldObject const* a, WorldObject const* b) { - return a && b && a->IsInPhase(b); + return a && b && a->InSamePhase(b); } - PhaseShift& GetPhaseShift() { return _phaseShift; } - PhaseShift const& GetPhaseShift() const { return _phaseShift; } - PhaseShift& GetSuppressedPhaseShift() { return _suppressedPhaseShift; } - PhaseShift const& GetSuppressedPhaseShift() const { return _suppressedPhaseShift; } int32 GetDBPhase() const { return _dbPhase; } // if negative it is used as PhaseGroupId diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index eb8e5aea43a..232e82d6610 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -648,7 +648,7 @@ void Transport::TeleportPassengersAndHideTransport(uint32 newMapid, float x, flo for (MapReference const& ref : GetMap()->GetPlayers()) { - if (ref.GetSource()->GetTransport() != this && ref.GetSource()->IsInPhase(this)) + if (ref.GetSource()->GetTransport() != this && ref.GetSource()->InSamePhase(this)) { UpdateData data(GetMap()->GetId()); BuildCreateUpdateBlockForPlayer(&data, ref.GetSource()); @@ -720,7 +720,7 @@ void Transport::BuildUpdate(UpdateDataMapType& data_map) return; for (MapReference const& playerReference : players) - if (playerReference.GetSource()->IsInPhase(this)) + if (playerReference.GetSource()->InSamePhase(this)) BuildFieldsUpdate(playerReference.GetSource(), data_map); ClearUpdateMask(true); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 96e0da89968..ffedc0da2b4 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -614,7 +614,7 @@ void Unit::resetAttackTimer(WeaponAttackType type) bool Unit::IsWithinCombatRange(Unit const* obj, float dist2compare) const { - if (!obj || !IsInMap(obj) || !IsInPhase(obj)) + if (!obj || !IsInMap(obj) || !InSamePhase(obj)) return false; float dx = GetPositionX() - obj->GetPositionX(); @@ -630,7 +630,7 @@ bool Unit::IsWithinCombatRange(Unit const* obj, float dist2compare) const bool Unit::IsWithinMeleeRangeAt(Position const& pos, Unit const* obj) const { - if (!obj || !IsInMap(obj) || !IsInPhase(obj)) + if (!obj || !IsInMap(obj) || !InSamePhase(obj)) return false; float dx = pos.GetPositionX() - obj->GetPositionX(); @@ -651,7 +651,7 @@ float Unit::GetMeleeRange(Unit const* target) const bool Unit::IsWithinBoundaryRadius(const Unit* obj) const { - if (!obj || !IsInMap(obj) || !IsInPhase(obj)) + if (!obj || !IsInMap(obj) || !InSamePhase(obj)) return false; float objBoundaryRadius = std::max(obj->GetBoundingRadius(), MIN_MELEE_REACH); @@ -3893,7 +3893,7 @@ void Unit::RemoveNotOwnSingleTargetAuras(bool onPhaseChange /*= false*/) else { Unit* caster = aura->GetCaster(); - if (!caster || !caster->IsInPhase(this)) + if (!caster || !caster->InSamePhase(this)) RemoveOwnedAura(iter); else ++iter; @@ -3908,7 +3908,7 @@ void Unit::RemoveNotOwnSingleTargetAuras(bool onPhaseChange /*= false*/) for (AuraList::iterator iter = scAuras.begin(); iter != scAuras.end();) { Aura* aura = *iter; - if (aura->GetUnitOwner() != this && (!onPhaseChange || !aura->GetUnitOwner()->IsInPhase(this))) + if (aura->GetUnitOwner() != this && (!onPhaseChange || !aura->GetUnitOwner()->InSamePhase(this))) { aura->Remove(); iter = scAuras.begin(); diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index 5941bdee7ec..1077aad9e72 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -96,8 +96,8 @@ void VisibleChangesNotifier::Visit(PlayerMapType &m) for (SharedVisionList::const_iterator i = iter->GetSource()->GetSharedVisionList().begin(); i != iter->GetSource()->GetSharedVisionList().end(); ++i) - if ((*i)->m_seer == iter->GetSource()) - (*i)->UpdateVisibilityOf(i_objects); + if ((*i)->m_seer == iter->GetSource()) + (*i)->UpdateVisibilityOf(i_objects); } } diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index ba045606a85..f673bb42857 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -147,11 +147,12 @@ namespace Trinity { WorldObject const* i_source; PacketSender& i_packetSender; + PhaseShift const* i_phaseShift; float i_distSq; Team team; Player const* skipped_receiver; MessageDistDeliverer(WorldObject const* src, PacketSender& packetSender, float dist, bool own_team_only = false, Player const* skipped = nullptr) - : i_source(src), i_packetSender(packetSender), i_distSq(dist * dist) + : i_source(src), i_packetSender(packetSender), i_phaseShift(&src->GetPhaseShift()), i_distSq(dist * dist) , team(TEAM_OTHER) , skipped_receiver(skipped) { @@ -183,10 +184,11 @@ namespace Trinity { Unit* i_source; PacketSender& i_packetSender; + PhaseShift const* i_phaseShift; float i_distSq; MessageDistDelivererToHostile(Unit* src, PacketSender& packetSender, float dist) - : i_source(src), i_packetSender(packetSender), i_distSq(dist * dist) + : i_source(src), i_packetSender(packetSender), i_phaseShift(&src->GetPhaseShift()), i_distSq(dist * dist) { } @@ -247,13 +249,13 @@ namespace Trinity template<class Check> struct WorldObjectSearcher { - WorldObject const* _searcher; - WorldObject*& i_object; - Check &i_check; uint32 i_mapTypeMask; + PhaseShift const* i_phaseShift; + WorldObject* &i_object; + Check &i_check; WorldObjectSearcher(WorldObject const* searcher, WorldObject* & result, Check& check, uint32 mapTypeMask = GRID_MAP_TYPE_MASK_ALL) - : _searcher(searcher), i_object(result), i_check(check), i_mapTypeMask(mapTypeMask) { } + : i_mapTypeMask(mapTypeMask), i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(GameObjectMapType &m); void Visit(PlayerMapType &m); @@ -270,13 +272,13 @@ namespace Trinity template<class Check> struct WorldObjectLastSearcher { - WorldObject const* _searcher; + uint32 i_mapTypeMask; + PhaseShift const* i_phaseShift; WorldObject* &i_object; Check &i_check; - uint32 i_mapTypeMask; WorldObjectLastSearcher(WorldObject const* searcher, WorldObject* & result, Check& check, uint32 mapTypeMask = GRID_MAP_TYPE_MASK_ALL) - : _searcher(searcher), i_object(result), i_check(check), i_mapTypeMask(mapTypeMask) { } + : i_mapTypeMask(mapTypeMask), i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(GameObjectMapType &m); void Visit(PlayerMapType &m); @@ -294,13 +296,13 @@ namespace Trinity struct WorldObjectListSearcher : ContainerInserter<WorldObject*> { uint32 i_mapTypeMask; - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Check& i_check; template<typename Container> WorldObjectListSearcher(WorldObject const* searcher, Container& container, Check & check, uint32 mapTypeMask = GRID_MAP_TYPE_MASK_ALL) : ContainerInserter<WorldObject*>(container), - i_mapTypeMask(mapTypeMask), _searcher(searcher), i_check(check) { } + i_mapTypeMask(mapTypeMask), i_phaseShift(&searcher->GetPhaseShift()), i_check(check) { } void Visit(PlayerMapType &m); void Visit(CreatureMapType &m); @@ -318,18 +320,18 @@ namespace Trinity struct WorldObjectWorker { uint32 i_mapTypeMask; - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Do const& i_do; WorldObjectWorker(WorldObject const* searcher, Do const& _do, uint32 mapTypeMask = GRID_MAP_TYPE_MASK_ALL) - : i_mapTypeMask(mapTypeMask), _searcher(searcher), i_do(_do) { } + : i_mapTypeMask(mapTypeMask), i_phaseShift(&searcher->GetPhaseShift()), i_do(_do) { } void Visit(GameObjectMapType &m) { if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_GAMEOBJECT)) return; for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -338,7 +340,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_PLAYER)) return; for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } void Visit(CreatureMapType &m) @@ -346,7 +348,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_CREATURE)) return; for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -355,7 +357,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_CORPSE)) return; for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -364,7 +366,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_DYNAMICOBJECT)) return; for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -373,7 +375,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_AREATRIGGER)) return; for (AreaTriggerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -382,7 +384,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_SCENEOBJECT)) return; for (SceneObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -391,7 +393,7 @@ namespace Trinity if (!(i_mapTypeMask & GRID_MAP_TYPE_MASK_CONVERSATION)) return; for (ConversationMapType::iterator itr = m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -403,12 +405,12 @@ namespace Trinity template<class Check> struct GameObjectSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; GameObject* &i_object; Check &i_check; GameObjectSearcher(WorldObject const* searcher, GameObject* & result, Check& check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(GameObjectMapType &m); @@ -419,12 +421,12 @@ namespace Trinity template<class Check> struct GameObjectLastSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; GameObject* &i_object; Check& i_check; GameObjectLastSearcher(WorldObject const* searcher, GameObject* & result, Check& check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(GameObjectMapType &m); @@ -434,13 +436,13 @@ namespace Trinity template<class Check> struct GameObjectListSearcher : ContainerInserter<GameObject*> { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Check& i_check; template<typename Container> GameObjectListSearcher(WorldObject const* searcher, Container& container, Check & check) : ContainerInserter<GameObject*>(container), - _searcher(searcher), i_check(check) { } + i_phaseShift(&searcher->GetPhaseShift()), i_check(check) { } void Visit(GameObjectMapType &m); @@ -451,12 +453,12 @@ namespace Trinity struct GameObjectWorker { GameObjectWorker(WorldObject const* searcher, Functor& func) - : _func(func), _searcher(searcher) { } + : _func(func), _phaseShift(&searcher->GetPhaseShift()) { } void Visit(GameObjectMapType& m) { for (GameObjectMapType::iterator itr = m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*_phaseShift)) _func(itr->GetSource()); } @@ -464,7 +466,7 @@ namespace Trinity private: Functor& _func; - WorldObject const* _searcher; + PhaseShift const* _phaseShift; }; // Unit searchers @@ -473,12 +475,12 @@ namespace Trinity template<class Check> struct UnitSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Unit* &i_object; Check & i_check; UnitSearcher(WorldObject const* searcher, Unit* & result, Check & check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(CreatureMapType &m); void Visit(PlayerMapType &m); @@ -490,12 +492,12 @@ namespace Trinity template<class Check> struct UnitLastSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Unit* &i_object; Check & i_check; UnitLastSearcher(WorldObject const* searcher, Unit* & result, Check & check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(CreatureMapType &m); void Visit(PlayerMapType &m); @@ -507,13 +509,13 @@ namespace Trinity template<class Check> struct UnitListSearcher : ContainerInserter<Unit*> { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Check& i_check; template<typename Container> UnitListSearcher(WorldObject const* searcher, Container& container, Check& check) : ContainerInserter<Unit*>(container), - _searcher(searcher), i_check(check) { } + i_phaseShift(&searcher->GetPhaseShift()), i_check(check) { } void Visit(PlayerMapType &m); void Visit(CreatureMapType &m); @@ -526,12 +528,12 @@ namespace Trinity template<class Check> struct CreatureSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Creature* &i_object; Check & i_check; CreatureSearcher(WorldObject const* searcher, Creature* & result, Check & check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(CreatureMapType &m); @@ -542,12 +544,12 @@ namespace Trinity template<class Check> struct CreatureLastSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Creature* &i_object; Check & i_check; CreatureLastSearcher(WorldObject const* searcher, Creature* & result, Check & check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(CreatureMapType &m); @@ -557,13 +559,13 @@ namespace Trinity template<class Check> struct CreatureListSearcher : ContainerInserter<Creature*> { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Check& i_check; template<typename Container> CreatureListSearcher(WorldObject const* searcher, Container& container, Check & check) : ContainerInserter<Creature*>(container), - _searcher(searcher), i_check(check) { } + i_phaseShift(&searcher->GetPhaseShift()), i_check(check) { } void Visit(CreatureMapType &m); @@ -573,16 +575,16 @@ namespace Trinity template<class Do> struct CreatureWorker { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Do& i_do; CreatureWorker(WorldObject const* searcher, Do& _do) - : _searcher(searcher), i_do(_do) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_do(_do) { } void Visit(CreatureMapType &m) { for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -594,12 +596,12 @@ namespace Trinity template<class Check> struct PlayerSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Player* &i_object; Check & i_check; PlayerSearcher(WorldObject const* searcher, Player* & result, Check & check) - : _searcher(searcher), i_object(result), i_check(check) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } void Visit(PlayerMapType &m); @@ -609,13 +611,18 @@ namespace Trinity template<class Check> struct PlayerListSearcher : ContainerInserter<Player*> { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Check& i_check; template<typename Container> PlayerListSearcher(WorldObject const* searcher, Container& container, Check & check) : ContainerInserter<Player*>(container), - _searcher(searcher), i_check(check) { } + i_phaseShift(&searcher->GetPhaseShift()), i_check(check) { } + + template<typename Container> + PlayerListSearcher(PhaseShift const& phaseShift, Container& container, Check & check) + : ContainerInserter<Player*>(container), + i_phaseShift(&phaseShift), i_check(check) { } void Visit(PlayerMapType &m); @@ -625,11 +632,11 @@ namespace Trinity template<class Check> struct PlayerLastSearcher { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Player* &i_object; Check& i_check; - PlayerLastSearcher(WorldObject const* searcher, Player*& result, Check& check) : _searcher(searcher), i_object(result), i_check(check) + PlayerLastSearcher(WorldObject const* searcher, Player*& result, Check& check) : i_phaseShift(&searcher->GetPhaseShift()), i_object(result), i_check(check) { } @@ -641,16 +648,16 @@ namespace Trinity template<class Do> struct PlayerWorker { - WorldObject const* _searcher; + PhaseShift const* i_phaseShift; Do& i_do; PlayerWorker(WorldObject const* searcher, Do& _do) - : _searcher(searcher), i_do(_do) { } + : i_phaseShift(&searcher->GetPhaseShift()), i_do(_do) { } void Visit(PlayerMapType &m) { for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) i_do(itr->GetSource()); } @@ -670,7 +677,7 @@ namespace Trinity void Visit(PlayerMapType &m) { for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(i_searcher) && itr->GetSource()->IsWithinDist(i_searcher, i_dist)) + if (itr->GetSource()->InSamePhase(i_searcher) && itr->GetSource()->IsWithinDist(i_searcher, i_dist)) i_do(itr->GetSource()); } @@ -1037,7 +1044,7 @@ namespace Trinity if (i_incTargetRadius) searchRadius += u->GetCombatReach(); - if (!u->IsInMap(i_obj) || !u->IsInPhase(i_obj) || !u->IsWithinDoubleVerticalCylinder(i_obj, searchRadius, searchRadius)) + if (!u->IsInMap(i_obj) || !u->InSamePhase(i_obj) || !u->IsWithinDoubleVerticalCylinder(i_obj, searchRadius, searchRadius)) return false; if (!i_funit->IsFriendlyTo(u)) @@ -1086,7 +1093,7 @@ namespace Trinity if (i_incTargetRadius) searchRadius += u->GetCombatReach(); - return u->IsInMap(_source) && u->IsInPhase(_source) && u->IsWithinDoubleVerticalCylinder(_source, searchRadius, searchRadius); + return u->IsInMap(_source) && u->InSamePhase(_source) && u->IsWithinDoubleVerticalCylinder(_source, searchRadius, searchRadius); } private: @@ -1182,7 +1189,7 @@ namespace Trinity if (i_incTargetRadius) searchRadius += u->GetCombatReach(); - return u->IsInMap(i_obj) && u->IsInPhase(i_obj) && u->IsWithinDoubleVerticalCylinder(i_obj, searchRadius, searchRadius); + return u->IsInMap(i_obj) && u->InSamePhase(i_obj) && u->IsWithinDoubleVerticalCylinder(i_obj, searchRadius, searchRadius); } private: @@ -1642,7 +1649,7 @@ namespace Trinity bool operator()(WorldObject* go) const { - return m_pObject->IsWithinDist(go, m_fRange, false) && m_pObject->IsInPhase(go); + return m_pObject->IsWithinDist(go, m_fRange, false) && m_pObject->InSamePhase(go); } private: diff --git a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h index 816ad4c20a9..867cc3c7697 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h +++ b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h @@ -40,7 +40,7 @@ void Trinity::MessageDistDeliverer<PacketSender>::Visit(PlayerMapType& m) const for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Player* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -66,7 +66,7 @@ void Trinity::MessageDistDeliverer<PacketSender>::Visit(CreatureMapType& m) cons for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Creature* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -89,7 +89,7 @@ void Trinity::MessageDistDeliverer<PacketSender>::Visit(DynamicObjectMapType& m) for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { DynamicObject* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -111,7 +111,7 @@ void Trinity::MessageDistDelivererToHostile<PacketSender>::Visit(PlayerMapType& for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Player* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -137,7 +137,7 @@ void Trinity::MessageDistDelivererToHostile<PacketSender>::Visit(CreatureMapType for (CreatureMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { Creature* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -160,7 +160,7 @@ void Trinity::MessageDistDelivererToHostile<PacketSender>::Visit(DynamicObjectMa for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter) { DynamicObject* target = iter->GetSource(); - if (!target->IsInPhase(i_source)) + if (!target->InSamePhase(*i_phaseShift)) continue; if (target->GetExactDist2dSq(i_source) > i_distSq) @@ -192,7 +192,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(GameObjectMapType &m) for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -215,7 +215,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(PlayerMapType &m) for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -238,7 +238,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(CreatureMapType &m) for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -261,7 +261,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(CorpseMapType &m) for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -284,7 +284,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(DynamicObjectMapType &m) for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -307,7 +307,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(AreaTriggerMapType &m) for (AreaTriggerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -330,7 +330,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(SceneObjectMapType &m) for (SceneObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -353,7 +353,7 @@ void Trinity::WorldObjectSearcher<Check>::Visit(ConversationMapType &m) for (ConversationMapType::iterator itr = m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -372,7 +372,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(GameObjectMapType &m) for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -388,7 +388,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(PlayerMapType &m) for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -404,7 +404,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(CreatureMapType &m) for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -420,7 +420,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(CorpseMapType &m) for (CorpseMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -436,7 +436,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(DynamicObjectMapType &m) for (DynamicObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -452,7 +452,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(AreaTriggerMapType &m) for (AreaTriggerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -468,7 +468,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(SceneObjectMapType &m) for (SceneObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -484,7 +484,7 @@ void Trinity::WorldObjectLastSearcher<Check>::Visit(ConversationMapType &m) for (ConversationMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -591,7 +591,7 @@ void Trinity::GameObjectSearcher<Check>::Visit(GameObjectMapType &m) for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -607,7 +607,7 @@ void Trinity::GameObjectLastSearcher<Check>::Visit(GameObjectMapType &m) { for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -619,7 +619,7 @@ template<class Check> void Trinity::GameObjectListSearcher<Check>::Visit(GameObjectMapType &m) { for (GameObjectMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) if (i_check(itr->GetSource())) Insert(itr->GetSource()); } @@ -635,7 +635,7 @@ void Trinity::UnitSearcher<Check>::Visit(CreatureMapType &m) for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -655,7 +655,7 @@ void Trinity::UnitSearcher<Check>::Visit(PlayerMapType &m) for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -671,7 +671,7 @@ void Trinity::UnitLastSearcher<Check>::Visit(CreatureMapType &m) { for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -684,7 +684,7 @@ void Trinity::UnitLastSearcher<Check>::Visit(PlayerMapType &m) { for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -696,7 +696,7 @@ template<class Check> void Trinity::UnitListSearcher<Check>::Visit(PlayerMapType &m) { for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) if (i_check(itr->GetSource())) Insert(itr->GetSource()); } @@ -705,7 +705,7 @@ template<class Check> void Trinity::UnitListSearcher<Check>::Visit(CreatureMapType &m) { for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) if (i_check(itr->GetSource())) Insert(itr->GetSource()); } @@ -721,7 +721,7 @@ void Trinity::CreatureSearcher<Check>::Visit(CreatureMapType &m) for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -737,7 +737,7 @@ void Trinity::CreatureLastSearcher<Check>::Visit(CreatureMapType &m) { for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -749,7 +749,7 @@ template<class Check> void Trinity::CreatureListSearcher<Check>::Visit(CreatureMapType &m) { for (CreatureMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) if (i_check(itr->GetSource())) Insert(itr->GetSource()); } @@ -758,7 +758,7 @@ template<class Check> void Trinity::PlayerListSearcher<Check>::Visit(PlayerMapType &m) { for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) - if (itr->GetSource()->IsInPhase(_searcher)) + if (itr->GetSource()->InSamePhase(*i_phaseShift)) if (i_check(itr->GetSource())) Insert(itr->GetSource()); } @@ -772,7 +772,7 @@ void Trinity::PlayerSearcher<Check>::Visit(PlayerMapType &m) for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) @@ -788,7 +788,7 @@ void Trinity::PlayerLastSearcher<Check>::Visit(PlayerMapType& m) { for (PlayerMapType::iterator itr = m.begin(); itr != m.end(); ++itr) { - if (!itr->GetSource()->IsInPhase(_searcher)) + if (!itr->GetSource()->InSamePhase(*i_phaseShift)) continue; if (i_check(itr->GetSource())) diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index a061cfacd1c..102bf08b15e 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -582,7 +582,7 @@ bool Map::AddToMap(Transport* obj) // Broadcast creation to players for (Map::PlayerList::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) { - if (itr->GetSource()->GetTransport() != obj && itr->GetSource()->IsInPhase(obj)) + if (itr->GetSource()->GetTransport() != obj && itr->GetSource()->InSamePhase(obj)) { UpdateData data(GetId()); obj->BuildCreateUpdateBlockForPlayer(&data, itr->GetSource()); @@ -1839,7 +1839,7 @@ void Map::SendInitTransports(Player* player) UpdateData transData(GetId()); for (Transport* transport : _transports) { - if (transport->IsInWorld() && transport != player->GetTransport() && player->IsInPhase(transport)) + if (transport->IsInWorld() && transport != player->GetTransport() && player->InSamePhase(transport)) { transport->BuildCreateUpdateBlockForPlayer(&transData, player); player->m_visibleTransports.insert(transport->GetGUID()); @@ -1879,7 +1879,7 @@ void Map::SendUpdateTransportVisibility(Player* player) continue; auto transportItr = player->m_visibleTransports.find(transport->GetGUID()); - if (player->IsInPhase(transport)) + if (player->InSamePhase(transport)) { if (transportItr == player->m_visibleTransports.end()) { diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp index b2ed77e4a89..4ba062cdaec 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp @@ -309,7 +309,7 @@ struct boss_volazj : public BossAI if (Creature* visage = ObjectAccessor::GetCreature(*me, *iter)) { // Not all are dead - if (visage->IsInPhase(summon)) + if (visage->InSamePhase(summon)) return; else if (!visage->GetPhaseShift().GetPhases().empty()) { diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index e0223f674be..1c076bb8d56 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -301,7 +301,7 @@ class boss_halion : public CreatureScript if (events.IsInPhase(PHASE_THREE)) { // Don't consider copied damage. - if (!attacker || !me->IsInPhase(attacker)) + if (!attacker || !me->InSamePhase(attacker)) return; if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER)) @@ -485,7 +485,7 @@ class boss_twilight_halion : public CreatureScript if (events.IsInPhase(PHASE_THREE)) { // Don't consider copied damage. - if (!attacker || !me->IsInPhase(attacker)) + if (!attacker || !me->InSamePhase(attacker)) return; if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER)) |