refs #229 Simplify searching for Simconnect object with std::find_if

This commit is contained in:
Roland Winklmeier
2014-06-13 00:44:07 +02:00
parent e49650787d
commit 92dbefbf7a

View File

@@ -412,19 +412,13 @@ namespace BlackSimPlugin
void CSimulatorFsx::setSimconnectObjectID(DWORD requestID, DWORD objectID) void CSimulatorFsx::setSimconnectObjectID(DWORD requestID, DWORD objectID)
{ {
// First check, if this request id belongs to us // First check, if this request id belongs to us
auto it = m_simConnectObjects.begin(); auto it = std::find_if(m_simConnectObjects.begin(), m_simConnectObjects.end(),
for (; it != m_simConnectObjects.end(); ++it) [requestID](const CSimConnectObject &obj) { return obj.getRequestId() == static_cast<int>(requestID); });
{
if ((*it).getRequestId() == static_cast<int>(requestID))
{
break;
}
}
if (it == m_simConnectObjects.end()) if (it == m_simConnectObjects.end())
return; return;
(*it).setObjectId(objectID); it->setObjectId(objectID);
SimConnect_AIReleaseControl(m_hSimConnect, objectID, requestID); SimConnect_AIReleaseControl(m_hSimConnect, objectID, requestID);
SimConnect_TransmitClientEvent(m_hSimConnect, objectID, EventFreezeLat, 1, SimConnect_TransmitClientEvent(m_hSimConnect, objectID, EventFreezeLat, 1,
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);