summaryrefslogtreecommitdiff
path: root/src/util/areastore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/areastore.cpp')
-rw-r--r--src/util/areastore.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/util/areastore.cpp b/src/util/areastore.cpp
index 17addb3af..58f08a8c2 100644
--- a/src/util/areastore.cpp
+++ b/src/util/areastore.cpp
@@ -160,7 +160,8 @@ void AreaStore::getAreasForPos(std::vector<Area *> *result, v3s16 pos)
bool VectorAreaStore::insertArea(Area *a)
{
- a->id = getNextId();
+ if (a->id == U32_MAX)
+ a->id = getNextId();
std::pair<AreaMap::iterator, bool> res =
areas_map.insert(std::make_pair(a->id, *a));
if (!res.second)
@@ -232,7 +233,8 @@ static inline SpatialIndex::Point get_spatial_point(const v3s16 pos)
bool SpatialAreaStore::insertArea(Area *a)
{
- a->id = getNextId();
+ if (a->id == U32_MAX)
+ a->id = getNextId();
if (!areas_map.insert(std::make_pair(a->id, *a)).second)
// ID is not unique
return false;