[styles] Added custom road shields for Italian autostrada

Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
This commit is contained in:
Yannik Bloscheck
2025-10-20 21:35:42 +02:00
committed by Yannik Bloscheck
parent f6e7580aff
commit 658c3c0af8
7 changed files with 12 additions and 3 deletions

View File

@@ -195,7 +195,7 @@ m2::PointF GetOffset(int offsetX, int offsetY)
bool IsSymbolRoadShield(ftypes::RoadShield const & shield)
{
return shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway;
return shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway || shield.m_type == ftypes::RoadShieldType::Italy_Autostrada;
}
std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fontScale)
@@ -206,6 +206,8 @@ std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fo
result = shield.m_name.size() <= 2 ? "shield-us-i-thin" : "shield-us-i-wide";
else if (shield.m_type == ftypes::RoadShieldType::US_Highway)
result = shield.m_name.size() <= 2 ? "shield-us-hw-thin" : "shield-us-hw-wide";
else if (shield.m_type == ftypes::RoadShieldType::Italy_Autostrada)
result = "shield-it-a";
else
ASSERT(false, ("This shield type doesn't support symbols:", shield.m_type));
@@ -301,7 +303,8 @@ dp::Color GetRoadShieldTextColor(dp::Color const & baseColor, ftypes::RoadShield
{RoadShieldType::Generic_Pill_Orange_Bordered, kRoadShieldBlackTextColor},
{RoadShieldType::US_Interstate, kRoadShieldWhiteTextColor},
{RoadShieldType::US_Highway, kRoadShieldBlackTextColor},
{RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor}};
{RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor},
{RoadShieldType::Italy_Autostrada, kRoadShieldWhiteTextColor}};
if (auto const * cl = kColors.Find(shield.m_type); cl)
return df::GetColorConstant(*cl);

View File

@@ -473,7 +473,7 @@ class ItalyRoadShieldParser : public SimpleRoadShieldParser
{
public:
explicit ItalyRoadShieldParser(std::string const & baseRoadNumber)
: SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green},
: SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Italy_Autostrada},
{"SS", RoadShieldType::Generic_Blue},
{"SR", RoadShieldType::Generic_Blue},
{"SP", RoadShieldType::Generic_Blue}})
@@ -877,6 +877,7 @@ std::string DebugPrint(RoadShieldType shieldType)
case RoadShieldType::US_Interstate: return "US interstate";
case RoadShieldType::US_Highway: return "US highway";
case RoadShieldType::UK_Highway: return "UK highway";
case RoadShieldType::Italy_Autostrada: return "Italy autostrada";
case RoadShieldType::Hidden: return "hidden";
case RoadShieldType::Count: CHECK(false, ("RoadShieldType::Count is not to be used as a type"));
}

View File

@@ -36,6 +36,7 @@ enum class RoadShieldType
US_Interstate,
US_Highway,
UK_Highway,
Italy_Autostrada,
Hidden,
Count
};