mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 20:40:29 +08:00
fix: error in physicallyAddRemoteAircraftImpl
This commit is contained in:
@@ -35,10 +35,13 @@ namespace swift::core::fsd
|
|||||||
|
|
||||||
PlaneInformationFsinn PlaneInformationFsinn::fromTokens(const QStringList &tokens)
|
PlaneInformationFsinn PlaneInformationFsinn::fromTokens(const QStringList &tokens)
|
||||||
{
|
{
|
||||||
if (tokens.size() != 12)
|
// TODO TZ
|
||||||
|
// in same cases we found 13 tokens
|
||||||
|
if (tokens.size() < 12)
|
||||||
{
|
{
|
||||||
swift::misc::CLogMessage(static_cast<PlaneInformationFsinn *>(nullptr))
|
swift::misc::CLogMessage(static_cast<PlaneInformationFsinn *>(nullptr))
|
||||||
.debug(u"Wrong number of arguments.");
|
.debug(u"PlaneInformationFsinn::fromTokens Wrong number of arguments %1.")
|
||||||
|
<< tokens.size();
|
||||||
return {};
|
return {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include "simconnectobjectmsfs2024.h"
|
#include "simconnectobjectmsfs2024.h"
|
||||||
|
|
||||||
|
#include <misc/logmessage.h>
|
||||||
|
|
||||||
#include "simulatormsfs2024common.h"
|
#include "simulatormsfs2024common.h"
|
||||||
|
|
||||||
#include "config/buildconfig.h"
|
#include "config/buildconfig.h"
|
||||||
@@ -395,10 +397,17 @@ namespace swift::simplugin::msfs2024common
|
|||||||
|
|
||||||
bool CSimConnectObjects::containsPendingAdded() const
|
bool CSimConnectObjects::containsPendingAdded() const
|
||||||
{
|
{
|
||||||
|
bool cont = false;
|
||||||
for (const CSimConnectObject &simObject : *this)
|
for (const CSimConnectObject &simObject : *this)
|
||||||
{
|
{
|
||||||
if (simObject.isPendingAdded()) { return true; }
|
if (simObject.isPendingAdded())
|
||||||
|
{
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"containsPendingAdded %1 ") << simObject.getCallsign();
|
||||||
|
cont = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (cont) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -663,6 +663,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
bool CSimulatorMsfs2024::testSendSituationAndParts(const CCallsign &callsign, const CAircraftSituation &situation,
|
bool CSimulatorMsfs2024::testSendSituationAndParts(const CCallsign &callsign, const CAircraftSituation &situation,
|
||||||
const CAircraftParts &parts)
|
const CAircraftParts &parts)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(situation);
|
||||||
if (!m_simConnectObjects.contains(callsign)) { return false; }
|
if (!m_simConnectObjects.contains(callsign)) { return false; }
|
||||||
CSimConnectObject simObject = m_simConnectObjects.value(callsign);
|
CSimConnectObject simObject = m_simConnectObjects.value(callsign);
|
||||||
int u = 0;
|
int u = 0;
|
||||||
@@ -1238,12 +1239,25 @@ namespace swift::simplugin::msfs2024common
|
|||||||
if (this->isShuttingDownOrDisconnected()) { return true; } // pretend everything is fine
|
if (this->isShuttingDownOrDisconnected()) { return true; } // pretend everything is fine
|
||||||
const CSimConnectObject simObject = m_simConnectObjects.getSimObjectForObjectId(objectId);
|
const CSimConnectObject simObject = m_simConnectObjects.getSimObjectForObjectId(objectId);
|
||||||
const CCallsign callsign(simObject.getCallsign());
|
const CCallsign callsign(simObject.getCallsign());
|
||||||
if (!simObject.hasValidRequestAndObjectId() || callsign.isEmpty()) { return false; }
|
|
||||||
|
CLogMessage(this).info(u"simulatorReportedObjectAdded 1 %1 %2 %3")
|
||||||
|
<< callsign.asString() << objectId << this->isSimulating();
|
||||||
|
|
||||||
|
if (!simObject.hasValidRequestAndObjectId() || callsign.isEmpty())
|
||||||
|
{
|
||||||
|
CLogMessage(this).error(u"simulatorReportedObjectAdded 1 %1 %2 %3")
|
||||||
|
<< callsign.asString() << objectId << this->isSimulating();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// we know the object has been created. But it can happen it is directly removed afterwards
|
// we know the object has been created. But it can happen it is directly removed afterwards
|
||||||
const CSimulatedAircraft verifyAircraft(simObject.getAircraft());
|
const CSimulatedAircraft verifyAircraft(simObject.getAircraft());
|
||||||
const QPointer<CSimulatorMsfs2024> myself(this);
|
const QPointer<CSimulatorMsfs2024> myself(this);
|
||||||
QTimer::singleShot(1000, this, [=] {
|
|
||||||
|
// TODO TZ check: Why 1000ms? Is this required in MSFS2024?
|
||||||
|
// QTimer::singleShot(1000, this, [=] {
|
||||||
|
QTimer::singleShot(100, this, [=] {
|
||||||
// verify aircraft and also triggers new add if required
|
// verify aircraft and also triggers new add if required
|
||||||
// do not do this in the event loop, so we do this deferred
|
// do not do this in the event loop, so we do this deferred
|
||||||
if (!myself || this->isShuttingDownOrDisconnected()) { return; }
|
if (!myself || this->isShuttingDownOrDisconnected()) { return; }
|
||||||
@@ -1256,6 +1270,8 @@ namespace swift::simplugin::msfs2024common
|
|||||||
{
|
{
|
||||||
if (this->isShuttingDownOrDisconnected()) { return; }
|
if (this->isShuttingDownOrDisconnected()) { return; }
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"verifyAddedRemoteAircraft 1 %1") << remoteAircraftIn.getCallsign();
|
||||||
|
|
||||||
CStatusMessage msg;
|
CStatusMessage msg;
|
||||||
CSimulatedAircraft remoteAircraft = remoteAircraftIn;
|
CSimulatedAircraft remoteAircraft = remoteAircraftIn;
|
||||||
const CCallsign callsign(remoteAircraft.getCallsign());
|
const CCallsign callsign(remoteAircraft.getCallsign());
|
||||||
@@ -1318,9 +1334,14 @@ namespace swift::simplugin::msfs2024common
|
|||||||
this->requestModelInfoForSimObject(simObject);
|
this->requestModelInfoForSimObject(simObject);
|
||||||
|
|
||||||
this->removeFromAddPendingAndAddAgainAircraft(callsign); // no longer try to add
|
this->removeFromAddPendingAndAddAgainAircraft(callsign); // no longer try to add
|
||||||
|
if (m_addPendingAircraft.contains(callsign))
|
||||||
|
{
|
||||||
|
CLogMessage(this).info(u"removeFromAddPendingAndAddAgainAircraft failed 1 %1") << callsign;
|
||||||
|
}
|
||||||
const bool updated = this->updateAircraftRendered(callsign, true);
|
const bool updated = this->updateAircraftRendered(callsign, true);
|
||||||
if (updated)
|
if (updated)
|
||||||
{
|
{
|
||||||
|
CLogMessage(this).info(u"updateAircraftRendered 1 %1") << callsign;
|
||||||
static const QString debugMsg("CS: '%1' model: '%2' verified, request/object id: %3 %4");
|
static const QString debugMsg("CS: '%1' model: '%2' verified, request/object id: %3 %4");
|
||||||
if (this->showDebugLogMessage())
|
if (this->showDebugLogMessage())
|
||||||
{
|
{
|
||||||
@@ -1490,9 +1511,13 @@ namespace swift::simplugin::msfs2024common
|
|||||||
|
|
||||||
void CSimulatorMsfs2024::addPendingAircraft(AircraftAddMode mode)
|
void CSimulatorMsfs2024::addPendingAircraft(AircraftAddMode mode)
|
||||||
{
|
{
|
||||||
if (m_addPendingAircraft.isEmpty()) { return; }
|
if (m_addPendingAircraft.isEmpty())
|
||||||
|
{
|
||||||
|
CLogMessage(this).warning(u"addPendingAircraft is Empty");
|
||||||
|
return;
|
||||||
|
}
|
||||||
const CCallsignSet aircraftCallsignsInRange(this->getAircraftInRangeCallsigns());
|
const CCallsignSet aircraftCallsignsInRange(this->getAircraftInRangeCallsigns());
|
||||||
CSimulatedAircraftList toBeAddedAircraft; // aircraft still to be added
|
// CSimulatedAircraftList toBeAddedAircraft; // aircraft still to be added
|
||||||
CCallsignSet toBeRemovedCallsigns;
|
CCallsignSet toBeRemovedCallsigns;
|
||||||
|
|
||||||
for (const CSimConnectObject &pendingSimObj : std::as_const(m_addPendingAircraft))
|
for (const CSimConnectObject &pendingSimObj : std::as_const(m_addPendingAircraft))
|
||||||
@@ -1503,11 +1528,12 @@ namespace swift::simplugin::msfs2024common
|
|||||||
}
|
}
|
||||||
|
|
||||||
// no longer required to be added
|
// no longer required to be added
|
||||||
m_addPendingAircraft.removeCallsigns(toBeRemovedCallsigns);
|
// TOTO TZ
|
||||||
|
// m_addPendingAircraft.removeCallsigns(toBeRemovedCallsigns);
|
||||||
m_addAgainAircraftWhenRemoved.removeByCallsigns(toBeRemovedCallsigns);
|
m_addAgainAircraftWhenRemoved.removeByCallsigns(toBeRemovedCallsigns);
|
||||||
|
|
||||||
// add aircraft, but "non blocking"
|
// add aircraft, but "non blocking"
|
||||||
if (!toBeAddedAircraft.isEmpty())
|
if (!m_addPendingAircraft.isEmpty())
|
||||||
{
|
{
|
||||||
const CSimConnectObject oldestSimObject = m_addPendingAircraft.getOldestObject();
|
const CSimConnectObject oldestSimObject = m_addPendingAircraft.getOldestObject();
|
||||||
const CSimulatedAircraft nextPendingAircraft = oldestSimObject.getAircraft();
|
const CSimulatedAircraft nextPendingAircraft = oldestSimObject.getAircraft();
|
||||||
@@ -1532,12 +1558,19 @@ namespace swift::simplugin::msfs2024common
|
|||||||
CSimConnectObject simObjectOld;
|
CSimConnectObject simObjectOld;
|
||||||
if (callsign.isEmpty()) { return simObjectOld; }
|
if (callsign.isEmpty()) { return simObjectOld; }
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"removeFromAddPendingAndAddAgainAircraft 1 %1") << callsign;
|
||||||
|
|
||||||
m_addAgainAircraftWhenRemoved.removeByCallsign(callsign);
|
m_addAgainAircraftWhenRemoved.removeByCallsign(callsign);
|
||||||
if (m_addPendingAircraft.contains(callsign))
|
if (m_addPendingAircraft.contains(callsign))
|
||||||
{
|
{
|
||||||
|
CLogMessage(this).info(
|
||||||
|
u"removeFromAddPendingAndAddAgainAircraft m_addPendingAircraft.contains(callsign) 2 %1")
|
||||||
|
<< callsign;
|
||||||
simObjectOld = m_addPendingAircraft[callsign];
|
simObjectOld = m_addPendingAircraft[callsign];
|
||||||
m_addPendingAircraft.remove(callsign);
|
m_addPendingAircraft.remove(callsign);
|
||||||
}
|
}
|
||||||
|
CLogMessage(this).info(u"removeFromAddPendingAndAddAgainAircraft 3 %1 m_addPendingAircraft.count: %2")
|
||||||
|
<< simObjectOld.getCallsignAsString() << m_addPendingAircraft.count();
|
||||||
return simObjectOld;
|
return simObjectOld;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1789,6 +1822,8 @@ namespace swift::simplugin::msfs2024common
|
|||||||
{
|
{
|
||||||
const CCallsign callsign(newRemoteAircraft.getCallsign());
|
const CCallsign callsign(newRemoteAircraft.getCallsign());
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"physicallyAddRemoteAircraftImpl %1") << callsign.asString();
|
||||||
|
|
||||||
// entry checks
|
// entry checks
|
||||||
Q_ASSERT_X(CThreadUtils::isInThisThread(this), Q_FUNC_INFO, "thread");
|
Q_ASSERT_X(CThreadUtils::isInThisThread(this), Q_FUNC_INFO, "thread");
|
||||||
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "empty callsign");
|
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "empty callsign");
|
||||||
@@ -1823,9 +1858,12 @@ namespace swift::simplugin::msfs2024common
|
|||||||
const bool hasPendingAdded = m_simConnectObjects.containsPendingAdded();
|
const bool hasPendingAdded = m_simConnectObjects.containsPendingAdded();
|
||||||
bool canAdd = this->isSimulating() && !hasPendingAdded;
|
bool canAdd = this->isSimulating() && !hasPendingAdded;
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"TEST 1 %1 %2 %3 %4")
|
||||||
|
<< callsign.asString() << canAdd << this->isSimulating() << hasPendingAdded;
|
||||||
|
|
||||||
Q_ASSERT_X(!hasPendingAdded || m_simConnectObjects.countPendingAdded() < 2, Q_FUNC_INFO,
|
Q_ASSERT_X(!hasPendingAdded || m_simConnectObjects.countPendingAdded() < 2, Q_FUNC_INFO,
|
||||||
"There must be only 0..1 pending objects");
|
"There must be only 0..1 pending objects");
|
||||||
if (this->showDebugLogMessage())
|
if (this->showDebugLogMessage() && true)
|
||||||
{
|
{
|
||||||
this->debugLogMessage(Q_FUNC_INFO, QStringLiteral("CS: '%1' mode: '%2' model: '%3'")
|
this->debugLogMessage(Q_FUNC_INFO, QStringLiteral("CS: '%1' mode: '%2' model: '%3'")
|
||||||
.arg(newRemoteAircraft.getCallsignAsString(), modeToString(addMode),
|
.arg(newRemoteAircraft.getCallsignAsString(), modeToString(addMode),
|
||||||
@@ -1841,6 +1879,8 @@ namespace swift::simplugin::msfs2024common
|
|||||||
// this handles changed model strings or an update of the model
|
// this handles changed model strings or an update of the model
|
||||||
if (m_simConnectObjects.contains(callsign))
|
if (m_simConnectObjects.contains(callsign))
|
||||||
{
|
{
|
||||||
|
CLogMessage(this).info(u"TEST 2 m_simConnectObjects.contains %1 ") << callsign.asString();
|
||||||
|
|
||||||
const CSimConnectObject simObject = m_simConnectObjects[callsign];
|
const CSimConnectObject simObject = m_simConnectObjects[callsign];
|
||||||
const QString newModelString(newRemoteAircraft.getModelString());
|
const QString newModelString(newRemoteAircraft.getModelString());
|
||||||
const QString simObjModelString(simObject.getAircraftModelString());
|
const QString simObjModelString(simObject.getAircraftModelString());
|
||||||
@@ -1876,6 +1916,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
CAircraftSituation situation(newRemoteAircraft.getSituation());
|
CAircraftSituation situation(newRemoteAircraft.getSituation());
|
||||||
if (canAdd && situation.isPositionOrAltitudeNull())
|
if (canAdd && situation.isPositionOrAltitudeNull())
|
||||||
{
|
{
|
||||||
|
CLogMessage(this).info(u"TEST 3 situation.isPositionOrAltitudeNull %1 ") << callsign.asString();
|
||||||
// invalid position because position or altitude is null
|
// invalid position because position or altitude is null
|
||||||
const CAircraftSituationList situations(this->remoteAircraftSituations(callsign));
|
const CAircraftSituationList situations(this->remoteAircraftSituations(callsign));
|
||||||
if (situations.isEmpty())
|
if (situations.isEmpty())
|
||||||
@@ -1901,11 +1942,15 @@ namespace swift::simplugin::msfs2024common
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check if we can add, do not add if simulator is stopped or other objects pending
|
// check if we can add, do not add if simulator is stopped or other objects pending
|
||||||
|
|
||||||
if (!canAdd)
|
if (!canAdd)
|
||||||
{
|
{
|
||||||
|
CLogMessage(this).info(u"TEST 4 !canAdd %1 ") << callsign.asString();
|
||||||
|
|
||||||
CSimConnectObject &addPendingObj = m_addPendingAircraft[newRemoteAircraft.getCallsign()];
|
CSimConnectObject &addPendingObj = m_addPendingAircraft[newRemoteAircraft.getCallsign()];
|
||||||
addPendingObj.setAircraft(newRemoteAircraft);
|
addPendingObj.setAircraft(newRemoteAircraft);
|
||||||
addPendingObj.resetTimestampToNow();
|
addPendingObj.resetTimestampToNow();
|
||||||
|
m_addPendingAircraft.insert(addPendingObj, true); // insert removed objects and update ts
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1920,6 +1965,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CLogMessage(this).info(u"TEST 5 CInterpolationAndRenderingSetupPerCallsign %1 ") << callsign.asString();
|
||||||
// setup
|
// setup
|
||||||
const CInterpolationAndRenderingSetupPerCallsign setup =
|
const CInterpolationAndRenderingSetupPerCallsign setup =
|
||||||
this->getInterpolationSetupConsolidated(callsign, true);
|
this->getInterpolationSetupConsolidated(callsign, true);
|
||||||
@@ -2355,16 +2401,18 @@ namespace swift::simplugin::msfs2024common
|
|||||||
|
|
||||||
// in case we sent, we sent everything
|
// in case we sent, we sent everything
|
||||||
const bool simObjectAircraftType = simObject.isAircraftSimulatedObject(); // no real aircraft type
|
const bool simObjectAircraftType = simObject.isAircraftSimulatedObject(); // no real aircraft type
|
||||||
const HRESULT hr1 =
|
const HRESULT hr1 = S_OK;
|
||||||
simObjectAircraftType ?
|
// TODO TZ re-enable if checked
|
||||||
S_OK :
|
// const HRESULT hr1 =
|
||||||
this->logAndTraceSendId(
|
// simObjectAircraftType ?
|
||||||
SimConnect_SetDataOnSimObject(
|
// S_OK :
|
||||||
m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPartsWithoutLights,
|
// this->logAndTraceSendId(
|
||||||
static_cast<SIMCONNECT_OBJECT_ID>(objectId), SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0,
|
// SimConnect_SetDataOnSimObject(
|
||||||
sizeof(DataDefinitionRemoteAircraftPartsWithoutLights), &ddRemoteAircraftPartsWithoutLights),
|
// m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPartsWithoutLights,
|
||||||
traceId, simObject, "Failed so set parts", Q_FUNC_INFO,
|
// static_cast<SIMCONNECT_OBJECT_ID>(objectId), SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0,
|
||||||
"SimConnect_SetDataOnSimObject::ddRemoteAircraftPartsWithoutLights");
|
// sizeof(DataDefinitionRemoteAircraftPartsWithoutLights), &ddRemoteAircraftPartsWithoutLights),
|
||||||
|
// traceId, simObject, "Failed so set parts", Q_FUNC_INFO,
|
||||||
|
// "SimConnect_SetDataOnSimObject::ddRemoteAircraftPartsWithoutLights");
|
||||||
|
|
||||||
// TODO TZ handle flaps more precisely
|
// TODO TZ handle flaps more precisely
|
||||||
// Sets flap handle to closest increment (0 to 16383)
|
// Sets flap handle to closest increment (0 to 16383)
|
||||||
|
|||||||
@@ -609,7 +609,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
static_cast<int>(CSimConnectDefinitions::SimObjectEndMarker) * MaxSimObjAircraft;
|
static_cast<int>(CSimConnectDefinitions::SimObjectEndMarker) * MaxSimObjAircraft;
|
||||||
|
|
||||||
// times
|
// times
|
||||||
static constexpr int AddPendingAircraftIntervalMs = 20 * 1000;
|
static constexpr int AddPendingAircraftIntervalMs = 10 * 1000;
|
||||||
static constexpr int DispatchIntervalMs = 10; //!< how often with run the FSX event queue
|
static constexpr int DispatchIntervalMs = 10; //!< how often with run the FSX event queue
|
||||||
static constexpr int DeferSimulatingFlagMs =
|
static constexpr int DeferSimulatingFlagMs =
|
||||||
1500; //!< simulating can jitter at startup (simulating->stopped->simulating, multiple start events), so we
|
1500; //!< simulating can jitter at startup (simulating->stopped->simulating, multiple start events), so we
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
// 4294967295/0xFFFFFFFF means unknown, 0 means also UNKNOWN INDEX
|
// 4294967295/0xFFFFFFFF means unknown, 0 means also UNKNOWN INDEX
|
||||||
const DWORD data = cbData;
|
const DWORD data = cbData;
|
||||||
const TraceFsxSendId trace = simulatorMsfs2024->getSendIdTrace(sendId);
|
const TraceFsxSendId trace = simulatorMsfs2024->getSendIdTrace(sendId);
|
||||||
bool logGenericExceptionInfo = true;
|
bool logGenericExceptionInfo = false;
|
||||||
|
|
||||||
switch (exceptionId)
|
switch (exceptionId)
|
||||||
{
|
{
|
||||||
@@ -93,6 +93,9 @@ namespace swift::simplugin::msfs2024common
|
|||||||
case SIMCONNECT_EXCEPTION_UNRECOGNIZED_ID:
|
case SIMCONNECT_EXCEPTION_UNRECOGNIZED_ID:
|
||||||
break; // Specifies that the client event, request ID, data definition ID, or object ID was not
|
break; // Specifies that the client event, request ID, data definition ID, or object ID was not
|
||||||
// recognized
|
// recognized
|
||||||
|
case SIMCONNECT_EXCEPTION_DATA_ERROR:
|
||||||
|
logGenericExceptionInfo = true;
|
||||||
|
break; // data error, can happen during data request
|
||||||
case SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED:
|
case SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED:
|
||||||
{
|
{
|
||||||
if (trace.isValid())
|
if (trace.isValid())
|
||||||
@@ -104,6 +107,8 @@ namespace swift::simplugin::msfs2024common
|
|||||||
{
|
{
|
||||||
if (simObject.isAircraft())
|
if (simObject.isAircraft())
|
||||||
{
|
{
|
||||||
|
CLogMessage(simulatorMsfs2024).warning(u"Adding Aircraft failed: %1 %2")
|
||||||
|
<< simObject.getCallsign().asString() << simObject.getAircraftModelString();
|
||||||
simulatorMsfs2024->addingAircraftFailed(simObject);
|
simulatorMsfs2024->addingAircraftFailed(simObject);
|
||||||
logGenericExceptionInfo = false;
|
logGenericExceptionInfo = false;
|
||||||
}
|
}
|
||||||
@@ -119,7 +124,7 @@ namespace swift::simplugin::msfs2024common
|
|||||||
} // trace
|
} // trace
|
||||||
} // SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED:
|
} // SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED:
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: logGenericExceptionInfo = true; break;
|
||||||
} // switch exception id
|
} // switch exception id
|
||||||
|
|
||||||
// generic exception warning
|
// generic exception warning
|
||||||
|
|||||||
Reference in New Issue
Block a user