mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 11:05:44 +08:00
Ref T659, network can use changed livery/modelstring, and/or not send at all
This commit is contained in:
committed by
Mat Sutcliffe
parent
2fb207c028
commit
4761f5f356
@@ -207,6 +207,12 @@ namespace BlackCore
|
|||||||
*/
|
*/
|
||||||
virtual void presetLoginMode(BlackCore::INetwork::LoginMode mode) = 0;
|
virtual void presetLoginMode(BlackCore::INetwork::LoginMode mode) = 0;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Set the model string and livery string before connecting.
|
||||||
|
* \pre Network must be disconnected when calling this function.
|
||||||
|
*/
|
||||||
|
virtual void presetLiveryAndModelString(const QString &livery, bool sendLiveryString, const QString &modelString, bool sendModelString) = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Set simulator info before connecting.
|
* Set simulator info before connecting.
|
||||||
* \pre Network must be disconnected when calling this function.
|
* \pre Network must be disconnected when calling this function.
|
||||||
|
|||||||
@@ -487,10 +487,22 @@ namespace BlackCore
|
|||||||
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change ICAO codes while still connected");
|
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change ICAO codes while still connected");
|
||||||
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
|
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
|
||||||
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
|
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
|
||||||
m_ownLiveryDescription = removeColon(ownAircraft.getModel().getSwiftLiveryString());
|
m_ownLivery = removeColon(ownAircraft.getModel().getSwiftLiveryString());
|
||||||
|
m_ownModelString = removeColon(ownAircraft.getModelString());
|
||||||
|
m_sendLiveryString = true;
|
||||||
|
m_sendMModelString = true;
|
||||||
|
|
||||||
updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode);
|
updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CNetworkVatlib::presetLiveryAndModelString(const QString &livery, bool sendLiveryString, const QString &modelString, bool sendModelString)
|
||||||
|
{
|
||||||
|
m_ownLivery = removeColon(livery);
|
||||||
|
m_ownModelString = removeColon(modelString);
|
||||||
|
m_sendLiveryString = sendLiveryString;
|
||||||
|
m_sendMModelString = sendModelString;
|
||||||
|
}
|
||||||
|
|
||||||
void CNetworkVatlib::presetLoginMode(LoginMode mode)
|
void CNetworkVatlib::presetLoginMode(LoginMode mode)
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change login mode while still connected");
|
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change login mode while still connected");
|
||||||
@@ -825,10 +837,10 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
const QString airlineIcao = m_server.getFsdSetup().force3LetterAirlineCodes() ? m_ownAirlineIcaoCode.getDesignator() : m_ownAirlineIcaoCode.getVDesignator();
|
const QString airlineIcao = m_server.getFsdSetup().force3LetterAirlineCodes() ? m_ownAirlineIcaoCode.getDesignator() : m_ownAirlineIcaoCode.getVDesignator();
|
||||||
const QByteArray acTypeICAObytes = toFSDnoColon(m_ownAircraftIcaoCode.getDesignator());
|
const QByteArray acTypeICAObytes = toFSDnoColon(m_ownAircraftIcaoCode.getDesignator());
|
||||||
const QByteArray liverybytes = toFSDnoColon(m_ownLiveryDescription);
|
const QByteArray liverybytes = toFSDnoColon(m_ownLivery);
|
||||||
const QByteArray airlineICAObytes = toFSDnoColon(airlineIcao);
|
const QByteArray airlineICAObytes = toFSDnoColon(airlineIcao);
|
||||||
|
|
||||||
VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes};
|
VatAircraftInfo aircraftInfo { acTypeICAObytes, airlineICAObytes, m_sendLiveryString ? liverybytes : QByteArray() };
|
||||||
Vat_SendAircraftInfo(m_net.data(), toFSD(callsign), &aircraftInfo);
|
Vat_SendAircraftInfo(m_net.data(), toFSD(callsign), &aircraftInfo);
|
||||||
|
|
||||||
// statistics
|
// statistics
|
||||||
@@ -915,15 +927,16 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected");
|
Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected");
|
||||||
const CSimulatedAircraft myAircraft(getOwnAircraft());
|
const CSimulatedAircraft myAircraft(getOwnAircraft());
|
||||||
const QString modelString = myAircraft.hasModelString() ? myAircraft.getModelString() : noModelString();
|
QString modelString = m_ownModelString.isEmpty() ? myAircraft.getModelString() : m_ownModelString;
|
||||||
|
if (modelString.isEmpty()) { modelString = noModelString(); }
|
||||||
const QStringList data { { "0" },
|
const QStringList data { { "0" },
|
||||||
myAircraft.getAirlineIcaoCodeDesignator(),
|
myAircraft.getAirlineIcaoCodeDesignator(),
|
||||||
myAircraft.getAircraftIcaoCodeDesignator(),
|
myAircraft.getAircraftIcaoCodeDesignator(),
|
||||||
{ "" }, { "" }, { "" }, { "" },
|
{ QString() }, { QString() }, { QString() }, { QString() },
|
||||||
myAircraft.getAircraftIcaoCombinedType(),
|
myAircraft.getAircraftIcaoCombinedType(),
|
||||||
removeColon(modelString)
|
m_sendMModelString ? removeColon(modelString) : QString()
|
||||||
};
|
};
|
||||||
sendCustomPacket(callsign, "FSIPIR", data);
|
sendCustomPacket(callsign, QStringLiteral("FSIPIR"), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CNetworkVatlib::sendCustomFsinnReponse(const CCallsign &callsign)
|
void CNetworkVatlib::sendCustomFsinnReponse(const CCallsign &callsign)
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ namespace BlackCore
|
|||||||
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
|
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
|
||||||
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
|
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||||
virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) override;
|
virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) override;
|
||||||
|
virtual void presetLiveryAndModelString(const QString &livery, bool sendLiveryString, const QString &modelString, bool sendModelString) override;
|
||||||
virtual void presetSimulatorInfo(const BlackMisc::Simulation::CSimulatorPluginInfo &simInfo) override;
|
virtual void presetSimulatorInfo(const BlackMisc::Simulation::CSimulatorPluginInfo &simInfo) override;
|
||||||
virtual void initiateConnection() override;
|
virtual void initiateConnection() override;
|
||||||
virtual void terminateConnection() override;
|
virtual void terminateConnection() override;
|
||||||
@@ -289,7 +290,10 @@ namespace BlackCore
|
|||||||
BlackMisc::Aviation::CCallsign m_ownCallsign; //!< "buffered callsign", as this must not change when connected
|
BlackMisc::Aviation::CCallsign m_ownCallsign; //!< "buffered callsign", as this must not change when connected
|
||||||
BlackMisc::Aviation::CAircraftIcaoCode m_ownAircraftIcaoCode; //!< "buffered icao", as this must not change when connected
|
BlackMisc::Aviation::CAircraftIcaoCode m_ownAircraftIcaoCode; //!< "buffered icao", as this must not change when connected
|
||||||
BlackMisc::Aviation::CAirlineIcaoCode m_ownAirlineIcaoCode; //!< "buffered icao", as this must not change when connected
|
BlackMisc::Aviation::CAirlineIcaoCode m_ownAirlineIcaoCode; //!< "buffered icao", as this must not change when connected
|
||||||
QString m_ownLiveryDescription; //!< "buffered livery", as this must not change when connected
|
QString m_ownLivery; //!< "buffered livery", as this must not change when connected
|
||||||
|
QString m_ownModelString; //!< "buffered model string", as this must not change when connected
|
||||||
|
bool m_sendLiveryString = true;
|
||||||
|
bool m_sendMModelString = true;
|
||||||
BlackMisc::Aviation::CCallsignSet m_interimPositionReceivers; //!< all aircraft receiving interim positions
|
BlackMisc::Aviation::CCallsignSet m_interimPositionReceivers; //!< all aircraft receiving interim positions
|
||||||
BlackMisc::Aviation::CAircraftParts m_sentAircraftConfig; //!< aircraft parts sent
|
BlackMisc::Aviation::CAircraftParts m_sentAircraftConfig; //!< aircraft parts sent
|
||||||
BlackMisc::CTokenBucket m_tokenBucket; //!< used with aircraft parts messages
|
BlackMisc::CTokenBucket m_tokenBucket; //!< used with aircraft parts messages
|
||||||
|
|||||||
Reference in New Issue
Block a user