aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2015-10-29 23:38:36 -0400
committerShadowNinja <shadowninja@minetest.net>2016-03-07 16:33:20 -0500
commit2e74e9ee20cee987a7326378c6ab73ec93e25457 (patch)
tree47f180f1e70668b806eba2f091e05249342f43fc /src/util
parent0079887b645e0ee441bd2cfcd7874a1148fdd656 (diff)
downloadminetest-2e74e9ee20cee987a7326378c6ab73ec93e25457.tar.gz
minetest-2e74e9ee20cee987a7326378c6ab73ec93e25457.tar.bz2
minetest-2e74e9ee20cee987a7326378c6ab73ec93e25457.zip
Move AreaStore container selection logic into getOptimalImplementation
Diffstat (limited to 'src/util')
-rw-r--r--src/util/areastore.cpp10
-rw-r--r--src/util/areastore.h3
2 files changed, 12 insertions, 1 deletions
diff --git a/src/util/areastore.cpp b/src/util/areastore.cpp
index b0076faa3..cf972586c 100644
--- a/src/util/areastore.cpp
+++ b/src/util/areastore.cpp
@@ -44,6 +44,16 @@ with this program; if not, write to the Free Software Foundation, Inc.,
AST_OVERLAPS_IN_DIMENSION((amine), (amaxe), (b), Y) && \
AST_OVERLAPS_IN_DIMENSION((amine), (amaxe), (b), Z))
+
+AreaStore *AreaStore::getOptimalImplementation()
+{
+#if USE_SPATIAL
+ return new SpatialAreaStore();
+#else
+ return new VectorAreaStore();
+#endif
+}
+
u16 AreaStore::size() const
{
return areas_map.size();
diff --git a/src/util/areastore.h b/src/util/areastore.h
index c36cbc389..dee1f8bab 100644
--- a/src/util/areastore.h
+++ b/src/util/areastore.h
@@ -52,7 +52,6 @@ struct Area {
std::string data;
};
-std::vector<std::string> get_areastore_typenames();
class AreaStore {
protected:
@@ -93,6 +92,8 @@ public:
const Area *getArea(u32 id) const;
u16 size() const;
+
+ static AreaStore *getOptimalImplementation();
#if 0
bool deserialize(std::istream &is);
void serialize(std::ostream &is) const;