| 977 | |
| 978 | m_isActive = false; |
| 979 | } |
| 980 | |
| 981 | WorldObject::~WorldObject() |
| 982 | { |
| 983 | if(m_isActive && IsInWorld()) |
| 984 | ObjectAccessor::Instance().RemoveActiveObject(this); |
| 985 | } |
| 986 | |
| 987 | void WorldObject::setActive(bool isActive) |
| 988 | { |
| 989 | // if already in the same activity state as we try to set, do nothing |
| 990 | if(isActive == m_isActive) |
| 991 | return; |
| 992 | m_isActive = isActive; |
| 993 | if(IsInWorld()) |
| 994 | { |
| 995 | if(isActive) |
| 996 | ObjectAccessor::Instance().AddActiveObject(this); |
| 997 | else |
| 998 | ObjectAccessor::Instance().RemoveActiveObject(this); |
| 999 | } |
| 1000 | } |
| 1001 | |
| 1002 | void WorldObject::AddToWorld() |
| 1003 | { |
| 1004 | Object::AddToWorld(); |
| 1005 | if(m_isActive) |
| 1006 | ObjectAccessor::Instance().AddActiveObject(this); |
| 1007 | } |
| 1008 | |
| 1009 | void WorldObject::RemoveFromWorld() |
| 1010 | { |
| 1011 | if(m_isActive) |
| 1012 | ObjectAccessor::Instance().RemoveActiveObject(this); |
| 1013 | Object::RemoveFromWorld(); |