diff --git a/map/routing_mark.cpp b/map/routing_mark.cpp index c157cffa62..8a2180acea 100644 --- a/map/routing_mark.cpp +++ b/map/routing_mark.cpp @@ -85,6 +85,34 @@ void RouteMarkPoint::SetPassed(bool isPassed) m_markData.m_isPassed = isPassed; } +uint16_t RouteMarkPoint::GetPriority() const +{ + switch (m_markData.m_pointType) + { + case RouteMarkType::Start: return static_cast(Priority::RouteStart); + case RouteMarkType::Finish: return static_cast(Priority::RouteFinish); + case RouteMarkType::Intermediate: + { + switch (m_markData.m_intermediateIndex) + { + case 0: return static_cast(Priority::RouteIntermediateA); + case 1: return static_cast(Priority::RouteIntermediateB); + default: return static_cast(Priority::RouteIntermediateC); + } + } + } +} + +uint32_t RouteMarkPoint::GetIndex() const +{ + switch (m_markData.m_pointType) + { + case RouteMarkType::Start: return 0; + case RouteMarkType::Finish: return 1; + case RouteMarkType::Intermediate: return static_cast(m_markData.m_intermediateIndex + 2); + } +} + void RouteMarkPoint::SetMarkData(RouteMarkData && data) { SetDirty(); @@ -123,19 +151,19 @@ drape_ptr RouteMarkPoint::GetSymbolNames( std::string name; switch (m_markData.m_pointType) { - case RouteMarkType::Start: name = "route-point-start"; break; - case RouteMarkType::Intermediate: - { - switch (m_markData.m_intermediateIndex) + case RouteMarkType::Start: name = "route-point-start"; break; + case RouteMarkType::Finish: name = "route-point-finish"; break; + case RouteMarkType::Intermediate: { - case 0: name = "route-point-a"; break; - case 1: name = "route-point-b"; break; - case 2: name = "route-point-c"; break; - default: name = ""; break; + switch (m_markData.m_intermediateIndex) + { + case 0: name = "route-point-a"; break; + case 1: name = "route-point-b"; break; + case 2: name = "route-point-c"; break; + default: name = ""; break; + } + break; } - break; - } - case RouteMarkType::Finish: name = "route-point-finish"; break; } auto symbol = make_unique_dp(); symbol->insert(std::make_pair(1 /* zoomLevel */, name)); diff --git a/map/routing_mark.hpp b/map/routing_mark.hpp index f2795d4af5..0a1334746e 100644 --- a/map/routing_mark.hpp +++ b/map/routing_mark.hpp @@ -55,6 +55,9 @@ public: void SetPassed(bool isPassed); bool IsPassed() const { return m_markData.m_isPassed; } + uint16_t GetPriority() const override; + uint32_t GetIndex() const override; + RouteMarkData const & GetMarkData() const { return m_markData; } void SetMarkData(RouteMarkData && data); diff --git a/map/transit/transit_display.cpp b/map/transit/transit_display.cpp index b9360aa372..4eaf5baea5 100644 --- a/map/transit/transit_display.cpp +++ b/map/transit/transit_display.cpp @@ -25,7 +25,7 @@ const int kSmallIconZoom = 1; const int kMediumIconZoom = 10; const int kLargeIconZoom = 15; -const int kMinStopTitleZoom = 14; +const int kMinStopTitleZoom = 13; const int kTransferTitleOffset = 1; const int kStopTitleOffset = 0; diff --git a/map/user_mark.hpp b/map/user_mark.hpp index ba247bd821..f158a36279 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -21,6 +21,11 @@ public: enum class Priority: uint16_t { Default = 0, + RouteStart, + RouteFinish, + RouteIntermediateC, + RouteIntermediateB, + RouteIntermediateA, TransitStop, TransitGate, TransitTransfer,