mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 06:35:52 +08:00
refs #810, using DWORD instead of int to avoid possible issues (signed vs. unsigned)
Requires flags as negative flags do not indicate invalid
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#define BLACKSIMPLUGIN_SIMCONNECT_OBJECT_H
|
||||
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
#include "simconnect/SimConnect.h"
|
||||
#include <QSharedPointer>
|
||||
|
||||
namespace BlackMisc { class IInterpolator; }
|
||||
@@ -29,7 +30,7 @@ namespace BlackSimPlugin
|
||||
CSimConnectObject();
|
||||
|
||||
//! Constructor
|
||||
CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, int requestId);
|
||||
CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, DWORD requestId);
|
||||
|
||||
//! Destructor
|
||||
~CSimConnectObject() {}
|
||||
@@ -44,22 +45,22 @@ namespace BlackSimPlugin
|
||||
const QString &getAircraftModelString() const { return m_aircraft.getModelString(); }
|
||||
|
||||
//! Set Simconnect request id
|
||||
void setRequestId(int id) { m_requestId = id; }
|
||||
void setRequestId(DWORD id) { m_requestId = id; m_validRequestId = true; }
|
||||
|
||||
//! Get Simconnect request id
|
||||
int getRequestId() const { return m_requestId; }
|
||||
DWORD getRequestId() const { return m_requestId; }
|
||||
|
||||
//! Set Simconnect object id
|
||||
void setObjectId(int id) { m_objectId = id; }
|
||||
void setObjectId(DWORD id) { m_objectId = id; m_validObjectId = true; }
|
||||
|
||||
//! Set Simconnect object id
|
||||
int getObjectId() const { return m_objectId; }
|
||||
DWORD getObjectId() const { return m_objectId; }
|
||||
|
||||
//! Valid request id?
|
||||
bool hasValidRequestId() const;
|
||||
bool hasValidRequestId() const { return this->m_validRequestId; }
|
||||
|
||||
//! Valid object id?
|
||||
bool hasValidobjectId() const;
|
||||
bool hasValidObjectId() const { return this->m_validObjectId; }
|
||||
|
||||
//! Object is requested, not yet added
|
||||
bool isPendingAdded() const;
|
||||
@@ -84,32 +85,33 @@ namespace BlackSimPlugin
|
||||
|
||||
private:
|
||||
BlackMisc::Simulation::CSimulatedAircraft m_aircraft;
|
||||
int m_requestId = -1;
|
||||
int m_objectId = -1;
|
||||
DWORD m_requestId = 0;
|
||||
DWORD m_objectId = 0;
|
||||
bool m_validRequestId = false;
|
||||
bool m_validObjectId = false;
|
||||
bool m_confirmedAdded = false;
|
||||
bool m_pendingRemoved = false;
|
||||
};
|
||||
|
||||
//! Simulator objects (aka AI aircraft
|
||||
//! Simulator objects (aka AI aircraft)
|
||||
class CSimConnectObjects : public QHash<BlackMisc::Aviation::CCallsign, CSimConnectObject>
|
||||
{
|
||||
public:
|
||||
//! Set ID of a SimConnect object, so far we only have an request id in the object
|
||||
bool setSimConnectObjectId(int requestID, int objectId);
|
||||
bool setSimConnectObjectIdForRequestId(DWORD requestId, DWORD objectId);
|
||||
|
||||
//! Find which callsign belongs to the object id
|
||||
BlackMisc::Aviation::CCallsign getCallsignForObjectId(int objectId) const;
|
||||
BlackMisc::Aviation::CCallsign getCallsignForObjectId(DWORD objectId) const;
|
||||
|
||||
//! Find which callsign belongs to the object id
|
||||
CSimConnectObject getSimObjectForObjectId(int objectId) const;
|
||||
CSimConnectObject getSimObjectForObjectId(DWORD objectId) const;
|
||||
|
||||
//! Is the object id one of our AI objects?
|
||||
bool isKnownSimObjectId(int objectId) const;
|
||||
bool isKnownSimObjectId(DWORD objectId) const;
|
||||
|
||||
//! Pending add condition
|
||||
bool containsPendingAdd() const;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
|
||||
Reference in New Issue
Block a user