aboutsummaryrefslogtreecommitdiff
path: root/src/game/Object.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2008-11-21 15:41:18 -0600
committermegamage <none@none>2008-11-21 15:41:18 -0600
commite9d6f1b23a14ee50437b5949deca7ae97b388bb2 (patch)
tree37768b93ed2182cbad2634d6f7eec250374c6fb6 /src/game/Object.cpp
parent71707df1dec2aa77864d9a853c34108bb6021138 (diff)
*Move object update from objectaccessor to map
*Move activeobject list from objectaccessor to map *Open grid for all active creatures (previously only for possessed ones) --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();
}