diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index a2d54123da..078fa01c12 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -871,7 +871,7 @@ void FrontendRenderer::AcceptMessage(ref_ptr message) { m_transitSchemeRenderer->ClearContextDependentResources(make_ref(m_overlayTree)); break; - } + } case Message::Type::EnableTraffic: { diff --git a/map/framework.cpp b/map/framework.cpp index 201315e112..b9acb9de17 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1053,20 +1053,27 @@ void Framework::FillRouteMarkInfo(RouteMarkPoint const & rmp, place_page::Info & void Framework::FillRoadTypeMarkInfo(RoadWarningMark const & roadTypeMark, place_page::Info & info) const { - CHECK(roadTypeMark.GetFeatureID().IsValid(), ()); - - FeaturesLoaderGuard const guard(m_model.GetDataSource(), roadTypeMark.GetFeatureID().m_mwmId); - auto ft = guard.GetFeatureByIndex(roadTypeMark.GetFeatureID().m_index); - if (!ft) + if (roadTypeMark.GetFeatureID().IsValid()) { - LOG(LERROR, ("Feature can't be loaded:", roadTypeMark.GetFeatureID())); - return; + FeaturesLoaderGuard const guard(m_model.GetDataSource(), roadTypeMark.GetFeatureID().m_mwmId); + auto ft = guard.GetFeatureByIndex(roadTypeMark.GetFeatureID().m_index); + if (ft) + { + FillInfoFromFeatureType(*ft, info); + + info.SetRoadType(*ft, roadTypeMark.GetRoadWarningType(), + RoadWarningMark::GetLocalizedRoadWarningType(roadTypeMark.GetRoadWarningType()), + roadTypeMark.GetDistance()); + info.SetMercator(roadTypeMark.GetPivot()); + return; + } + else + { + LOG(LERROR, ("Feature can't be loaded:", roadTypeMark.GetFeatureID())); + } } - FillInfoFromFeatureType(*ft, info); - - info.SetRoadType(*ft, - roadTypeMark.GetRoadWarningType(), + info.SetRoadType(roadTypeMark.GetRoadWarningType(), RoadWarningMark::GetLocalizedRoadWarningType(roadTypeMark.GetRoadWarningType()), roadTypeMark.GetDistance()); info.SetMercator(roadTypeMark.GetPivot()); diff --git a/map/place_page_info.cpp b/map/place_page_info.cpp index 5c4849984b..8ef05c1f24 100644 --- a/map/place_page_info.cpp +++ b/map/place_page_info.cpp @@ -332,6 +332,13 @@ void Info::SetPartnerIndex(int index) m_partnerName = GetPartnerByIndex(m_partnerIndex).m_name; } +void Info::SetRoadType(RoadWarningMarkType type, std::string const & localizedType, std::string const & distance) +{ + m_roadType = type; + m_uiTitle = localizedType; + m_uiSubtitle = distance; +} + void Info::SetRoadType(FeatureType & ft, RoadWarningMarkType type, std::string const & localizedType, std::string const & distance) { diff --git a/map/place_page_info.hpp b/map/place_page_info.hpp index 04268f9763..b747b0a605 100644 --- a/map/place_page_info.hpp +++ b/map/place_page_info.hpp @@ -212,6 +212,7 @@ public: /// Road type void SetRoadType(FeatureType & ft, RoadWarningMarkType type, std::string const & localizedType, std::string const & distance); + void SetRoadType(RoadWarningMarkType type, std::string const & localizedType, std::string const & distance); RoadWarningMarkType GetRoadType() const { return m_roadType; } /// CountryId