diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Object.cpp | 4 | ||||
-rw-r--r-- | src/game/ObjectGridLoader.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 6837570bfea..3f6b34a20bb 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -1692,14 +1692,14 @@ void WorldObject::SendObjectDeSpawnAnim(uint64 guid) void WorldObject::SetMap(Map * map) { ASSERT(map); - ASSERT(!IsInWorld()); + ASSERT(!IsInWorld() || GetTypeId() == TYPEID_CORPSE); m_currMap = map; } void WorldObject::ResetMap() { ASSERT(m_currMap); - ASSERT(!IsInWorld()); + ASSERT(!IsInWorld() || GetTypeId() == TYPEID_CORPSE); m_currMap = NULL; } diff --git a/src/game/ObjectGridLoader.cpp b/src/game/ObjectGridLoader.cpp index c55bf0106b0..2399019237f 100644 --- a/src/game/ObjectGridLoader.cpp +++ b/src/game/ObjectGridLoader.cpp @@ -177,6 +177,10 @@ void LoadHelper(CellCorpseSet const& cell_corpses, CellPair &cell, CorpseMapType if(!obj) continue; + // TODO: this is a hack + // corpse's map should be reset when the map is unloaded + obj->SetMap(map); + AddObjectHelper(cell, m, count, map, obj); } } |