Core/Map: Fix a crash that could happen if a player moved very far away from a creature they were in combat with. Closes #21177.

This commit is contained in:
Treeston authored and Ovahlord committed 2020-07-22 16:52:02 +02:00
1 parent d82abd8256
commit c1237c788b
2 files changed
+6 -3

No files matched your search

+4 -1
View File
@@ -894,10 +894,13 @@ void Map::Update(uint32 t_diff)
// Handle updates for creatures in combat with player and are more than 60 yards away
if (player->IsInCombat())
{
std::vector<Unit*> toVisit;
for (auto const& pair : player->GetCombatManager().GetPvECombatRefs())
if (Creature* unit = pair.second->GetOther(player)->ToCreature())
if (unit->GetMapId() == player->GetMapId() && !unit->IsWithinDistInMap(player, GetVisibilityRange(), false))
VisitNearbyCellsOf(unit, grid_object_update, world_object_update);
toVisit.push_back(unit);
for (Unit* unit : toVisit)
VisitNearbyCellsOf(unit, grid_object_update, world_object_update);
}
{ // Update any creatures that own auras the player has applications of