mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-03 16:25:54 +08:00
Ref T180, use SIMCONNECT_DATA_REQUEST_ID as type for request id
This commit is contained in:
@@ -344,9 +344,9 @@ namespace BlackSimPlugin
|
|||||||
QTimer::singleShot(0, this, &CSimulatorFsxCommon::disconnectFrom);
|
QTimer::singleShot(0, this, &CSimulatorFsxCommon::disconnectFrom);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD CSimulatorFsxCommon::obtainRequestIdForSimData()
|
SIMCONNECT_DATA_REQUEST_ID CSimulatorFsxCommon::obtainRequestIdForSimData()
|
||||||
{
|
{
|
||||||
const DWORD id = m_requestIdSimData++;
|
const SIMCONNECT_DATA_REQUEST_ID id = m_requestIdSimData++;
|
||||||
if (id > RequestSimDataEnd) { m_requestIdSimData = RequestSimDataStart; }
|
if (id > RequestSimDataEnd) { m_requestIdSimData = RequestSimDataStart; }
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -557,10 +557,10 @@ namespace BlackSimPlugin
|
|||||||
Q_ASSERT_X(simObject.isPendingAdded(), Q_FUNC_INFO, "already confirmed, this should be the only place");
|
Q_ASSERT_X(simObject.isPendingAdded(), Q_FUNC_INFO, "already confirmed, this should be the only place");
|
||||||
simObject.setConfirmedAdded(true);
|
simObject.setConfirmedAdded(true);
|
||||||
|
|
||||||
// P3D also has SimConnect_AIReleaseControlEx;
|
// P3D also has SimConnect_AIReleaseControlEx which also allows to destroy the aircraft
|
||||||
const DWORD requestId = this->obtainRequestIdForSimData();
|
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||||
const DWORD objectId = simObject.getObjectId();
|
const DWORD objectId = simObject.getObjectId();
|
||||||
HRESULT hr = SimConnect_AIReleaseControl(m_hSimConnect, objectId, static_cast<SIMCONNECT_DATA_REQUEST_ID>(requestId));
|
HRESULT hr = SimConnect_AIReleaseControl(m_hSimConnect, objectId, requestId);
|
||||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeLat, 1,
|
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeLat, 1,
|
||||||
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAlt, 1,
|
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAlt, 1,
|
||||||
@@ -860,13 +860,12 @@ namespace BlackSimPlugin
|
|||||||
// create AI
|
// create AI
|
||||||
bool adding = false;
|
bool adding = false;
|
||||||
CSimulatedAircraft addedAircraft(newRemoteAircraft);
|
CSimulatedAircraft addedAircraft(newRemoteAircraft);
|
||||||
|
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||||
const DWORD requestId = this->obtainRequestIdForSimData();
|
|
||||||
const SIMCONNECT_DATA_INITPOSITION initialPosition = aircraftSituationToFsxPosition(addedAircraft.getSituation());
|
const SIMCONNECT_DATA_INITPOSITION initialPosition = aircraftSituationToFsxPosition(addedAircraft.getSituation());
|
||||||
const QString modelString(addedAircraft.getModelString());
|
const QString modelString(addedAircraft.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))); }
|
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 HRESULT hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, qPrintable(modelString), qPrintable(callsign.toQString().left(12)), initialPosition, static_cast<SIMCONNECT_DATA_REQUEST_ID>(requestId));
|
const HRESULT hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, qPrintable(modelString), qPrintable(callsign.toQString().left(12)), initialPosition, requestId);
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
{
|
{
|
||||||
const CStatusMessage msg = CStatusMessage(this).error("SimConnect, can not create AI traffic: '%1' '%2'") << callsign.toQString() << modelString;
|
const CStatusMessage msg = CStatusMessage(this).error("SimConnect, can not create AI traffic: '%1' '%2'") << callsign.toQString() << modelString;
|
||||||
@@ -912,7 +911,7 @@ namespace BlackSimPlugin
|
|||||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' request/object id: %2/%3").arg(callsign.toQString()).arg(simObject.getRequestId()).arg(simObject.getObjectId())); }
|
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' request/object id: %2/%3").arg(callsign.toQString()).arg(simObject.getRequestId()).arg(simObject.getObjectId())); }
|
||||||
|
|
||||||
// call in SIM
|
// call in SIM
|
||||||
SimConnect_AIRemoveObject(m_hSimConnect, static_cast<SIMCONNECT_OBJECT_ID>(simObject.getObjectId()), static_cast<SIMCONNECT_DATA_REQUEST_ID>(m_requestIdSimData++));
|
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||||
m_hints.remove(simObject.getCallsign());
|
m_hints.remove(simObject.getCallsign());
|
||||||
|
|
||||||
// mark in provider
|
// mark in provider
|
||||||
@@ -1003,7 +1002,8 @@ namespace BlackSimPlugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// facility
|
// facility
|
||||||
hr += SimConnect_SubscribeToFacilities(m_hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE_AIRPORT, static_cast<SIMCONNECT_DATA_REQUEST_ID>(m_requestIdSimData++));
|
SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||||
|
hr += SimConnect_SubscribeToFacilities(m_hSimConnect, SIMCONNECT_FACILITY_LIST_TYPE_AIRPORT, requestId);
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
{
|
{
|
||||||
CLogMessage(this).error("FSX plugin error: %1") << "SimConnect_SubscribeToFacilities failed";
|
CLogMessage(this).error("FSX plugin error: %1") << "SimConnect_SubscribeToFacilities failed";
|
||||||
@@ -1454,7 +1454,7 @@ namespace BlackSimPlugin
|
|||||||
m_syncDeferredCounter = 0;
|
m_syncDeferredCounter = 0;
|
||||||
m_skipCockpitUpdateCycles = 0;
|
m_skipCockpitUpdateCycles = 0;
|
||||||
m_interpolationRequest = 0;
|
m_interpolationRequest = 0;
|
||||||
m_requestIdSimData = RequestSimDataStart;
|
m_requestIdSimData = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestSimDataStart);
|
||||||
m_dispatchErrors = 0;
|
m_dispatchErrors = 0;
|
||||||
m_receiveExceptionCount = 0;
|
m_receiveExceptionCount = 0;
|
||||||
m_sendIdTraces.clear();
|
m_sendIdTraces.clear();
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ namespace BlackSimPlugin
|
|||||||
void onSimExit();
|
void onSimExit();
|
||||||
|
|
||||||
//! Get new request id, overflow safe
|
//! Get new request id, overflow safe
|
||||||
DWORD obtainRequestIdForSimData();
|
SIMCONNECT_DATA_REQUEST_ID obtainRequestIdForSimData();
|
||||||
|
|
||||||
//! Init when connected
|
//! Init when connected
|
||||||
HRESULT initWhenConnected();
|
HRESULT initWhenConnected();
|
||||||
@@ -351,10 +351,10 @@ namespace BlackSimPlugin
|
|||||||
int m_receiveExceptionCount = 0; //!< exceptions
|
int m_receiveExceptionCount = 0; //!< exceptions
|
||||||
HANDLE m_hSimConnect = nullptr; //!< handle to SimConnect object
|
HANDLE m_hSimConnect = nullptr; //!< handle to SimConnect object
|
||||||
CSimConnectObjects m_simConnectObjects; //!< AI objects and their object / request ids
|
CSimConnectObjects m_simConnectObjects; //!< AI objects and their object / request ids
|
||||||
QList<TraceFsxSendId> m_sendIdTraces; //!< Send id traces for debugging
|
QList<TraceFsxSendId> m_sendIdTraces; //!< Send id traces for debugging
|
||||||
QTimer m_addPendingAircraftTimer { this }; //!< updating of aircraft awaiting add
|
QTimer m_addPendingAircraftTimer { this }; //!< updating of aircraft awaiting add
|
||||||
DWORD m_requestIdSimData = RequestSimDataStart; //!< request id, use obtainRequestId() to get id
|
SIMCONNECT_DATA_REQUEST_ID m_requestIdSimData = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestSimDataStart); //!< request id, use obtainRequestId() to get id
|
||||||
BlackMisc::Simulation::CSimulatedAircraftList m_addPendingAircraft; //!< aircraft awaiting to be added
|
BlackMisc::Simulation::CSimulatedAircraftList m_addPendingAircraft; //!< aircraft awaiting to be added
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Listener for FSX
|
//! Listener for FSX
|
||||||
|
|||||||
Reference in New Issue
Block a user