Resolve callsigns to user objects

This commit is contained in:
Klaus Basan
2014-01-27 16:11:19 +01:00
parent ff5332eddd
commit 3534d44d5e

View File

@@ -129,20 +129,13 @@ namespace BlackCore
CCallsignList searchList(callsigns); CCallsignList searchList(callsigns);
CUser user; CUser user;
CCallsign callsign; CCallsign callsign;
foreach(CAtcStation station, this->m_atcStationsOnline)
{ // do aircrafts first, this will handle most callsigns
callsign = station.getCallsign();
if (callsigns.contains(callsign))
{
user = station.getController();
users.push_back(user);
searchList.remove(callsign);
}
}
foreach(CAircraft aircraft, this->m_aircraftsInRange) foreach(CAircraft aircraft, this->m_aircraftsInRange)
{ {
if (searchList.isEmpty()) break;
callsign = aircraft.getCallsign(); callsign = aircraft.getCallsign();
if (callsigns.contains(callsign)) if (searchList.contains(callsign))
{ {
user = aircraft.getPilot(); user = aircraft.getPilot();
users.push_back(user); users.push_back(user);
@@ -150,11 +143,23 @@ namespace BlackCore
} }
} }
// we might have unsresolved callsigns foreach(CAtcStation station, this->m_atcStationsOnline)
foreach(CCallsign unresolved, searchList) {
if (searchList.isEmpty()) break;
callsign = station.getCallsign();
if (searchList.contains(callsign))
{
user = station.getController();
users.push_back(user);
searchList.remove(callsign);
}
}
// we might have unresolved callsigns
foreach(CCallsign callsign, searchList)
{ {
user = CUser(); user = CUser();
user.setCallsign(unresolved); user.setCallsign(callsign);
users.push_back(user); users.push_back(user);
} }
return users; return users;