diff options
author | gvcoman <none@none> | 2008-11-21 19:16:19 -0500 |
---|---|---|
committer | gvcoman <none@none> | 2008-11-21 19:16:19 -0500 |
commit | 9ceb36a5274611e576aa4c5bd4488b9b9bdf18cc (patch) | |
tree | ece878258f15fb5af52e5829e640734dee9c1df2 /src/game/Object.cpp | |
parent | 1bd37790b564be487ed16ae897484a4d8c80a2de (diff) | |
parent | b2ba78e57a7c1895d1bacf950a3705eedd01c256 (diff) |
Merge with 273 (aab191f73e46).
--HG--
branch : trunk
Diffstat (limited to 'src/game/Object.cpp')
-rw-r--r-- | src/game/Object.cpp | 19 |
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(); } |