mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
Ref T372, updateAircraftInRangeDistanceBearing with null check
This commit is contained in:
@@ -80,7 +80,7 @@ namespace BlackMisc
|
||||
|
||||
CAircraftSituation CRemoteAircraftProvider::remoteAircraftSituation(const CCallsign &callsign, int index) const
|
||||
{
|
||||
CAircraftSituationList situations = this->remoteAircraftSituations(callsign);
|
||||
const CAircraftSituationList situations = this->remoteAircraftSituations(callsign);
|
||||
if (index < 0 || index >= situations.size()) { return CAircraftSituation::null(); }
|
||||
return situations[index];
|
||||
}
|
||||
@@ -237,6 +237,20 @@ namespace BlackMisc
|
||||
return c;
|
||||
}
|
||||
|
||||
bool CRemoteAircraftProvider::updateAircraftInRangeDistanceBearing(const CCallsign &callsign, const CAircraftSituation &situation, const CLength &distance, const CAngle &bearing)
|
||||
{
|
||||
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Missing callsign");
|
||||
{
|
||||
QWriteLocker l(&m_lockAircraft);
|
||||
if (!m_aircraftInRange.contains(callsign)) { return false; }
|
||||
CSimulatedAircraft &aircraft = m_aircraftInRange[callsign];
|
||||
aircraft.setSituation(situation);
|
||||
if (!bearing.isNull()) { aircraft.setRelativeBearing(bearing); }
|
||||
if (!distance.isNull()) { aircraft.setRelativeDistance(distance); }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CAircraftSituation CRemoteAircraftProvider::storeAircraftSituation(const CAircraftSituation &situation, bool allowTestOffset)
|
||||
{
|
||||
const CCallsign cs = situation.getCallsign();
|
||||
|
||||
Reference in New Issue
Block a user