From 2e74e9ee20cee987a7326378c6ab73ec93e25457 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Thu, 29 Oct 2015 23:38:36 -0400 Subject: [PATCH] Move AreaStore container selection logic into getOptimalImplementation --- src/script/lua_api/l_areastore.cpp | 9 +-------- src/util/areastore.cpp | 10 ++++++++++ src/util/areastore.h | 3 ++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/script/lua_api/l_areastore.cpp b/src/script/lua_api/l_areastore.cpp index 8b8b157d7..8e9b2c7d5 100644 --- a/src/script/lua_api/l_areastore.cpp +++ b/src/script/lua_api/l_areastore.cpp @@ -25,9 +25,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irr_v3d.h" #include "util/areastore.h" #include "filesys.h" -#ifndef ANDROID - #include "cmake_config.h" -#endif #include static inline void get_data_and_border_flags(lua_State *L, u8 start_i, @@ -294,11 +291,7 @@ int LuaAreaStore::l_from_file(lua_State *L) LuaAreaStore::LuaAreaStore() { -#if USE_SPATIAL - this->as = new SpatialAreaStore(); -#else - this->as = new VectorAreaStore(); -#endif + this->as = AreaStore::getOptimalImplementation(); } LuaAreaStore::LuaAreaStore(const std::string &type) 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 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;