long MoverGroup::setPoint (MoverPtr mover) { if (isMember(mover)) { #ifdef USE_IFACE if (pointHandle) theInterface->setPoint(pointHandle, false); #endif pointWID = mover->getWatchID(); #ifdef USE_IFACE theInterface->setPoint(mover->getPartId(), true); #endif } return(NO_ERR); }
SensorSystemPtr TeamSensorSystem::findBestSpotter (MoverPtr contact, long* status) { ContactInfoPtr contactInfo = contact->getContactInfo(); if (!contactInfo) { char s[256]; sprintf(s, "TeamSensorSystem.findBestSpotter: NULL contactInfo for objClass %d partID %d team %d", contact->getObjectClass(), contact->getPartId(), contact->getTeamId()); STOP((s)); } SensorSystemPtr bestSensor = NULL; long bestStatus = CONTACT_NONE; for (long i = 0; i < MAX_SENSORS; i++) if (contactInfo->sensors[i] != 255) { SensorSystemPtr sensor = SensorManager->getSensor(i); if (sensor && sensor->owner && (teamId == sensor->owner->getTeamId())) { long status = sensor->calcContactStatus(contact); if (status >= bestStatus) { bestSensor = sensor; bestStatus = status; } } } if (status) *status = bestStatus; return(bestSensor); }