Ref T259, Ref T243 automatically update client gnd. capability by situation

Rational: If we receive a gnd flag from network, the client does have this capability
This commit is contained in:
Klaus Basan
2018-03-26 02:52:06 +02:00
parent 7ae0649dd6
commit 21644c9f24
3 changed files with 32 additions and 6 deletions

View File

@@ -792,9 +792,11 @@ namespace BlackCore
const CCallsign callsign(situation.getCallsign());
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Empty callsign");
// update client info
this->autoAdjustCientGndCapability(situation);
// store situation history
CAircraftSituation fullSituation(situation);
this->storeAircraftSituation(fullSituation);
this->storeAircraftSituation(situation); // updates situation
const bool existsInRange = this->isAircraftInRange(callsign);
const bool hasFsInnPacket = m_tempFsInnPackets.contains(callsign);
@@ -803,7 +805,7 @@ namespace BlackCore
{
CSimulatedAircraft aircraft;
aircraft.setCallsign(callsign);
aircraft.setSituation(fullSituation);
aircraft.setSituation(situation);
aircraft.setTransponder(transponder);
this->addNewAircraftInRange(aircraft);
this->sendInitialPilotQueries(callsign, true, !hasFsInnPacket);
@@ -817,9 +819,9 @@ namespace BlackCore
// update, aircraft already exists
CPropertyIndexVariantMap vm;
vm.addValue(CSimulatedAircraft::IndexTransponder, transponder);
vm.addValue(CSimulatedAircraft::IndexSituation, fullSituation);
vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(fullSituation));
vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(fullSituation));
vm.addValue(CSimulatedAircraft::IndexSituation, situation);
vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(situation));
vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(situation));
this->updateAircraftInRange(callsign, vm);
}