[8819] remove objects if unit leaves map

prior this - the objects were only removed when
unit itself gots removed
this fix some crashes with Object::SetUint64

thx to juansalvador and vladimir :)
This commit is contained in:
balrok 2009-11-10 05:36:19 -05:00
parent 537562f29f
commit 35d64c8d62
2 changed files with 9 additions and 7 deletions

View file

@ -169,10 +169,12 @@ Unit::~Unit()
}
}
RemoveAllGameObjects();
RemoveAllDynObjects();
if (m_charmInfo)
delete m_charmInfo;
if(m_charmInfo) delete m_charmInfo;
// those should be already removed at "RemoveFromWorld()" call
assert(m_gameObj.size() == 0);
assert(m_dynObjGUIDs.size() == 0);
}
void Unit::Update( uint32 p_time )
@ -11102,6 +11104,8 @@ void Unit::RemoveFromWorld()
Uncharm();
RemoveNotOwnSingleTargetAuras();
RemoveGuardians();
RemoveAllGameObjects();
RemoveAllDynObjects();
}
Object::RemoveFromWorld();
@ -11118,8 +11122,6 @@ void Unit::CleanupsBeforeDelete()
DeleteThreatList();
getHostileRefManager().setOnlineOfflineState(false);
RemoveAllAuras(AURA_REMOVE_BY_DELETE);
RemoveAllGameObjects();
RemoveAllDynObjects();
GetMotionMaster()->Clear(false); // remove different non-standard movement generators.
}
WorldObject::CleanupsBeforeDelete();

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8818"
#define REVISION_NR "8819"
#endif // __REVISION_NR_H__