T37 T130 Workaround to consolidate time offset to all places it is needed.

This commit is contained in:
Mathew Sutcliffe
2017-08-15 23:48:20 +01:00
parent f9ae3efaa3
commit de13fc51cb

View File

@@ -1064,9 +1064,16 @@ namespace BlackCore
const CCallsign callsign(situation.getCallsign()); const CCallsign callsign(situation.getCallsign());
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Empty callsign"); Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Empty callsign");
CAircraftSituation fullSituation(situation);
// store situation history // store situation history
this->storeAircraftSituation(situation); this->storeAircraftSituation(fullSituation);
emit this->addedAircraftSituation(situation); {
//! \fixme Workaround to consolidate time offset from storeAircraftSituation
QReadLocker lock(&m_lockSituations);
fullSituation.setTimeOffsetMs(m_situationsByCallsign[callsign].front().getTimeOffsetMs());
}
emit this->addedAircraftSituation(fullSituation);
const bool existsInRange = this->isAircraftInRange(callsign); const bool existsInRange = this->isAircraftInRange(callsign);
const bool hasFsInnPacket = this->m_tempFsInnPackets.contains(callsign); const bool hasFsInnPacket = this->m_tempFsInnPackets.contains(callsign);
@@ -1075,7 +1082,7 @@ namespace BlackCore
{ {
CSimulatedAircraft aircraft; CSimulatedAircraft aircraft;
aircraft.setCallsign(callsign); aircraft.setCallsign(callsign);
aircraft.setSituation(situation); aircraft.setSituation(fullSituation);
aircraft.setTransponder(transponder); aircraft.setTransponder(transponder);
this->addNewAircraftInRange(aircraft); this->addNewAircraftInRange(aircraft);
this->sendInitialPilotQueries(callsign, true, !hasFsInnPacket); this->sendInitialPilotQueries(callsign, true, !hasFsInnPacket);
@@ -1089,9 +1096,9 @@ namespace BlackCore
// update, aircraft already exists // update, aircraft already exists
CPropertyIndexVariantMap vm; CPropertyIndexVariantMap vm;
vm.addValue(CSimulatedAircraft::IndexTransponder, transponder); vm.addValue(CSimulatedAircraft::IndexTransponder, transponder);
vm.addValue(CSimulatedAircraft::IndexSituation, situation); vm.addValue(CSimulatedAircraft::IndexSituation, fullSituation);
vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(situation)); vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(fullSituation));
vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(situation)); vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(fullSituation));
this->updateAircraftInRange(callsign, vm); this->updateAircraftInRange(callsign, vm);
} }
@@ -1124,6 +1131,11 @@ namespace BlackCore
// store situation history // store situation history
this->storeAircraftSituation(interimSituation); this->storeAircraftSituation(interimSituation);
{
//! \fixme Workaround to consolidate time offset from storeAircraftSituation
QReadLocker lock(&m_lockSituations);
interimSituation.setTimeOffsetMs(m_situationsByCallsign[callsign].front().getTimeOffsetMs());
}
emit this->addedAircraftSituation(interimSituation); emit this->addedAircraftSituation(interimSituation);
// if we have not aircraft in range yer, we stop here // if we have not aircraft in range yer, we stop here
@@ -1221,6 +1233,11 @@ namespace BlackCore
// store part history (parts always absolute) // store part history (parts always absolute)
this->storeAircraftParts(callsign, parts); this->storeAircraftParts(callsign, parts);
{
//! \fixme Workaround to consolidate time offset from storeAircraftParts
QReadLocker lock(&m_lockParts);
parts.setTimeOffsetMs(m_partsByCallsign[callsign].front().getTimeOffsetMs());
}
emit this->addedAircraftParts(callsign, parts); emit this->addedAircraftParts(callsign, parts);
if (m_enableAircraftPartsHistory) if (m_enableAircraftPartsHistory)