From aa6a7fda5b25a8fa739dab292e89076444959f88 Mon Sep 17 00:00:00 2001 From: vng Date: Fri, 6 May 2011 18:19:17 +0300 Subject: [PATCH] Fix area feature emitting during World generation. --- generator/feature_merger.hpp | 9 ++++++--- generator/world_map_generator.hpp | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/generator/feature_merger.hpp b/generator/feature_merger.hpp index 103c43bad5..0bede7358c 100644 --- a/generator/feature_merger.hpp +++ b/generator/feature_merger.hpp @@ -11,10 +11,13 @@ public: /// but only if they have common point void AppendFeature(FeatureBuilder1Merger const & fb); - void SetAreaSafe() + bool SetAreaSafe() { - if (!m_bArea) - m_bArea = true; + if (m_Geometry.size() < 3) + return false; + + m_bArea = true; + return true; } uint32_t KeyType() const diff --git a/generator/world_map_generator.hpp b/generator/world_map_generator.hpp index 98ff0ea3ce..e02fa8c0ae 100644 --- a/generator/world_map_generator.hpp +++ b/generator/world_map_generator.hpp @@ -40,9 +40,11 @@ private: { if (fbm.FirstPoint() == fbm.LastPoint()) { - fbm.SetAreaSafe(); - (*m_worldBucket)(fbm); - ++m_areasCounter; + if (fbm.SetAreaSafe()) + { + (*m_worldBucket)(fbm); + ++m_areasCounter; + } return true; } else return false;