diff options
Diffstat (limited to 'src/game/Object.cpp')
| -rw-r--r-- | src/game/Object.cpp | 28 | 
1 files changed, 15 insertions, 13 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 23db2319cf9..7966a79a84e 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -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(); +    m_isActive = on; -    Map* map; -    if(world) -    { -        map = GetMap(); -        if(GetTypeId() == TYPEID_UNIT) -            map->RemoveFromActive((Creature*)this); -        else if(GetTypeId() == TYPEID_DYNAMICOBJECT) -            map->RemoveFromActive((DynamicObject*)this); -    } +    if(!IsInWorld()) +        return; -    m_isActive = on; +    Map *map = FindMap(); +    if(!map) +        return; -    if(world) +    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 )  | 
