mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 21:15:33 +08:00
Ref T245, experimental camera support for P3D
* removed deprecated functions of SimObject * specific P3D initEvent function
This commit is contained in:
@@ -20,7 +20,14 @@ namespace BlackSimPlugin
|
||||
namespace FsxCommon
|
||||
{
|
||||
CSimConnectObject::CSimConnectObject()
|
||||
{ }
|
||||
{
|
||||
this->resetCameraPositions();
|
||||
}
|
||||
|
||||
CSimConnectObject::CSimConnectObject(CSimConnectObject::SimObjectType type) : m_type(type)
|
||||
{
|
||||
this->resetCameraPositions();
|
||||
}
|
||||
|
||||
CSimConnectObject::CSimConnectObject(const CSimulatedAircraft &aircraft,
|
||||
DWORD requestId,
|
||||
@@ -29,32 +36,15 @@ namespace BlackSimPlugin
|
||||
m_aircraft(aircraft), m_requestId(requestId), m_validRequestId(true),
|
||||
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(aircraft.getCallsign(), simEnvProvider, setupProvider, remoteAircraftProvider, logger))
|
||||
{
|
||||
this->resetCameraPositions();
|
||||
m_interpolator->initCorrespondingModel(aircraft.getModel());
|
||||
m_callsignByteArray = aircraft.getCallsignAsString().toLatin1();
|
||||
}
|
||||
|
||||
void CSimConnectObject::invalidatePartsAsSent()
|
||||
void CSimConnectObject::setAircraft(const CSimulatedAircraft &aircraft)
|
||||
{
|
||||
DataDefinitionRemoteAircraftPartsWithoutLights dd;
|
||||
dd.resetToInvalid();
|
||||
m_partsAsSent = dd;
|
||||
}
|
||||
|
||||
bool CSimConnectObject::isSameAsSent(const SIMCONNECT_DATA_INITPOSITION &position) const
|
||||
{
|
||||
return std::tie(m_positionAsSent.Airspeed, m_positionAsSent.Altitude, m_positionAsSent.Bank, m_positionAsSent.Heading, m_positionAsSent.Latitude, m_positionAsSent.Longitude, m_positionAsSent.Pitch, m_positionAsSent.OnGround) ==
|
||||
std::tie(position.Airspeed, position.Altitude, position.Bank, position.Heading, position.Latitude, position.Longitude, position.Pitch, position.OnGround);
|
||||
}
|
||||
|
||||
void CSimConnectObject::invalidatePositionAsSent()
|
||||
{
|
||||
m_positionAsSent.Airspeed = 0;
|
||||
m_positionAsSent.Altitude = -1;
|
||||
m_positionAsSent.Bank = -1;
|
||||
m_positionAsSent.Heading = -1;
|
||||
m_positionAsSent.Latitude = -1;
|
||||
m_positionAsSent.Longitude = -1;
|
||||
m_positionAsSent.OnGround = 0;
|
||||
m_positionAsSent.Pitch = -1;
|
||||
m_aircraft = aircraft;
|
||||
m_callsignByteArray = aircraft.getCallsignAsString().toLatin1();
|
||||
}
|
||||
|
||||
void CSimConnectObject::setObjectId(DWORD id)
|
||||
@@ -86,10 +76,21 @@ namespace BlackSimPlugin
|
||||
m_aircraft.setRendered(false);
|
||||
}
|
||||
|
||||
void CSimConnectObject::resetCameraPositions()
|
||||
{
|
||||
m_cameraPosition.x = 0;
|
||||
m_cameraPosition.y = 0;
|
||||
m_cameraPosition.z = 0;
|
||||
m_cameraRotation.Pitch = 0;
|
||||
m_cameraRotation.Bank = 0;
|
||||
m_cameraRotation.Heading = 0;
|
||||
}
|
||||
|
||||
void CSimConnectObject::resetState()
|
||||
{
|
||||
m_pendingRemoved = false;
|
||||
m_confirmedAdded = false;
|
||||
m_camera = false;
|
||||
m_currentLightsInSim = CAircraftLights();
|
||||
m_lightsAsSent = CAircraftLights();
|
||||
m_requestId = -1;
|
||||
@@ -97,8 +98,7 @@ namespace BlackSimPlugin
|
||||
m_lightsRequestedAt = -1;
|
||||
m_validRequestId = false;
|
||||
m_validObjectId = false;
|
||||
this->invalidatePartsAsSent();
|
||||
this->invalidatePositionAsSent();
|
||||
this->resetCameraPositions();
|
||||
}
|
||||
|
||||
bool CSimConnectObject::hasValidRequestAndObjectId() const
|
||||
@@ -130,7 +130,7 @@ namespace BlackSimPlugin
|
||||
return m_interpolator->getLastInterpolatedSituation(mode);
|
||||
}
|
||||
|
||||
bool CSimConnectObjects::setSimConnectObjectIdForRequestId(DWORD requestId, DWORD objectId, bool resetSentParts)
|
||||
bool CSimConnectObjects::setSimConnectObjectIdForRequestId(DWORD requestId, DWORD objectId)
|
||||
{
|
||||
// First check, if this request id belongs to us
|
||||
auto it = std::find_if(this->begin(), this->end(), [requestId](const CSimConnectObject & obj) { return obj.getRequestId() == requestId; });
|
||||
@@ -138,7 +138,6 @@ namespace BlackSimPlugin
|
||||
|
||||
// belongs to us
|
||||
it->setObjectId(objectId);
|
||||
if (resetSentParts) { it->invalidatePartsAsSent(); }
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user