aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Maps/Map.cpp12
1 files changed, 12 insertions, 0 deletions
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<Unit*> toVisit;
+ for (std::pair<uint32, AuraApplication*> 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