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:
Klaus Basan
2016-11-17 19:42:06 +01:00
parent 0a43ec6542
commit 26cc77ebab
4 changed files with 39 additions and 48 deletions

View File

@@ -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