mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-04 16:56:53 +08:00
refs #827, preferColorLiveries as parameter for scoreFull
flag will be set in aircraft matcher
This commit is contained in:
committed by
Mathew Sutcliffe
parent
423d18b0cd
commit
fce4cb8a4d
@@ -542,6 +542,9 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
Q_UNUSED(mode);
|
Q_UNUSED(mode);
|
||||||
CAircraftModelList usedModelSet;
|
CAircraftModelList usedModelSet;
|
||||||
|
static const bool NoZeroScores = true;
|
||||||
|
static const bool PreferColorLiveries = true;
|
||||||
|
static const bool DoNotMindAboutColorLiveries = false;
|
||||||
|
|
||||||
// VTOL
|
// VTOL
|
||||||
ScoredModels map;
|
ScoredModels map;
|
||||||
@@ -560,25 +563,34 @@ namespace BlackCore
|
|||||||
// Aircraft and airline ICAO
|
// Aircraft and airline ICAO
|
||||||
const CAircraftModelList byAircraftAndAirline(usedModelSet.findByIcaoDesignators(remoteAircraft.getAircraftIcaoCode(), remoteAircraft.getAirlineIcaoCode()));
|
const CAircraftModelList byAircraftAndAirline(usedModelSet.findByIcaoDesignators(remoteAircraft.getAircraftIcaoCode(), remoteAircraft.getAirlineIcaoCode()));
|
||||||
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by aircraft/airline ICAOs '%2'/'%3' for scoring").arg(byAircraftAndAirline.size()).arg(remoteAircraft.getAircraftIcaoCode().getDesignatorDbKey(), remoteAircraft.getAirlineIcaoCode().getVDesignatorDbKey()), getLogCategories());
|
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by aircraft/airline ICAOs '%2'/'%3' for scoring").arg(byAircraftAndAirline.size()).arg(remoteAircraft.getAircraftIcaoCode().getDesignatorDbKey(), remoteAircraft.getAirlineIcaoCode().getVDesignatorDbKey()), getLogCategories());
|
||||||
map = byAircraftAndAirline.scoreFull(remoteAircraft.getModel());
|
|
||||||
|
// we have airline and aircraft ICAO, so use airline liveries
|
||||||
|
map = byAircraftAndAirline.scoreFull(remoteAircraft.getModel(), DoNotMindAboutColorLiveries, NoZeroScores, log);
|
||||||
}
|
}
|
||||||
else if (remoteAircraft.hasAircraftDesignator() && usedModelSet.contains(&CAircraftModel::getAircraftIcaoCodeDesignator, remoteAircraft.getAircraftIcaoCodeDesignator()))
|
else if (remoteAircraft.hasAircraftDesignator() && usedModelSet.contains(&CAircraftModel::getAircraftIcaoCodeDesignator, remoteAircraft.getAircraftIcaoCodeDesignator()))
|
||||||
{
|
{
|
||||||
// Aircraft ICAO only
|
// Aircraft ICAO only
|
||||||
const CAircraftModelList byAircraft(usedModelSet.findByIcaoDesignators(remoteAircraft.getAircraftIcaoCode(), CAirlineIcaoCode()));
|
const CAircraftModelList byAircraft(usedModelSet.findByIcaoDesignators(remoteAircraft.getAircraftIcaoCode(), CAirlineIcaoCode()));
|
||||||
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by aircraft ICAO '%2' (no airline) for scoring").arg(byAircraft.size()).arg(remoteAircraft.getAircraftIcaoCode().getDesignatorDbKey()), getLogCategories());
|
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by aircraft ICAO '%2' (no airline) for scoring").arg(byAircraft.size()).arg(remoteAircraft.getAircraftIcaoCode().getDesignatorDbKey()), getLogCategories());
|
||||||
map = byAircraft.scoreFull(remoteAircraft.getModel());
|
|
||||||
|
// we do not have an airline for that aircraft, prefer color liveries
|
||||||
|
// this could also become a setting
|
||||||
|
map = byAircraft.scoreFull(remoteAircraft.getModel(), PreferColorLiveries, NoZeroScores, log);
|
||||||
}
|
}
|
||||||
else if (remoteAircraft.getAircraftIcaoCode().hasValidCombinedType() && usedModelSet.containsCombinedType(remoteAircraft.getAircraftIcaoCode().getCombinedType()))
|
else if (remoteAircraft.getAircraftIcaoCode().hasValidCombinedType() && usedModelSet.containsCombinedType(remoteAircraft.getAircraftIcaoCode().getCombinedType()))
|
||||||
{
|
{
|
||||||
const CAircraftModelList byAircraft(usedModelSet.findByCombinedType(remoteAircraft.getAircraftIcaoCode().getCombinedType()));
|
const CAircraftModelList byAircraft(usedModelSet.findByCombinedType(remoteAircraft.getAircraftIcaoCode().getCombinedType()));
|
||||||
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by combined type '%2' for scoring").arg(byAircraft.size()).arg(remoteAircraft.getAircraftIcaoCode().getCombinedType()), getLogCategories());
|
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using reduced set of %1 models by combined type '%2' for scoring").arg(byAircraft.size()).arg(remoteAircraft.getAircraftIcaoCode().getCombinedType()), getLogCategories());
|
||||||
map = byAircraft.scoreFull(remoteAircraft.getModel());
|
|
||||||
|
// No aircraft / airline ICAO, we prefer color liveries
|
||||||
|
map = byAircraft.scoreFull(remoteAircraft.getModel(), PreferColorLiveries, NoZeroScores, log);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using set with %1 models").arg(usedModelSet.size()), getLogCategories());
|
CMatchingUtils::addLogDetailsToList(log, remoteAircraft, QString("Using set with %1 models").arg(usedModelSet.size()), getLogCategories());
|
||||||
map = usedModelSet.scoreFull(remoteAircraft.getModel());
|
|
||||||
|
// Poor men`s matching
|
||||||
|
map = usedModelSet.scoreFull(remoteAircraft.getModel(), PreferColorLiveries, NoZeroScores, log);
|
||||||
}
|
}
|
||||||
|
|
||||||
CAircraftModel matchedModel;
|
CAircraftModel matchedModel;
|
||||||
|
|||||||
@@ -586,12 +586,9 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ScoredModels CAircraftModelList::scoreFull(const CAircraftModel &remoteModel, bool ignoreZeroScores, CStatusMessageList *log) const
|
ScoredModels CAircraftModelList::scoreFull(const CAircraftModel &remoteModel, bool preferColorLiveries, bool ignoreZeroScores, CStatusMessageList *log) const
|
||||||
{
|
{
|
||||||
ScoredModels scoreMap;
|
ScoredModels scoreMap;
|
||||||
// prefer colors if there is no airline
|
|
||||||
const bool hasAirlineDesignator = remoteModel.hasAirlineDesignator() && this->contains(&CAircraftModel::getAirlineIcaoCodeDesignator, remoteModel.getAirlineIcaoCodeDesignator());
|
|
||||||
const bool preferColorLiveries = !hasAirlineDesignator;
|
|
||||||
|
|
||||||
// prefer colors if there is no airline
|
// prefer colors if there is no airline
|
||||||
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QString("Prefer color liveries: %1, airline: '%2'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator()));
|
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QString("Prefer color liveries: %1, airline: '%2'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator()));
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace BlackMisc
|
|||||||
void normalizeFileNamesForDb();
|
void normalizeFileNamesForDb();
|
||||||
|
|
||||||
//! Score by aircraft ICAO code
|
//! Score by aircraft ICAO code
|
||||||
ScoredModels scoreFull(const CAircraftModel &remoteModel, bool ignoreZeroScores = true, CStatusMessageList *log = nullptr) const;
|
ScoredModels scoreFull(const CAircraftModel &remoteModel, bool preferColorLiveries, bool ignoreZeroScores = true, CStatusMessageList *log = nullptr) const;
|
||||||
|
|
||||||
//! Completer strings
|
//! Completer strings
|
||||||
QStringList toCompleterStrings(bool sorted = true) const;
|
QStringList toCompleterStrings(bool sorted = true) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user