TrLadOcc::TrLadOcc(int hwid, float* median, float* deviation, float* occupancy) { Clear(); SetHwId(hwid); SetMedian(median); SetDeviation(deviation); SetOccupancy(occupancy); }
bool TrLadOcc::LinearToOccDB(float* offset) { if (!offset) return false; SetHwId((int)offset[0]); SetMedian(offset+1); SetDeviation(offset+1+2); SetOccupancy(offset+1+2+2); return true; }
//This should only be called from the ChangeCluster() callback. void CFSShip::SetCluster(IclusterIGC * pcluster, bool bViewOnly) { if (pcluster) { IshipIGC* pshipParent = m_pShip->GetParentShip(); if ((pshipParent == NULL) && !bViewOnly) { //Everyone already in the sector now knows about the player's ship //(assuming the player is not in a turret) QueueLoadoutChange(); BEGIN_PFM_CREATE(g.fm, pfmSSU, S, SINGLE_SHIP_UPDATE) END_PFM_CREATE m_pShip->ExportShipUpdate(&(pfmSSU->shipupdate)); { ImodelIGC* pmodelTarget = m_pShip->GetCommandTarget(c_cmdCurrent); if (pmodelTarget) { pfmSSU->otTarget = pmodelTarget->GetObjectType(); pfmSSU->oidTarget = pmodelTarget->GetObjectID(); } else { pfmSSU->otTarget = NA; pfmSSU->oidTarget = NA; } } pfmSSU->bIsRipcording = m_pShip->fRipcordActive(); g.fm.SendMessages(GetGroupSectorFlying(pcluster), FM_GUARANTEED, FM_FLUSH); SetDeviation(0.0f); } // if this is a drone that has arrived in a sector to which it was told // to go, clear its objective. if (!IsPlayer()) { for (Command i = 0; i < c_cmdMax; i++) { ImodelIGC* ptarget = m_pShip->GetCommandTarget(i); // if this command has a cluster buoy in this cluster... if (ptarget && ptarget->GetObjectType() == OT_buoy && ((IbuoyIGC*)ptarget)->GetBuoyType() == c_buoyCluster && ((IbuoyIGC*)ptarget)->GetCluster() == pcluster) { // clear the command m_pShip->SetCommand(i, NULL, c_cidNone); } } } } }