Skip to content

Commit

Permalink
Move AreaStore container selection logic into getOptimalImplementation
Browse files Browse the repository at this point in the history
  • Loading branch information
ShadowNinja committed Mar 7, 2016
1 parent 0079887 commit 2e74e9e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
9 changes: 1 addition & 8 deletions src/script/lua_api/l_areastore.cpp
Expand Up @@ -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 <fstream>

static inline void get_data_and_border_flags(lua_State *L, u8 start_i,
Expand Down Expand Up @@ -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)
Expand Down
10 changes: 10 additions & 0 deletions src/util/areastore.cpp
Expand Up @@ -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();
Expand Down
3 changes: 2 additions & 1 deletion src/util/areastore.h
Expand Up @@ -52,7 +52,6 @@ struct Area {
std::string data;
};

std::vector<std::string> get_areastore_typenames();

class AreaStore {
protected:
Expand Down Expand Up @@ -93,6 +92,8 @@ class AreaStore {

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;
Expand Down

0 comments on commit 2e74e9e

Please sign in to comment.