mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +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);
|
||||
}
|
||||
|
||||
CSimConnectObject CSimulatorFsxCommon::getProbeForObjectId(DWORD objectId) const
|
||||
{
|
||||
return this->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
||||
}
|
||||
|
||||
void CSimulatorFsxCommon::setSimConnected()
|
||||
{
|
||||
m_simConnected = true;
|
||||
@@ -1046,7 +1051,7 @@ namespace BlackSimPlugin
|
||||
CAircraftSituation situation(newRemoteAircraft.getSituation());
|
||||
if (canAdd && situation.isPositionOrAltitudeNull())
|
||||
{
|
||||
// invalid position
|
||||
// invalid position because position or altitude is null
|
||||
const CAircraftSituationList situations(this->remoteAircraftSituations(callsign));
|
||||
if (situations.isEmpty())
|
||||
{
|
||||
@@ -1055,16 +1060,17 @@ namespace BlackSimPlugin
|
||||
}
|
||||
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());
|
||||
Q_ASSERT_X(!situation.isPositionOrAltitudeNull(), Q_FUNC_INFO, "Invalid situation for new aircraft");
|
||||
}
|
||||
|
||||
const bool validSituation = situation.isPositionOrAltitudeNull();
|
||||
canAdd = validSituation;
|
||||
// still invalid?
|
||||
const bool invalidSituation = situation.isPositionOrAltitudeNull();
|
||||
canAdd = invalidSituation;
|
||||
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;
|
||||
this->clampedLog(callsign, sm);
|
||||
}
|
||||
|
||||
@@ -347,6 +347,9 @@ namespace BlackSimPlugin
|
||||
//! The simconnect related probes
|
||||
const CSimConnectObjects &getSimConnectProbes() const { return m_simConnectProbes; }
|
||||
|
||||
//! Get probe for id
|
||||
CSimConnectObject getProbeForObjectId(DWORD objectId) const;
|
||||
|
||||
//! Format conversion
|
||||
//! \note must be valid situation
|
||||
SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, bool sendGnd = true);
|
||||
@@ -435,7 +438,7 @@ namespace BlackSimPlugin
|
||||
|
||||
// objects
|
||||
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.
|
||||
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
|
||||
|
||||
@@ -180,7 +180,7 @@ namespace BlackSimPlugin
|
||||
success = simulatorFsxP3D->setSimConnectProbeId(requestId, objectId);
|
||||
if (!success) { break; } // not an request ID of ours
|
||||
success = simulatorFsxP3D->simulatorReportedProbeAdded(objectId);
|
||||
const CSimConnectObject simObject = simulatorFsxP3D->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
||||
const CSimConnectObject simObject = simulatorFsxP3D->getProbeForObjectId(objectId);
|
||||
if (success)
|
||||
{
|
||||
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
|
||||
if (!success)
|
||||
{
|
||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimObjectForObjectId(objectId);
|
||||
const CSimulatedAircraft remoteAircraft(simObj.getAircraft());
|
||||
const CStatusMessage msg = CStatusMessage(simulatorFsxP3D).error("Cannot add object %1, cs: '%2' model: '%3'") << objectId << remoteAircraft.getCallsignAsString() << remoteAircraft.getModelString();
|
||||
CLogMessage::preformatted(msg);
|
||||
@@ -270,7 +270,7 @@ namespace BlackSimPlugin
|
||||
{
|
||||
static_assert(sizeof(DataDefinitionRemoteAircraftSimData) == 5 * sizeof(double), "DataDefinitionRemoteAircraftSimData has an incorrect size.");
|
||||
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForProbe;
|
||||
const CSimConnectObject probeObj = simulatorFsxP3D->getSimConnectProbes().getSimObjectForObjectId(objectId);
|
||||
const CSimConnectObject probeObj = simulatorFsxP3D->getProbeForObjectId(objectId);
|
||||
if (!probeObj.hasValidRequestAndObjectId()) { break; }
|
||||
const DataDefinitionRemoteAircraftSimData *probeSimData = (DataDefinitionRemoteAircraftSimData *)&pObjData->dwData;
|
||||
// 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.");
|
||||
simulatorFsxP3D->m_dispatchLastRequest = CSimConnectDefinitions::RequestRangeForLights;
|
||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimConnectObjects().getSimObjectForObjectId(objectId);
|
||||
if (!simObj.hasValidRequestAndObjectId()) break;
|
||||
const CSimConnectObject simObj = simulatorFsxP3D->getSimObjectForObjectId(objectId);
|
||||
if (!simObj.hasValidRequestAndObjectId()) { break; }
|
||||
const DataDefinitionRemoteAircraftLights *remoteAircraftLights = (DataDefinitionRemoteAircraftLights *)&pObjData->dwData;
|
||||
// extra check, but ids should be the same
|
||||
if (objectId == simObj.getObjectId())
|
||||
|
||||
Reference in New Issue
Block a user