From 2156eb1831b9e2153f96c70956056c4ec71c0da0 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 19 Apr 2020 18:29:49 +0200 Subject: [PATCH] [Matcher] do not ASSERT without modelstring, try default model or give up --- src/blackcore/aircraftmatcher.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/blackcore/aircraftmatcher.cpp b/src/blackcore/aircraftmatcher.cpp index c3831f09c..d7cc848b3 100644 --- a/src/blackcore/aircraftmatcher.cpp +++ b/src/blackcore/aircraftmatcher.cpp @@ -438,15 +438,32 @@ namespace BlackCore } else { - CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QStringLiteral("Matching script: No matching stage script used")); + if (log) CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QStringLiteral("Matching script: No matching stage script used")); } - // copy over callsign validate (again, just in case it was changed in mathcing script) + // copy over callsign validate (again, just in case it was changed in matching script) matchedModel.setCallsign(remoteAircraft.getCallsign()); matchedModel.setModelType(CAircraftModel::TypeModelMatching); - Q_ASSERT_X(!matchedModel.getCallsign().isEmpty(), Q_FUNC_INFO, "Missing callsign"); - Q_ASSERT_X(matchedModel.hasModelString(), Q_FUNC_INFO, "Missing model string"); + // reported here by LT: https://discordapp.com/channels/539048679160676382/539925070550794240/701439918815051846 + if (!matchedModel.hasModelString()) + { + if (log) { CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QStringLiteral("All matching yielded no result, VERY odd...")); } + CAircraftModel defaultModel = this->getDefaultModel(); + if (defaultModel.hasModelString()) + { + matchedModel = defaultModel; + matchedModel.setCallsign(remoteAircraft.getCallsign()); + if (log) { CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QStringLiteral("Using default model '%1'").arg(matchedModel.getModelString())); } + } + else + { + if (log) { CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QStringLiteral("Not even a default model. Giving up").arg(matchedModel.getModelString())); } + } + } + + Q_ASSERT_X(!matchedModel.getCallsign().isEmpty(), Q_FUNC_INFO, "Missing callsign for matched model"); + // Q_ASSERT_X(matchedModel.hasModelString(), Q_FUNC_INFO, "Missing model string for matched model"); if (log) {