mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-22 13:15:39 +08:00
Ref T275, use getSimObjectForObjectId / getProbeForObjectId
* added getProbeForObjectId * used getSimObjectForObjectId where not yet used
This commit is contained in:
@@ -337,6 +337,11 @@ namespace BlackSimPlugin
|
|||||||
return this->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
return this->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSimConnectObject CSimulatorFsxCommon::getProbeForObjectId(DWORD objectId) const
|
||||||
|
{
|
||||||
|
return this->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
||||||
|
}
|
||||||
|
|
||||||
void CSimulatorFsxCommon::setSimConnected()
|
void CSimulatorFsxCommon::setSimConnected()
|
||||||
{
|
{
|
||||||
m_simConnected = true;
|
m_simConnected = true;
|
||||||
@@ -1046,7 +1051,7 @@ namespace BlackSimPlugin
|
|||||||
CAircraftSituation situation(newRemoteAircraft.getSituation());
|
CAircraftSituation situation(newRemoteAircraft.getSituation());
|
||||||
if (canAdd && situation.isPositionOrAltitudeNull())
|
if (canAdd && situation.isPositionOrAltitudeNull())
|
||||||
{
|
{
|
||||||
// invalid position
|
// 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())
|
||||||
{
|
{
|
||||||
@@ -1055,16 +1060,17 @@ namespace BlackSimPlugin
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CLogMessage(this).warning("Invalid aircraft situation for new aircraft '%1', use situation") << callsign.asString();
|
CLogMessage(this).warning("Invalid aircraft situation for new aircraft '%1', use closest situation") << callsign.asString();
|
||||||
situation = situations.findClosestTimeDistanceAdjusted(QDateTime::currentMSecsSinceEpoch());
|
situation = situations.findClosestTimeDistanceAdjusted(QDateTime::currentMSecsSinceEpoch());
|
||||||
Q_ASSERT_X(!situation.isPositionOrAltitudeNull(), Q_FUNC_INFO, "Invalid situation for new aircraft");
|
Q_ASSERT_X(!situation.isPositionOrAltitudeNull(), Q_FUNC_INFO, "Invalid situation for new aircraft");
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool validSituation = situation.isPositionOrAltitudeNull();
|
// still invalid?
|
||||||
canAdd = validSituation;
|
const bool invalidSituation = situation.isPositionOrAltitudeNull();
|
||||||
|
canAdd = invalidSituation;
|
||||||
if (CBuildConfig::isLocalDeveloperDebugBuild())
|
if (CBuildConfig::isLocalDeveloperDebugBuild())
|
||||||
{
|
{
|
||||||
BLACK_VERIFY_X(validSituation, Q_FUNC_INFO, "Expect valid situation");
|
BLACK_VERIFY_X(invalidSituation, Q_FUNC_INFO, "Expect valid situation");
|
||||||
const CStatusMessage sm = CStatusMessage(this).warning("Invalid situation for '%1'") << callsign;
|
const CStatusMessage sm = CStatusMessage(this).warning("Invalid situation for '%1'") << callsign;
|
||||||
this->clampedLog(callsign, sm);
|
this->clampedLog(callsign, sm);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -347,6 +347,9 @@ namespace BlackSimPlugin
|
|||||||
//! The simconnect related probes
|
//! The simconnect related probes
|
||||||
const CSimConnectObjects &getSimConnectProbes() const { return m_simConnectProbes; }
|
const CSimConnectObjects &getSimConnectProbes() const { return m_simConnectProbes; }
|
||||||
|
|
||||||
|
//! Get probe for id
|
||||||
|
CSimConnectObject getProbeForObjectId(DWORD objectId) const;
|
||||||
|
|
||||||
//! Format conversion
|
//! Format conversion
|
||||||
//! \note must be valid situation
|
//! \note must be valid situation
|
||||||
SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, bool sendGnd = true);
|
SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, bool sendGnd = true);
|
||||||
@@ -435,7 +438,7 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
// objects
|
// objects
|
||||||
CSimConnectObjects m_simConnectObjects; //!< AI objects and their object / request ids
|
CSimConnectObjects m_simConnectObjects; //!< AI objects and their object / request ids
|
||||||
CSimConnectObjects m_simConnectProbes; //!< AI terrain probes
|
CSimConnectObjects m_simConnectProbes; //!< AI terrain probes and their object / request ids
|
||||||
CSimConnectObjects m_simConnectObjectsPositionAndPartsTraces; //!< position/parts received, but object not yet added, excluded, disabled etc.
|
CSimConnectObjects m_simConnectObjectsPositionAndPartsTraces; //!< position/parts received, but object not yet added, excluded, disabled etc.
|
||||||
SIMCONNECT_DATA_REQUEST_ID m_requestIdSimData = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestIdSimDataStart); //!< request id, use obtainRequestIdForSimData() to get id
|
SIMCONNECT_DATA_REQUEST_ID m_requestIdSimData = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestIdSimDataStart); //!< request id, use obtainRequestIdForSimData() to get id
|
||||||
SIMCONNECT_DATA_REQUEST_ID m_requestIdProbe = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestIdTerrainProbeStart); //!< request id, use obtainRequestIdForProbe() to get id
|
SIMCONNECT_DATA_REQUEST_ID m_requestIdProbe = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestIdTerrainProbeStart); //!< request id, use obtainRequestIdForProbe() to get id
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ namespace BlackSimPlugin
|
|||||||
success = simulatorFsxP3D->setSimConnectProbeId(requestId, objectId);
|
success = simulatorFsxP3D->setSimConnectProbeId(requestId, objectId);
|
||||||
if (!success) { break; } // not an request ID of ours
|
if (!success) { break; } // not an request ID of ours
|
||||||
success = simulatorFsxP3D->simulatorReportedProbeAdded(objectId);
|
success = simulatorFsxP3D->simulatorReportedProbeAdded(objectId);
|
||||||
const CSimConnectObject simObject = simulatorFsxP3D->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
const CSimConnectObject simObject = simulatorFsxP3D->getProbeForObjectId(objectId);
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
CLogMessage(simulatorFsxP3D).info("Added probe '%1' id: %2") << simObject.getCallsign() << objectId;
|
CLogMessage(simulatorFsxP3D).info("Added probe '%1' id: %2") << simObject.getCallsign() << objectId;
|
||||||
@@ -197,7 +197,7 @@ namespace BlackSimPlugin
|
|||||||
success = simulatorFsxP3D->simulatorReportedObjectAdded(objectId); // trigger follow up actions
|
success = simulatorFsxP3D->simulatorReportedObjectAdded(objectId); // trigger follow up actions
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
const CSimConnectObject simObj = simulatorFsxP3D->getSimObjectForObjectId(objectId);
|
||||||
const CSimulatedAircraft remoteAircraft(simObj.getAircraft());
|
const CSimulatedAircraft remoteAircraft(simObj.getAircraft());
|
||||||
const CStatusMessage msg = CStatusMessage(simulatorFsxP3D).error("Cannot add object %1, cs: '%2' model: '%3'") << objectId << remoteAircraft.getCallsignAsString() << remoteAircraft.getModelString();
|
const CStatusMessage msg = CStatusMessage(simulatorFsxP3D).error("Cannot add object %1, cs: '%2' model: '%3'") << objectId << remoteAircraft.getCallsignAsString() << remoteAircraft.getModelString();
|
||||||
CLogMessage::preformatted(msg);
|
CLogMessage::preformatted(msg);
|
||||||
@@ -270,7 +270,7 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
static_assert(sizeof(DataDefinitionRemoteAircraftSimData) == 5 * sizeof(double), "DataDefinitionRemoteAircraftSimData has an incorrect size.");
|
static_assert(sizeof(DataDefinitionRemoteAircraftSimData) == 5 * sizeof(double), "DataDefinitionRemoteAircraftSimData has an incorrect size.");
|
||||||
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForProbe;
|
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForProbe;
|
||||||
const CSimConnectObject probeObj = simulatorFsxP3D->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
const CSimConnectObject probeObj = simulatorFsxP3D->getProbeForObjectId(objectId);
|
||||||
if (!probeObj.hasValidRequestAndObjectId()) { break; }
|
if (!probeObj.hasValidRequestAndObjectId()) { break; }
|
||||||
const DataDefinitionRemoteAircraftSimData *probeSimData = (DataDefinitionRemoteAircraftSimData *)&pObjData->dwData;
|
const DataDefinitionRemoteAircraftSimData *probeSimData = (DataDefinitionRemoteAircraftSimData *)&pObjData->dwData;
|
||||||
// extra check, but ids should be the same
|
// extra check, but ids should be the same
|
||||||
@@ -285,8 +285,8 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
static_assert(sizeof(DataDefinitionRemoteAircraftLights) == 8 * sizeof(double), "DataDefinitionRemoteAircraftLights has an incorrect size.");
|
static_assert(sizeof(DataDefinitionRemoteAircraftLights) == 8 * sizeof(double), "DataDefinitionRemoteAircraftLights has an incorrect size.");
|
||||||
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForLights;
|
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForLights;
|
||||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
const CSimConnectObject simObj = simulatorFsxP3D->getSimObjectForObjectId(objectId);
|
||||||
if (!simObj.hasValidRequestAndObjectId()) break;
|
if (!simObj.hasValidRequestAndObjectId()) { break; }
|
||||||
const DataDefinitionRemoteAircraftLights *remoteAircraftLights = (DataDefinitionRemoteAircraftLights *)&pObjData->dwData;
|
const DataDefinitionRemoteAircraftLights *remoteAircraftLights = (DataDefinitionRemoteAircraftLights *)&pObjData->dwData;
|
||||||
// extra check, but ids should be the same
|
// extra check, but ids should be the same
|
||||||
if (objectId == simObj.getObjectId())
|
if (objectId == simObj.getObjectId())
|
||||||
|
|||||||
Reference in New Issue
Block a user