mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +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;
|
||||
|
||||
/*!
|
||||
* 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.
|
||||
* \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");
|
||||
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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 QByteArray acTypeICAObytes = toFSDnoColon(m_ownAircraftIcaoCode.getDesignator());
|
||||
const QByteArray liverybytes = toFSDnoColon(m_ownLiveryDescription);
|
||||
const QByteArray liverybytes = toFSDnoColon(m_ownLivery);
|
||||
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);
|
||||
|
||||
// statistics
|
||||
@@ -915,15 +927,16 @@ namespace BlackCore
|
||||
{
|
||||
Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected");
|
||||
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" },
|
||||
myAircraft.getAirlineIcaoCodeDesignator(),
|
||||
myAircraft.getAircraftIcaoCodeDesignator(),
|
||||
{ "" }, { "" }, { "" }, { "" },
|
||||
{ QString() }, { QString() }, { QString() }, { QString() },
|
||||
myAircraft.getAircraftIcaoCombinedType(),
|
||||
removeColon(modelString)
|
||||
m_sendMModelString ? removeColon(modelString) : QString()
|
||||
};
|
||||
sendCustomPacket(callsign, "FSIPIR", data);
|
||||
sendCustomPacket(callsign, QStringLiteral("FSIPIR"), data);
|
||||
}
|
||||
|
||||
void CNetworkVatlib::sendCustomFsinnReponse(const CCallsign &callsign)
|
||||
|
||||
@@ -84,6 +84,7 @@ namespace BlackCore
|
||||
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
|
||||
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) 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 initiateConnection() 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::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
|
||||
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::CAircraftParts m_sentAircraftConfig; //!< aircraft parts sent
|
||||
BlackMisc::CTokenBucket m_tokenBucket; //!< used with aircraft parts messages
|
||||
|
||||
Reference in New Issue
Block a user