From b538cdc129e6132ddd6afc2c5ac5ccaae2959730 Mon Sep 17 00:00:00 2001 From: Treeston Date: Wed, 9 Aug 2017 00:21:52 +0200 Subject: Core/Creature: Fix a crash in .npc delete (closes #20124). Also fix an issue breaking vehicles in certain edge case situations. (cherry picked from commit 4cf49614e6e3e4a2da09c0f00404f323ae948590) --- src/server/game/Entities/Creature/Creature.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index d4c1c5b2bd6..df1112ff27e 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -636,7 +636,7 @@ void Creature::Update(uint32 diff) { m_triggerJustAppeared = false; AI()->JustAppeared(); - if (m_vehicleKit) + if (m_respawnCompatibilityMode && m_vehicleKit) m_vehicleKit->Reset(); } @@ -1797,8 +1797,8 @@ void Creature::DeleteFromDB() WorldDatabase.CommitTransaction(trans); // then delete any active instances of the creature - auto const& range = GetMap()->GetCreatureBySpawnIdStore().equal_range(m_spawnId); - for (auto it = range.first; it != range.second; ++it) + auto const& spawnMap = GetMap()->GetCreatureBySpawnIdStore(); + for (auto it = spawnMap.find(m_spawnId); it != spawnMap.end(); it = spawnMap.find(m_spawnId)) it->second->AddObjectToRemoveList(); } -- cgit v1.2.3