From 8ffb27ab09ff567a159e5be5a243fd3967084977 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 3 Feb 2019 16:10:44 -0500 Subject: Very basic ECS --- src/level.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/level.h (limited to 'src/level.h') diff --git a/src/level.h b/src/level.h new file mode 100644 index 0000000..3d6fb87 --- /dev/null +++ b/src/level.h @@ -0,0 +1,52 @@ +#ifndef LEVEL_H_678CFCCF +#define LEVEL_H_678CFCCF + +#include "consts.h" +#include "tileset.h" + +class Level { +public: + + Level() + { + size_ = LEVEL_SIZE; + + tiles_.resize(size_.w() * size_.h()); + + for (size_t y = 0; y < size_.h(); y++) + { + for (size_t x = 0; x < size_.w(); x++) + { + tiles_[x+y*size_.w()] = rand() % 10; + } + } + } + + const vec2s& getSize() const + { + return size_; + } + + size_t at(vec2s pos) const + { + return at(pos.x(), pos.y()); + } + + size_t at(size_t x, size_t y) const + { + return tiles_.at(x + size_.w() * y); + } + + const Tileset& getTileset() const + { + return tileset_; + } + +private: + + vec2s size_; + std::vector tiles_; + Tileset tileset_; +}; + +#endif /* end of include guard: LEVEL_H_678CFCCF */ -- cgit 1.4.1