diff options
Diffstat (limited to 'src/game.h')
-rw-r--r-- | src/game.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/game.h b/src/game.h index a717d53..189cabb 100644 --- a/src/game.h +++ b/src/game.h | |||
@@ -8,6 +8,7 @@ | |||
8 | #include "sprite.h" | 8 | #include "sprite.h" |
9 | #include "map.h" | 9 | #include "map.h" |
10 | #include "consts.h" | 10 | #include "consts.h" |
11 | #include "transform_system.h" | ||
11 | 12 | ||
12 | struct Input { | 13 | struct Input { |
13 | bool left = false; | 14 | bool left = false; |
@@ -19,14 +20,20 @@ struct Input { | |||
19 | class Game { | 20 | class Game { |
20 | public: | 21 | public: |
21 | 22 | ||
23 | Game() : transform_(*this) {} | ||
24 | |||
22 | int addSprite(Sprite sprite); | 25 | int addSprite(Sprite sprite); |
23 | 26 | ||
24 | const Sprite& getSprite(int id) const { | 27 | const Sprite& getSprite(int id) const { |
25 | return sprites_.at(id); | 28 | return sprites_.at(id); |
26 | } | 29 | } |
27 | 30 | ||
28 | const std::vector<Sprite>& getSprites() { | 31 | Sprite& getSprite(int id) { |
29 | return sprites_; | 32 | return sprites_.at(id); |
33 | } | ||
34 | |||
35 | const std::vector<int>& getSprites() { | ||
36 | return spriteIds_; | ||
30 | } | 37 | } |
31 | 38 | ||
32 | auto spriteView() const { | 39 | auto spriteView() const { |
@@ -35,13 +42,8 @@ public: | |||
35 | }); | 42 | }); |
36 | } | 43 | } |
37 | 44 | ||
38 | auto getSpritesByY() const { | 45 | TransformSystem& getTransformSystem() { return transform_; } |
39 | return spritesByY_ | ranges::views::transform([] (const std::tuple<int, int>& val) { | ||
40 | return std::get<1>(val); | ||
41 | }); | ||
42 | } | ||
43 | 46 | ||
44 | void moveSprite(int id, vec2i newLoc); | ||
45 | 47 | ||
46 | void setSpriteState(int id, std::string state) { | 48 | void setSpriteState(int id, std::string state) { |
47 | sprites_[id].setState(std::move(state)); | 49 | sprites_[id].setState(std::move(state)); |
@@ -77,8 +79,10 @@ public: | |||
77 | 79 | ||
78 | private: | 80 | private: |
79 | 81 | ||
82 | TransformSystem transform_; | ||
83 | |||
84 | std::vector<int> spriteIds_; | ||
80 | std::vector<Sprite> sprites_; | 85 | std::vector<Sprite> sprites_; |
81 | std::set<std::tuple<int, int>> spritesByY_; | ||
82 | std::unique_ptr<Map> map_; | 86 | std::unique_ptr<Map> map_; |
83 | 87 | ||
84 | // Camera | 88 | // Camera |