From e0594271f1d49ee07324370e9cca1517594c3af6 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 30 Sep 2018 23:28:35 +0200 Subject: [PATCH] Ref T379, use own "toFsxChar" conversion so we can adjust it --- .../simulator/fsxcommon/simulatorfsxcommon.cpp | 15 +++++++++++---- .../simulator/fsxcommon/simulatorfsxcommon.h | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index c4fc3ad8e..637c70a1c 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -1409,10 +1409,11 @@ namespace BlackSimPlugin const QString modelString(newRemoteAircraft.getModelString()); if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' model: '%2' request: %3, init pos: %4").arg(callsign.toQString(), modelString).arg(requestId).arg(fsxPositionToString(initialPosition))); } + const QByteArray modelStringBa = toFsxChar(modelString); + const QByteArray csBa = toFsxChar(callsign.toQString().left(12)); const HRESULT hr = probe ? - SimConnect_AICreateSimulatedObject(m_hSimConnect, qPrintable(modelString), initialPosition, requestId) : - SimConnect_AICreateNonATCAircraft(m_hSimConnect, qPrintable(modelString), qPrintable(callsign.toQString().left(12)), initialPosition, requestId); - // const HRESULT hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, qPrintable(modelString), qPrintable(callsign.toQString().left(12)), initialPosition, requestId); + SimConnect_AICreateSimulatedObject(m_hSimConnect, modelStringBa.constData(), initialPosition, requestId) : + SimConnect_AICreateNonATCAircraft(m_hSimConnect, modelStringBa.constData(), csBa.constData(), initialPosition, requestId); if (isFailure(hr)) { @@ -1987,9 +1988,10 @@ namespace BlackSimPlugin auto glob = weatherGrid.frontOrDefault(); glob.setIdentifier("GLOB"); const QString metar = CSimConnectUtilities::convertToSimConnectMetar(glob); + const QByteArray metarBa = toFsxChar(metar); SimConnect_WeatherSetModeCustom(m_hSimConnect); SimConnect_WeatherSetModeGlobal(m_hSimConnect); - SimConnect_WeatherSetObservation(m_hSimConnect, 0, qPrintable(metar)); + SimConnect_WeatherSetObservation(m_hSimConnect, 0, metarBa.constData()); } bool CSimulatorFsxCommon::requestPositionDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period) @@ -2194,6 +2196,11 @@ namespace BlackSimPlugin return hr; } + QByteArray CSimulatorFsxCommon::toFsxChar(const QString &string) + { + return string.toLatin1(); + } + TraceFsxSendId CSimulatorFsxCommon::getSendIdTrace(DWORD sendId) const { for (const TraceFsxSendId &trace : m_sendIdTraces) diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index db0bae504..c7d9824c7 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -260,6 +260,9 @@ namespace BlackSimPlugin //! Trace if required, log errors HRESULT logAndTraceSendId(HRESULT hr, bool traceSendId, const CSimConnectObject &simObject, const QString &warningMsg, const QString &functionName, const QString &functionDetails = {}); + //! Convert to FSX char array + static QByteArray toFsxChar(const QString &string); + //! Register help static void registerHelp();