mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
*Fix a crash caused by active object.
--HG-- branch : trunk
This commit is contained in:
@@ -1080,33 +1080,35 @@ void WorldObject::SetWorldObject(bool on)
|
||||
|
||||
void WorldObject::setActive( bool on )
|
||||
{
|
||||
if(m_isActive==on)
|
||||
if(m_isActive == on)
|
||||
return;
|
||||
|
||||
if(GetTypeId() == TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
bool world = IsInWorld();
|
||||
|
||||
Map* map;
|
||||
if(world)
|
||||
{
|
||||
map = GetMap();
|
||||
if(GetTypeId() == TYPEID_UNIT)
|
||||
map->RemoveFromActive((Creature*)this);
|
||||
else if(GetTypeId() == TYPEID_DYNAMICOBJECT)
|
||||
map->RemoveFromActive((DynamicObject*)this);
|
||||
}
|
||||
|
||||
m_isActive = on;
|
||||
|
||||
if(world)
|
||||
if(!IsInWorld())
|
||||
return;
|
||||
|
||||
Map *map = FindMap();
|
||||
if(!map)
|
||||
return;
|
||||
|
||||
if(on)
|
||||
{
|
||||
if(GetTypeId() == TYPEID_UNIT)
|
||||
map->AddToActive((Creature*)this);
|
||||
else if(GetTypeId() == TYPEID_DYNAMICOBJECT)
|
||||
map->AddToActive((DynamicObject*)this);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GetTypeId() == TYPEID_UNIT)
|
||||
map->RemoveFromActive((Creature*)this);
|
||||
else if(GetTypeId() == TYPEID_DYNAMICOBJECT)
|
||||
map->RemoveFromActive((DynamicObject*)this);
|
||||
}
|
||||
}
|
||||
|
||||
void WorldObject::_Create( uint32 guidlow, HighGuid guidhigh, uint32 mapid )
|
||||
|
||||
Reference in New Issue
Block a user