aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-08-09 00:21:52 +0200
committerTreeston <treeston.mmoc@gmail.com>2017-08-09 00:21:52 +0200
commit4cf49614e6e3e4a2da09c0f00404f323ae948590 (patch)
tree56efd9142c41fc9d7fb3525183c633c0cb58b76f /src
parent0a3e2339ef8763bf4d77b1071619da5ff3469da0 (diff)
Core/Creature: Fix a crash in .npc delete (closes #20124). Also fix an issue breaking vehicles in certain edge case situations.
Diffstat (limited to 'src')
-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 f202f70042a..af1506c1fde 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -581,7 +581,7 @@ void Creature::Update(uint32 diff)
{
m_triggerJustAppeared = false;
AI()->JustAppeared();
- if (m_vehicleKit)
+ if (m_respawnCompatibilityMode && m_vehicleKit)
m_vehicleKit->Reset();
}
@@ -1644,8 +1644,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();
}