Core/Corpses: Fixed map crash happening during map unload when there are corpses inside

(cherry picked from commit 1d17475791)
This commit is contained in:
Shauren authored and ariel- committed 2016-01-11 01:51:00 -03:00
1 parent fc9c587604
commit b7d37daa74
3 files changed
+10 -3

No files matched your search

+8 -1
View File
@@ -1580,11 +1580,18 @@ void Map::UnloadAll()
}
for (auto& cellCorpsePair : _corpsesByCell)
{
for (Corpse* corpse : cellCorpsePair.second)
{
corpse->RemoveFromWorld();
corpse->ResetMap();
delete corpse;
}
}
_corpsesByCell.clear();
_corpsesByPlayer.clear();
_corpseBones.clear();
}
// *****************************
@@ -3657,7 +3664,7 @@ Corpse* Map::ConvertCorpseToBones(ObjectGuid const& ownerGuid, bool insignia /*=
{
// Create bones, don't change Corpse
bones = new Corpse();
bones->Create(corpse->GetGUID().GetCounter(), this);
bones->Create(corpse->GetGUID().GetCounter());
for (uint8 i = OBJECT_FIELD_GUID + 4; i < CORPSE_END; ++i) // don't overwrite guid
bones->SetUInt32Value(i, corpse->GetUInt32Value(i));