*Merge.
--HG-- branch : trunk
This commit is contained in:
@@ -155,12 +155,16 @@ m_creatureInfo(NULL), m_reactState(REACT_AGGRESSIVE), m_formationID(0), m_summon
|
||||
|
||||
Creature::~Creature()
|
||||
{
|
||||
CleanupsBeforeDelete();
|
||||
|
||||
m_vendorItemCounts.clear();
|
||||
|
||||
delete i_AI;
|
||||
i_AI = NULL;
|
||||
if(i_AI)
|
||||
{
|
||||
delete i_AI;
|
||||
i_AI = NULL;
|
||||
}
|
||||
|
||||
if(m_uint32Values)
|
||||
sLog.outDetail("Deconstruct Creature Entry = %u", GetEntry());
|
||||
}
|
||||
|
||||
void Creature::AddToWorld()
|
||||
|
||||
@@ -41,15 +41,21 @@ DynamicObject::DynamicObject() : WorldObject()
|
||||
void DynamicObject::AddToWorld()
|
||||
{
|
||||
///- Register the dynamicObject for guid lookup
|
||||
if(!IsInWorld()) ObjectAccessor::Instance().AddObject(this);
|
||||
WorldObject::AddToWorld();
|
||||
if(!IsInWorld())
|
||||
{
|
||||
ObjectAccessor::Instance().AddObject(this);
|
||||
WorldObject::AddToWorld();
|
||||
}
|
||||
}
|
||||
|
||||
void DynamicObject::RemoveFromWorld()
|
||||
{
|
||||
///- Remove the dynamicObject from the accessor
|
||||
if(IsInWorld()) ObjectAccessor::Instance().RemoveObject(this);
|
||||
WorldObject::RemoveFromWorld();
|
||||
if(IsInWorld())
|
||||
{
|
||||
ObjectAccessor::Instance().RemoveObject(this);
|
||||
WorldObject::RemoveFromWorld();
|
||||
}
|
||||
}
|
||||
|
||||
bool DynamicObject::Create( uint32 guidlow, Unit *caster, uint32 spellId, uint32 effIndex, float x, float y, float z, int32 duration, float radius )
|
||||
|
||||
+10
-4
@@ -81,15 +81,21 @@ GameObject::~GameObject()
|
||||
void GameObject::AddToWorld()
|
||||
{
|
||||
///- Register the gameobject for guid lookup
|
||||
if(!IsInWorld()) ObjectAccessor::Instance().AddObject(this);
|
||||
WorldObject::AddToWorld();
|
||||
if(!IsInWorld())
|
||||
{
|
||||
ObjectAccessor::Instance().AddObject(this);
|
||||
WorldObject::AddToWorld();
|
||||
}
|
||||
}
|
||||
|
||||
void GameObject::RemoveFromWorld()
|
||||
{
|
||||
///- Remove the gameobject from the accessor
|
||||
if(IsInWorld()) ObjectAccessor::Instance().RemoveObject(this);
|
||||
WorldObject::RemoveFromWorld();
|
||||
if(IsInWorld())
|
||||
{
|
||||
ObjectAccessor::Instance().RemoveObject(this);
|
||||
WorldObject::RemoveFromWorld();
|
||||
}
|
||||
}
|
||||
|
||||
bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMask, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 animprogress, uint32 go_state, uint32 ArtKit)
|
||||
|
||||
@@ -140,6 +140,9 @@ class TRINITY_DLL_SPEC Object
|
||||
}
|
||||
virtual void RemoveFromWorld()
|
||||
{
|
||||
if(!m_inWorld)
|
||||
return;
|
||||
|
||||
// if we remove from world then sending changes not required
|
||||
if(m_uint32Values)
|
||||
ClearUpdateMask(true);
|
||||
|
||||
@@ -284,6 +284,7 @@ ObjectGridUnloader::Visit(CreatureMapType &m)
|
||||
if(!sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
|
||||
obj->SaveRespawnTime();
|
||||
///- object will get delinked from the manager when deleted
|
||||
obj->CleanupsBeforeDelete();
|
||||
delete obj;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ Pet::~Pet()
|
||||
|
||||
void Pet::AddToWorld()
|
||||
{
|
||||
///- Register the pet for guid lookup
|
||||
if(!IsInWorld())
|
||||
{
|
||||
///- Register the pet for guid lookup
|
||||
@@ -82,6 +83,7 @@ void Pet::AddToWorld()
|
||||
|
||||
void Pet::RemoveFromWorld()
|
||||
{
|
||||
///- Remove the pet from the accessor
|
||||
if(IsInWorld())
|
||||
{
|
||||
///- Remove the pet from the accessor
|
||||
|
||||
+1
-18
@@ -187,22 +187,6 @@ Unit::~Unit()
|
||||
RemoveAllDynObjects();
|
||||
|
||||
if(m_charmInfo) delete m_charmInfo;
|
||||
|
||||
if(m_uint32Values)
|
||||
{
|
||||
sLog.outDetail("Deconstruct Unit Entry = %u", GetEntry());
|
||||
/*for(int i = 0; i < TOTAL_AURAS; ++i)
|
||||
{
|
||||
if(m_modAuras[i].begin() != m_modAuras[i].end())
|
||||
sLog.outError("Unit %u has mod auras during deconstruction", GetEntry());
|
||||
}
|
||||
if(m_scAuras.begin() != m_scAuras.end())
|
||||
sLog.outError("Unit %u has sc auras during deconstruction", GetEntry());
|
||||
if(m_interruptableAuras.begin() != m_interruptableAuras.end())
|
||||
sLog.outError("Unit %u has interruptable auras during deconstruction", GetEntry());
|
||||
if(m_ccAuras.begin() != m_ccAuras.end())
|
||||
sLog.outError("Unit %u has cc auras during deconstruction", GetEntry());*/
|
||||
}
|
||||
}
|
||||
|
||||
void Unit::Update( uint32 p_time )
|
||||
@@ -11309,9 +11293,8 @@ void Unit::RemoveFromWorld()
|
||||
sLog.outError("Unit %u has charmer guid when removed from world", GetEntry());
|
||||
if(GetOwnerGUID());
|
||||
sLog.outError("Unit %u has owner guid when removed from world", GetEntry());*/
|
||||
WorldObject::RemoveFromWorld();
|
||||
}
|
||||
|
||||
WorldObject::RemoveFromWorld();
|
||||
}
|
||||
|
||||
void Unit::CleanupsBeforeDelete()
|
||||
|
||||
Reference in New Issue
Block a user