Changeset 281 for trunk/src/game/Object.cpp
- Timestamp:
- 11/22/08 00:36:29 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/Object.cpp
r272 r281 991 991 WorldObject::~WorldObject() 992 992 { 993 if(m_isActive && IsInWorld())994 ObjectAccessor::Instance().RemoveActiveObject(this);993 if(m_isActive && !isType(TYPEMASK_PLAYER) && IsInWorld()) 994 GetMap()->RemoveActiveObject(this); 995 995 } 996 996 … … 998 998 { 999 999 // if already in the same activity state as we try to set, do nothing 1000 if(isActive == m_isActive )1000 if(isActive == m_isActive || isType(TYPEMASK_PLAYER)) 1001 1001 return; 1002 1002 1003 m_isActive = isActive; 1003 1004 if(IsInWorld()) 1004 1005 { 1005 1006 if(isActive) 1006 ObjectAccessor::Instance().AddActiveObject(this);1007 GetMap()->AddActiveObject(this); 1007 1008 else 1008 ObjectAccessor::Instance().RemoveActiveObject(this);1009 GetMap()->RemoveActiveObject(this); 1009 1010 } 1010 1011 } … … 1013 1014 { 1014 1015 Object::AddToWorld(); 1015 if(m_isActive )1016 ObjectAccessor::Instance().AddActiveObject(this);1016 if(m_isActive && !isType(TYPEMASK_PLAYER)) 1017 GetMap()->AddActiveObject(this); 1017 1018 } 1018 1019 1019 1020 void WorldObject::RemoveFromWorld() 1020 1021 { 1021 if(m_isActive )1022 ObjectAccessor::Instance().RemoveActiveObject(this);1022 if(m_isActive && !isType(TYPEMASK_PLAYER)) 1023 GetMap()->RemoveActiveObject(this); 1023 1024 Object::RemoveFromWorld(); 1024 1025 }