aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Object.cpp28
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 )