diff --git a/data/styles/default/dark/symbols/shield-hungary-blue-scaled.svg b/data/styles/default/dark/symbols/shield-hungary-blue-scaled.svg new file mode 100644 index 000000000..fe5350e44 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-hungary-blue-scaled.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/dark/symbols/shield-hungary-blue.svg b/data/styles/default/dark/symbols/shield-hungary-blue.svg new file mode 100644 index 000000000..a47ba1bd9 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-hungary-blue.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/dark/symbols/shield-hungary-green-scaled.svg b/data/styles/default/dark/symbols/shield-hungary-green-scaled.svg new file mode 100644 index 000000000..29c613a74 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-hungary-green-scaled.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/dark/symbols/shield-hungary-green.svg b/data/styles/default/dark/symbols/shield-hungary-green.svg new file mode 100644 index 000000000..6ff9e9bb8 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-hungary-green.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/light/symbols/shield-hungary-blue-scaled.svg b/data/styles/default/light/symbols/shield-hungary-blue-scaled.svg new file mode 100644 index 000000000..9901641bf --- /dev/null +++ b/data/styles/default/light/symbols/shield-hungary-blue-scaled.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/light/symbols/shield-hungary-blue.svg b/data/styles/default/light/symbols/shield-hungary-blue.svg new file mode 100644 index 000000000..8075dc832 --- /dev/null +++ b/data/styles/default/light/symbols/shield-hungary-blue.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/light/symbols/shield-hungary-green-scaled.svg b/data/styles/default/light/symbols/shield-hungary-green-scaled.svg new file mode 100644 index 000000000..c12202566 --- /dev/null +++ b/data/styles/default/light/symbols/shield-hungary-green-scaled.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/data/styles/default/light/symbols/shield-hungary-green.svg b/data/styles/default/light/symbols/shield-hungary-green.svg new file mode 100644 index 000000000..23b0bf35a --- /dev/null +++ b/data/styles/default/light/symbols/shield-hungary-green.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/libs/drape_frontend/apply_feature_functors.cpp b/libs/drape_frontend/apply_feature_functors.cpp index 04462da7e..2d24fd36a 100644 --- a/libs/drape_frontend/apply_feature_functors.cpp +++ b/libs/drape_frontend/apply_feature_functors.cpp @@ -196,7 +196,7 @@ m2::PointF GetOffset(int offsetX, int offsetY) bool IsSymbolRoadShield(ftypes::RoadShield const & shield) { - return shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Green || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Blue || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Red || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Turkey || shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway || shield.m_type == ftypes::RoadShieldType::Italy_Autostrada; + return shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Green || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Blue || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Red || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Turkey || shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway || shield.m_type == ftypes::RoadShieldType::Italy_Autostrada || shield.m_type == ftypes::RoadShieldType::Hungary_Green || shield.m_type == ftypes::RoadShieldType::Hungary_Blue; } std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fontScale) @@ -217,6 +217,10 @@ std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fo 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 if (shield.m_type == ftypes::RoadShieldType::Hungary_Green) + result = "shield-hungary-green"; + else if (shield.m_type == ftypes::RoadShieldType::Hungary_Blue) + result = "shield-hungary-blue"; else ASSERT(false, ("This shield type doesn't support symbols:", shield.m_type)); @@ -321,7 +325,9 @@ dp::Color GetRoadShieldTextColor(dp::Color const & baseColor, ftypes::RoadShield {RoadShieldType::US_Interstate, kRoadShieldWhiteTextColor}, {RoadShieldType::US_Highway, kRoadShieldBlackTextColor}, {RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor}, - {RoadShieldType::Italy_Autostrada, kRoadShieldWhiteTextColor}}; + {RoadShieldType::Italy_Autostrada, kRoadShieldWhiteTextColor}, + {RoadShieldType::Hungary_Green, kRoadShieldWhiteTextColor}, + {RoadShieldType::Hungary_Blue, kRoadShieldWhiteTextColor}}; if (auto const * cl = kColors.Find(shield.m_type); cl) return df::GetColorConstant(*cl); diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index 2fae4f449..8cbabb6d9 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -558,6 +558,14 @@ public: {} }; +class HungaryRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit HungaryRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"M", RoadShieldType::Hungary_Blue}}, RoadShieldType::Hungary_Green) + {} +}; + class LativaRoadShieldParser : public SimpleRoadShieldParser { public: @@ -874,6 +882,8 @@ RoadShieldsSetT GetRoadShields(std::string const & mwmName, std::string const & return ItalyRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Turkey") return TurkeyRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Hungary") + return HungaryRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Lativa") return LativaRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Moldova") @@ -974,6 +984,8 @@ std::string DebugPrint(RoadShieldType shieldType) case RoadShieldType::US_Highway: return "US highway"; case RoadShieldType::UK_Highway: return "UK highway"; case RoadShieldType::Italy_Autostrada: return "Italy autostrada"; + case RoadShieldType::Hungary_Green: return "hungary green"; + case RoadShieldType::Hungary_Blue: return "hungary blue"; case RoadShieldType::Hidden: return "hidden"; case RoadShieldType::Count: CHECK(false, ("RoadShieldType::Count is not to be used as a type")); } diff --git a/libs/indexer/road_shields_parser.hpp b/libs/indexer/road_shields_parser.hpp index 5d93f32db..7c8015395 100644 --- a/libs/indexer/road_shields_parser.hpp +++ b/libs/indexer/road_shields_parser.hpp @@ -42,6 +42,8 @@ enum class RoadShieldType US_Highway, UK_Highway, Italy_Autostrada, + Hungary_Green, + Hungary_Blue, Hidden, Count };