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 |
