aboutsummaryrefslogtreecommitdiff
path: root/src/game/Object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Object.cpp')
-rw-r--r--src/game/Object.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 681a5da6d44..4c100328adb 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -80,6 +80,18 @@ Object::Object( ) : m_PackGUID(sizeof(uint64)+1)
m_PackGUID.appendPackGUID(0);
}
+/*
+WorldObject::~WorldObject()
+{
+ if(m_currMap)
+ {
+ sLog.outCrash("Object::~Object - guid="UI64FMTD", typeid=%d, entry=%u deleted but still in map!!", GetGUID(), GetTypeId(), GetEntry());
+ assert(false);
+ ResetMap();
+ }
+}
+*/
+
Object::~Object( )
{
if(IsInWorld())
@@ -1692,14 +1704,19 @@ void WorldObject::SendObjectDeSpawnAnim(uint64 guid)
void WorldObject::SetMap(Map * map)
{
ASSERT(map);
- ASSERT(!IsInWorld() || GetTypeId() == TYPEID_CORPSE);
+ //ASSERT(!IsInWorld());
+ ASSERT(!m_currMap);
m_currMap = map;
+ if(m_isWorldObject)
+ m_currMap->AddWorldObject(this);
}
void WorldObject::ResetMap()
{
ASSERT(m_currMap);
- ASSERT(!IsInWorld() || GetTypeId() == TYPEID_CORPSE);
+ //ASSERT(!IsInWorld() || GetTypeId() == TYPEID_CORPSE);
+ if(m_isWorldObject)
+ m_currMap->RemoveWorldObject(this);
m_currMap = NULL;
}