aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Corpse.cpp8
-rw-r--r--src/game/Object.cpp8
2 files changed, 10 insertions, 6 deletions
diff --git a/src/game/Corpse.cpp b/src/game/Corpse.cpp
index 7fc8dc7fb50..6aec1da7ef9 100644
--- a/src/game/Corpse.cpp
+++ b/src/game/Corpse.cpp
@@ -81,10 +81,6 @@ bool Corpse::Create( uint32 guidlow, Player *owner)
{
ASSERT(owner);
- //we need to assign owner's map for corpse
- //in other way we will get a crash in Corpse::SaveToDB()
- SetMap(owner->GetMap());
-
Relocate(owner->GetPositionX(), owner->GetPositionY(), owner->GetPositionZ(), owner->GetOrientation());
if(!IsPositionValid())
@@ -94,6 +90,10 @@ bool Corpse::Create( uint32 guidlow, Player *owner)
return false;
}
+ //we need to assign owner's map for corpse
+ //in other way we will get a crash in Corpse::SaveToDB()
+ SetMap(owner->GetMap());
+
WorldObject::_Create(guidlow, HIGHGUID_CORPSE, owner->GetPhaseMask());
SetFloatValue( OBJECT_FIELD_SCALE_X, 1 );
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 334790402b9..2e3aa8e0528 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -82,10 +82,14 @@ Object::Object( ) : m_PackGUID(sizeof(uint64)+1)
WorldObject::~WorldObject()
{
+ // this may happen because there are many !create/delete
if(m_isWorldObject && m_currMap)
{
- sLog.outCrash("Object::~Object - guid="UI64FMTD", typeid=%d, entry=%u deleted but still in map!!", GetGUID(), GetTypeId(), GetEntry());
- assert(false);
+ if(GetTypeId() == TYPEID_CORPSE)
+ {
+ sLog.outCrash("Object::~Object Corpse guid="UI64FMTD", type=%d, entry=%u deleted but still in map!!", GetGUID(), ((Corpse*)this)->GetType(), GetEntry());
+ assert(false);
+ }
ResetMap();
}
}