aboutsummaryrefslogtreecommitdiff
path: root/src/game/Object.cpp
diff options
context:
space:
mode:
authorgvcoman <none@none>2008-11-21 19:16:19 -0500
committergvcoman <none@none>2008-11-21 19:16:19 -0500
commit9ceb36a5274611e576aa4c5bd4488b9b9bdf18cc (patch)
treeece878258f15fb5af52e5829e640734dee9c1df2 /src/game/Object.cpp
parent1bd37790b564be487ed16ae897484a4d8c80a2de (diff)
parentb2ba78e57a7c1895d1bacf950a3705eedd01c256 (diff)
Merge with 273 (aab191f73e46).
--HG-- branch : trunk
Diffstat (limited to 'src/game/Object.cpp')
-rw-r--r--src/game/Object.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index ea59a448f7f..cc754f32bd3 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -990,36 +990,37 @@ WorldObject::WorldObject()
WorldObject::~WorldObject()
{
- if(m_isActive && IsInWorld())
- ObjectAccessor::Instance().RemoveActiveObject(this);
+ if(m_isActive && !isType(TYPEMASK_PLAYER) && IsInWorld())
+ GetMap()->RemoveActiveObject(this);
}
void WorldObject::setActive(bool isActive)
{
// if already in the same activity state as we try to set, do nothing
- if(isActive == m_isActive)
+ if(isActive == m_isActive || isType(TYPEMASK_PLAYER))
return;
+
m_isActive = isActive;
if(IsInWorld())
{
if(isActive)
- ObjectAccessor::Instance().AddActiveObject(this);
+ GetMap()->AddActiveObject(this);
else
- ObjectAccessor::Instance().RemoveActiveObject(this);
+ GetMap()->RemoveActiveObject(this);
}
}
void WorldObject::AddToWorld()
{
Object::AddToWorld();
- if(m_isActive)
- ObjectAccessor::Instance().AddActiveObject(this);
+ if(m_isActive && !isType(TYPEMASK_PLAYER))
+ GetMap()->AddActiveObject(this);
}
void WorldObject::RemoveFromWorld()
{
- if(m_isActive)
- ObjectAccessor::Instance().RemoveActiveObject(this);
+ if(m_isActive && !isType(TYPEMASK_PLAYER))
+ GetMap()->RemoveActiveObject(this);
Object::RemoveFromWorld();
}