diff options
author | ShadowNinja <shadowninja@minetest.net> | 2015-10-29 23:38:36 -0400 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2016-03-07 16:33:20 -0500 |
commit | 2e74e9ee20cee987a7326378c6ab73ec93e25457 (patch) | |
tree | 47f180f1e70668b806eba2f091e05249342f43fc /src/util | |
parent | 0079887b645e0ee441bd2cfcd7874a1148fdd656 (diff) | |
download | minetest-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.cpp | 10 | ||||
-rw-r--r-- | src/util/areastore.h | 3 |
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; |