bool Team::isCapturing(GameObjectWatchID targetWID, GameObjectWatchID exceptWID) { if(exceptWID) for(size_t i = 0; i < rosterSize; i++) { if(roster[i] == exceptWID) continue; MoverPtr mover = dynamic_cast<MoverPtr>(ObjectManager->getByWatchID(roster[i])); Assert(mover != nullptr, roster[i], " Team.isTargeting: nullptr mover "); MechWarriorPtr pilot = mover->getPilot(); if(pilot && (pilot->getCurTacOrder()->code == TACTICAL_ORDER_CAPTURE)) { GameObjectPtr target = pilot->getCurTacOrder()->getTarget(); if(target && (target->getWatchID() == targetWID)) return(true); } } else for(size_t i = 0; i < rosterSize; i++) { MoverPtr mover = dynamic_cast<MoverPtr>(ObjectManager->getByWatchID(roster[i])); Assert(mover != nullptr, roster[i], " Team.isTargeting: nullptr mover "); MechWarriorPtr pilot = mover->getPilot(); if(pilot && (pilot->getCurTacOrder()->code == TACTICAL_ORDER_CAPTURE)) { GameObjectPtr target = pilot->getCurTacOrder()->getTarget(); if(target && (target->getWatchID() == targetWID)) return(true); } } return(false); }