From 98efcc314a8b5f1345a58615843f905c4135a39c Mon Sep 17 00:00:00 2001 From: vng Date: Tue, 5 Jun 2012 10:57:47 -0700 Subject: [PATCH] [generator] Fix bug with normalizing boundary-administrative-4-state type in World.mwm --- generator/feature_merger.cpp | 5 ----- generator/feature_merger.hpp | 5 ++++- generator/world_map_generator.hpp | 9 ++++++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/generator/feature_merger.cpp b/generator/feature_merger.cpp index 172f33cab5..80d204bcce 100644 --- a/generator/feature_merger.cpp +++ b/generator/feature_merger.cpp @@ -295,11 +295,6 @@ void FeatureTypesProcessor::SetMappingTypes(char const * arr1[2], char const * a m_mapping[GetType(arr1, 2)] = GetType(arr2, 2); } -void FeatureTypesProcessor::SetDontNormalizeType(char const * arr[3]) -{ - m_dontNormalize.insert(GetType(arr, 3)); -} - MergedFeatureBuilder1 * FeatureTypesProcessor::operator() (FeatureBuilder1 const & fb) { MergedFeatureBuilder1 * p = new MergedFeatureBuilder1(fb); diff --git a/generator/feature_merger.hpp b/generator/feature_merger.hpp index f98029f819..c0c029ef6c 100644 --- a/generator/feature_merger.hpp +++ b/generator/feature_merger.hpp @@ -108,7 +108,10 @@ public: void SetMappingTypes(char const * arr1[2], char const * arr2[2]); /// Leave original types, for example: boundary-administrative-2. - void SetDontNormalizeType(char const * arr[3]); + template void SetDontNormalizeType(char const * (&arr)[N]) + { + m_dontNormalize.insert(GetType(arr, N)); + } MergedFeatureBuilder1 * operator() (FeatureBuilder1 const & fb); }; diff --git a/generator/world_map_generator.hpp b/generator/world_map_generator.hpp index c94dfa7b8c..db6b573167 100644 --- a/generator/world_map_generator.hpp +++ b/generator/world_map_generator.hpp @@ -49,14 +49,17 @@ public: { // Do not strip last types for given tags, // for example, do not cut 'admin_level' in 'boundary-administrative-XXX'. - char const * arrDontNormalize[][3] = { + char const * arr3[][3] = { { "boundary", "administrative", "2" }, { "boundary", "administrative", "3" }, { "boundary", "administrative", "4" } }; - for (size_t i = 0; i < ARRAY_SIZE(arrDontNormalize); ++i) - m_typesCorrector.SetDontNormalizeType(arrDontNormalize[i]); + for (size_t i = 0; i < ARRAY_SIZE(arr3); ++i) + m_typesCorrector.SetDontNormalizeType(arr3[i]); + + char const * arr4[] = { "boundary", "administrative", "4", "state" }; + m_typesCorrector.SetDontNormalizeType(arr4); } void operator()(FeatureBuilder1 const & fb)