diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index 973d6cf50..dc9fbab46 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -286,7 +286,7 @@ namespace BlackSimPlugin void CSimulatorFs9::displayTextMessage(const CTextMessage &message) const { - this->displayStatusMessage(message.asStatusMessage(true, true)); + QMetaObject::invokeMethod(m_fs9Host.data(), "sendTextMessage", Q_ARG(QString, message.asString(true, true))); } CStatusMessageList CSimulatorFs9::getInterpolationMessages(const CCallsign &callsign) const diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 274106679..fd5d4b3b9 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -263,7 +263,16 @@ namespace BlackSimPlugin void CSimulatorFsxCommon::displayTextMessage(const CTextMessage &message) const { - this->displayStatusMessage(message.asStatusMessage(true, true)); + QByteArray m = message.asString(true, true).toLatin1().constData(); + m.append('\0'); + + SIMCONNECT_TEXT_TYPE type = SIMCONNECT_TEXT_TYPE_PRINT_BLACK; + if (message.isSupervisorMessage()) { type = SIMCONNECT_TEXT_TYPE_PRINT_RED; } + else if (message.isPrivateMessage()) { type = SIMCONNECT_TEXT_TYPE_PRINT_YELLOW; } + else if (message.isRadioMessage()) { type = SIMCONNECT_TEXT_TYPE_PRINT_GREEN; } + + const HRESULT hr = SimConnect_Text(m_hSimConnect, type, 7.5, EventTextMessage, static_cast(m.size()), m.data()); + Q_UNUSED(hr); } bool CSimulatorFsxCommon::isPhysicallyRenderedAircraft(const CCallsign &callsign) const