summary refs log tree commit diff stats
path: root/src/tileset.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tileset.h')
-rw-r--r--src/tileset.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/tileset.h b/src/tileset.h index 8a565bc..745ea1d 100644 --- a/src/tileset.h +++ b/src/tileset.h
@@ -1,15 +1,53 @@
1#ifndef TILESET_H_B89AE7A1 1#ifndef TILESET_H_B89AE7A1
2#define TILESET_H_B89AE7A1 2#define TILESET_H_B89AE7A1
3 3
4#include <string>
5#include "renderer.h"
4#include "enums.h" 6#include "enums.h"
7#include "consts.h"
5 8
6class Tileset { 9class Tileset {
7public: 10public:
8 11
12 Tileset(SDL_Renderer* ren, std::string filename)
13 {
14 surface_ptr surf(IMG_Load(("../res/" + filename).c_str()));
15
16 if (!surf)
17 {
18 throw img_error();
19 }
20
21 image_.reset(SDL_CreateTextureFromSurface(ren, surf.get()));
22 size_ = { surf->w, surf->h };
23 numTiles_ = size_.h() / TILE_SIZE.h();
24 }
25
9 bool canEntityMoveTo(ColliderType collider, size_t tile) const 26 bool canEntityMoveTo(ColliderType collider, size_t tile) const
10 { 27 {
11 return true; 28 return true;
12 } 29 }
30
31 const texture_ptr& getImage() const
32 {
33 return image_;
34 }
35
36 const vec2i& getSize() const
37 {
38 return size_;
39 }
40
41 size_t getNumTiles() const
42 {
43 return numTiles_;
44 }
45
46private:
47
48 texture_ptr image_;
49 vec2i size_;
50 size_t numTiles_;
13}; 51};
14 52
15#endif /* end of include guard: TILESET_H_B89AE7A1 */ 53#endif /* end of include guard: TILESET_H_B89AE7A1 */