From 3fc0f3464621b682f7c8a8ce2038b2f3047a6b9a Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 27 Oct 2018 02:11:24 +0200 Subject: [PATCH] Ref T409, network vatlib, remove "colon"/send special string if there is no model string --- src/blackcore/vatsim/networkvatlib.cpp | 26 +++++++++++++++----------- src/blackcore/vatsim/networkvatlib.h | 11 +++++++++++ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/blackcore/vatsim/networkvatlib.cpp b/src/blackcore/vatsim/networkvatlib.cpp index 53de030f7..ef7c70564 100644 --- a/src/blackcore/vatsim/networkvatlib.cpp +++ b/src/blackcore/vatsim/networkvatlib.cpp @@ -469,9 +469,9 @@ namespace BlackCore void CNetworkVatlib::presetIcaoCodes(const CSimulatedAircraft &ownAircraft) { Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change ICAO codes while still connected"); - m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode(); - m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode(); - m_ownLiveryDescription = ownAircraft.getLivery().getDescription(); + m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode(); + m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode(); + m_ownLiveryDescription = removeColon(ownAircraft.getModel().getSwiftLiveryString()); updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode); } @@ -740,9 +740,9 @@ namespace BlackCore void CNetworkVatlib::sendAircraftInfo(const CCallsign &callsign) // private { - const QByteArray acTypeICAObytes = toFSD(m_ownAircraftIcaoCode.getDesignator()); - const QByteArray airlineICAObytes = toFSD(m_ownAirlineIcaoCode.getDesignator()); - const QByteArray liverybytes = toFSD(m_ownLiveryDescription); + const QByteArray acTypeICAObytes = toFSDnoColon(m_ownAircraftIcaoCode.getDesignator()); + const QByteArray airlineICAObytes = toFSDnoColon(m_ownAirlineIcaoCode.getDesignator()); + const QByteArray liverybytes = toFSDnoColon(m_ownLiveryDescription); VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes}; Vat_SendAircraftInfo(m_net.data(), toFSD(callsign), &aircraftInfo); @@ -822,15 +822,13 @@ namespace BlackCore { Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected"); const CSimulatedAircraft myAircraft(getOwnAircraft()); - QString modelString = myAircraft.getModel().getModelString(); - if (modelString.isEmpty()) { modelString = defaultModelString(); } - + const QString modelString = myAircraft.hasModelString() ? myAircraft.getModelString() : noModelString(); const QStringList data { { "0" }, myAircraft.getAirlineIcaoCodeDesignator(), myAircraft.getAircraftIcaoCodeDesignator(), { "" }, { "" }, { "" }, { "" }, myAircraft.getAircraftIcaoCombinedType(), - modelString + removeColon(modelString) }; sendCustomPacket(callsign, "FSIPIR", data); } @@ -846,7 +844,7 @@ namespace BlackCore data[1] = myAircraft.getAirlineIcaoCodeDesignator(); data[2] = myAircraft.getAircraftIcaoCodeDesignator(); data[7] = myAircraft.getAircraftIcaoCombinedType(); - data[8] = myAircraft.hasModelString() ? myAircraft.getModel().getModelString() : defaultModelString(); + data[8] = removeColon(myAircraft.hasModelString() ? myAircraft.getModelString() : noModelString()); this->sendCustomPacket(callsign, "FSIPI", data); } @@ -1326,6 +1324,12 @@ namespace BlackCore return this->averageOffsetTimeMs(callsign, maxLastValues, count); } + QString CNetworkVatlib::removeColon(const QString &candidate) + { + QString r = candidate; + return r.remove(':'); + } + void CNetworkVatlib::onInfoQueryRequestReceived(VatFsdClient *, const char *callsignString, VatClientQueryType type, const char *, void *cbvar) { QPointer self(cbvar_cast(cbvar)); diff --git a/src/blackcore/vatsim/networkvatlib.h b/src/blackcore/vatsim/networkvatlib.h index 64c2e6dda..c21eeaed9 100644 --- a/src/blackcore/vatsim/networkvatlib.h +++ b/src/blackcore/vatsim/networkvatlib.h @@ -192,12 +192,20 @@ namespace BlackCore static void networkLogHandler(VatSeverityLevel severity, const char *context, const char *message); void sendCustomPacket(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data); + //! Default model string static const QString &defaultModelString() { static const QString dm("Cessna Skyhawk 172SP"); return dm; } + //! Send if no model string is available + static const QString &noModelString() + { + static const QString noms("swift empty string"); + return noms; + } + struct JsonPackets { static const QJsonObject &aircraftConfigRequest(); @@ -246,6 +254,9 @@ namespace BlackCore //! Average offset time in ms qint64 averageOffsetTimeMs(const BlackMisc::Aviation::CCallsign &callsign, int maxLastValues = MaxOffseTimes) const; + //! Remove colon + static QString removeColon(const QString &candidate); + //! Deletion policy for QScopedPointer struct VatFsdClientDeleter {