From f7e5931b4947d2b0590b073381a4acb10056366c Mon Sep 17 00:00:00 2001 From: Treeston Date: Tue, 24 Jul 2018 10:42:41 +0200 Subject: Core/Maps: Continue updating creatures that own auras applied to players. Closes #22110. (cherry picked from commit fac470014b4b97060a22c346aadfaf9c03b99ff2) --- src/server/game/Maps/Map.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index b9449317587..27ee16d533f 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -878,6 +878,18 @@ void Map::Update(uint32 t_diff) for (Unit* unit : toVisit) VisitNearbyCellsOf(unit, grid_object_update, world_object_update); } + + { // Update any creatures that own auras the player has applications of + std::unordered_set toVisit; + for (std::pair pair : player->GetAppliedAuras()) + { + if (Unit* caster = pair.second->GetBase()->GetCaster()) + if (caster->GetTypeId() != TYPEID_PLAYER) + toVisit.insert(caster); + } + for (Unit* unit : toVisit) + VisitNearbyCellsOf(unit, grid_object_update, world_object_update); + } } // non-player active objects, increasing iterator in the loop in case of object removal -- cgit v1.2.3