diff options
author | Treeston <treeston.mmoc@gmail.com> | 2017-08-09 00:21:52 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2017-08-09 00:21:52 +0200 |
commit | 4cf49614e6e3e4a2da09c0f00404f323ae948590 (patch) | |
tree | 56efd9142c41fc9d7fb3525183c633c0cb58b76f /src | |
parent | 0a3e2339ef8763bf4d77b1071619da5ff3469da0 (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.cpp | 6 |
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(); } |