diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index 6527035e9..304011f56 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -130,6 +130,13 @@ namespace BlackMisc return m_remoteAircraftProvider->updateAircraftEnabled(callsign, enabledForRedering); } + CAircraftParts IRemoteAircraftProvider::getLatestAircraftParts(const CCallsign &callsign) const + { + static const CAircraftParts empty; + const CAircraftPartsList parts = this->remoteAircraftParts(callsign, -1); + return parts.isEmpty() ? empty : parts.latestObject(); + } + void IRemoteAircraftProvider::removeOutdatedParts(CAircraftPartsList &partsList) { // remove all outdated parts, but keep at least one diff --git a/src/blackmisc/simulation/remoteaircraftprovider.h b/src/blackmisc/simulation/remoteaircraftprovider.h index 7d9d69f7f..bffc16ddc 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.h +++ b/src/blackmisc/simulation/remoteaircraftprovider.h @@ -102,6 +102,10 @@ namespace BlackMisc //! \threadsafe virtual bool isRemoteAircraftSupportingParts(const BlackMisc::Aviation::CCallsign &callsign) const = 0; + //! Get the latest aircraft parts (if any, otherwise default) + //! \threadsafe + BlackMisc::Aviation::CAircraftParts getLatestAircraftParts(const BlackMisc::Aviation::CCallsign &callsign) const; + //! Number of aircraft supporting parts //! \threadsafe virtual int getRemoteAircraftSupportingPartsCount() const = 0;