void MapCell::SetActivity(bool state) { if(!_active && state) { // Move all objects to active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); ++itr) { if(!(*itr)->Active && (*itr)->CanActivate()) (*itr)->Activate(_mapmgr); } if(_unloadpending) CancelPendingUnload(); if (_mapmgr->IsCollisionEnabled()) CollideInterface.ActivateTile(_mapmgr->GetMapId(), _x/8, _y/8); } else if(_active && !state) { // Move all objects from active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); ++itr) { if((*itr)->Active) (*itr)->Deactivate(_mapmgr); } if(sWorld.map_unload_time && !_unloadpending) QueueUnloadPending(); if (_mapmgr->IsCollisionEnabled()) CollideInterface.DeactivateTile(_mapmgr->GetMapId(), _x/8, _y/8); } _active = state; }
void MapCell::SetActivity(bool state) { if(!_active && state) { // Move all objects to active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); ++itr) { if(!(*itr)->Active && (*itr)->CanActivate()) (*itr)->Activate(_mapmgr); } if(_unloadpending) CancelPendingUnload(); } else if(_active && !state) { // Move all objects from active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); ++itr) { if((*itr)->Active) (*itr)->Deactivate(_mapmgr); } if(sWorld.map_unload_time && !_unloadpending) QueueUnloadPending(); } _active = state; }
void MapCell::SetActivity(bool state) { uint32 x, y; x = _x/8; y = _y/8; if(!_active && state) { // Move all objects to active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); itr++) { if(!(*itr)->Active && (*itr)->CanActivate()) (*itr)->Activate(_mapmgr); } if(_unloadpending) CancelPendingUnload(); if (_mapmgr->IsCollisionEnabled()) { CollideInterface.ActivateTile(_mapmgr->GetMapId(), x, y); if(sWorld.PathFinding) NavMeshInterface.LoadNavMesh(_mapmgr->GetMapId(), x, y); } } else if(_active && !state) { // Move all objects from active set. for(ObjectSet::iterator itr = _objects.begin(); itr != _objects.end(); itr++) { if((*itr)->Active) (*itr)->Deactivate(_mapmgr); } if(!_unloadpending) QueueUnloadPending(); if (_mapmgr->IsCollisionEnabled()) { CollideInterface.DeactivateTile(_mapmgr->GetMapId(), x, y); if(sWorld.PathFinding) NavMeshInterface.UnloadNavMesh(_mapmgr->GetMapId(), x, y); } } _active = state; }