void ObserveTrackerNamespace::observeMissionCriticalObjects(Client &client, CreatureObject const &clientCreature)
{
	CreatureObject::MissionCriticalObjectSet const & missionCriticalObjects = clientCreature.getMissionCriticalObjects();
	for (CreatureObject::MissionCriticalObjectSet::const_iterator i = missionCriticalObjects.begin(); i != missionCriticalObjects.end(); ++i)
	{
		ServerObject * const obj = safe_cast<ServerObject *>(NetworkIdManager::getObjectById(*i));
		if (obj)
			IGNORE_RETURN(observe(client, *obj));
	}
}
void GroupMissionCriticalObjectsBuilderNamespace::buildGroupMissionCriticalObjects(CreatureObject const & creatureObject, CreatureObject::GroupMissionCriticalObjectSet & groupMissionCriticalObjects)
{
	CreatureObject::MissionCriticalObjectSet const & missionCriticalObjects = creatureObject.getMissionCriticalObjects();
	for (CreatureObject::MissionCriticalObjectSet::const_iterator missionCriticalObjectsIter = missionCriticalObjects.begin(); missionCriticalObjectsIter != missionCriticalObjects.end(); ++missionCriticalObjectsIter)
		groupMissionCriticalObjects.insert(std::make_pair(creatureObject.getNetworkId(), *missionCriticalObjectsIter));
}