refactor: Simplify CInterpolator::getInterpolation()

Avoid requiring a do {} while(false) with nested if & break by using a simple if()
This commit is contained in:
Lars Toenning
2024-01-04 22:45:59 +01:00
parent a599cc2792
commit 61282db956

View File

@@ -215,17 +215,16 @@ namespace BlackMisc::Simulation
CInterpolationResult CInterpolator<Derived>::getInterpolation(qint64 currentTimeSinceEpoc, const CInterpolationAndRenderingSetupPerCallsign &setup, uint32_t aircraftNumber)
{
CInterpolationResult result;
do
const bool init = this->initIniterpolationStepData(currentTimeSinceEpoc, setup, aircraftNumber);
Q_ASSERT_X(!m_currentInterpolationStatus.isInterpolated(), Q_FUNC_INFO, "Expect reset status");
if (init || m_unitTest) // ignore failure in unittest
{
const bool init = this->initIniterpolationStepData(currentTimeSinceEpoc, setup, aircraftNumber);
Q_ASSERT_X(!m_currentInterpolationStatus.isInterpolated(), Q_FUNC_INFO, "Expect reset status");
if (!m_unitTest && !init) { break; } // failure in real scenarios, unit tests move on
Q_ASSERT_X(m_currentTimeMsSinceEpoch > 0, Q_FUNC_INFO, "No valid timestamp, interpolator initialized?");
const CAircraftSituation interpolatedSituation = this->getInterpolatedSituation();
const CAircraftParts interpolatedParts = this->getInterpolatedOrGuessedParts(aircraftNumber);
result.setValues(interpolatedSituation, interpolatedParts);
}
while (false);
result.setStatus(m_currentInterpolationStatus, m_currentPartsStatus);
return result;