diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Globals/ObjectAccessor.cpp | 11 |
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(); |