aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Globals/ObjectAccessor.cpp11
1 files 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();