aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-08-09 00:21:52 +0200
committerShauren <shauren.trinity@gmail.com>2020-08-22 20:52:13 +0200
commitb538cdc129e6132ddd6afc2c5ac5ccaae2959730 (patch)
tree4a0845e52d3e0c6079a9c3c75eb857fc867fb1ad /src/server
parent6209ceddb9fbbcf1c7e3552c17b23465c29ec118 (diff)
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)
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp6
1 files changed, 3 insertions, 3 deletions
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();
}