From 10b89d976fe7ce19db8bcb1f829b3789cc9785af Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 14 Nov 2011 21:01:53 -0500 Subject: [PATCH] A temp fix for crash caused by remove corpse. --- src/server/game/Globals/ObjectAccessor.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server/game/Globals/ObjectAccessor.cpp b/src/server/game/Globals/ObjectAccessor.cpp index 7c9beb7d656..3a1b81b044d 100755 --- a/src/server/game/Globals/ObjectAccessor.cpp +++ b/src/server/game/Globals/ObjectAccessor.cpp @@ -199,10 +199,17 @@ void ObjectAccessor::RemoveCorpse(Corpse* corpse) { ASSERT(corpse && corpse->GetType() != CORPSE_BONES); - if (corpse->IsInGrid()) + //TODO: more works need to be done for corpse and other world object + if (Map* map = corpse->FindMap()) { corpse->DestroyForNearbyPlayers(); - corpse->GetMap()->RemoveFromMap(corpse, false); + if (corpse->IsInGrid()) + map->RemoveFromMap(corpse, false); + else + { + corpse->RemoveFromWorld(); + corpse->ResetMap(); + } } else corpse->RemoveFromWorld();