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
};