mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-03 15:45:46 +08:00
Ref T261, CAircraftSituationChange improvements
* min/max ground distance, also added in situation list * use model's vtol/CG info * improved scenery deviation guessing * adjusted interpolator scenery deviation handling
This commit is contained in:
committed by
Roland Winklmeier
parent
ed78eb5f0b
commit
ea585ae166
@@ -75,13 +75,22 @@ namespace BlackMisc
|
||||
CAircraftSituationList CInterpolator<Derived>::remoteAircraftSituationsAndChange(bool useSceneryOffset)
|
||||
{
|
||||
CAircraftSituationList validSituations = this->remoteAircraftSituations(m_callsign);
|
||||
m_currentSituationChange = CAircraftSituationChange(validSituations, true, true);
|
||||
m_currentSituationChange = CAircraftSituationChange(validSituations, m_model.getCG(), m_model.isVtol(), true, true);
|
||||
if (useSceneryOffset && m_currentSituationChange.hasSceneryDeviation() && m_model.hasCG())
|
||||
{
|
||||
const CLength os = m_currentSituationChange.getGuessedSceneryDeviation(m_model.getCG());
|
||||
validSituations.addAltitudeOffset(os);
|
||||
m_currentSituationChange = CAircraftSituationChange(validSituations, true, true); // recalculate
|
||||
const CLength os = m_currentSituationChange.getGuessedSceneryDeviationCG();
|
||||
m_currentSceneryOffset = os;
|
||||
if (!os.isNull())
|
||||
{
|
||||
const CLength addValue = os * -1.0; // positive values means too high, negative values too low
|
||||
int changed = validSituations.addAltitudeOffset(addValue);
|
||||
m_currentSituationChange = CAircraftSituationChange(validSituations, m_model.getCG(), m_model.isVtol(), true, true); // recalculate
|
||||
Q_UNUSED(changed);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_currentSceneryOffset = CLength::null();
|
||||
}
|
||||
return validSituations;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ namespace BlackMisc
|
||||
{
|
||||
Q_ASSERT_X(situations.isSortedAdjustedLatestFirstWithoutNullPositions(), Q_FUNC_INFO, "Expect latest first");
|
||||
}
|
||||
const CAircraftSituationChange change = CAircraftSituationChange(situations, true, true);
|
||||
const CAircraftModel model = this->getAircraftInRangeModelForCallsign(callsign);
|
||||
const CAircraftSituationChange change = CAircraftSituationChange(situations, model.getCG(), model.isVtol(), true, true);
|
||||
return change;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user