diff options
Diffstat (limited to 'src/game.cpp')
| -rw-r--r-- | src/game.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
| diff --git a/src/game.cpp b/src/game.cpp index d1e5b8e..b7ca869 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
| @@ -7,11 +7,21 @@ | |||
| 7 | int Game::emplaceSprite(std::string alias) { | 7 | int Game::emplaceSprite(std::string alias) { |
| 8 | int id = sprites_.size(); | 8 | int id = sprites_.size(); |
| 9 | sprites_.emplace_back(); | 9 | sprites_.emplace_back(); |
| 10 | spriteIds_.push_back(id); | 10 | sprites_.back().alias = alias; |
| 11 | spriteIds_.insert(id); | ||
| 11 | spritesByAlias_[alias] = id; | 12 | spritesByAlias_[alias] = id; |
| 12 | return id; | 13 | return id; |
| 13 | } | 14 | } |
| 14 | 15 | ||
| 16 | void Game::destroySprite(int id) { | ||
| 17 | for (std::unique_ptr<System>& system : systems_) { | ||
| 18 | system->destroySprite(id); | ||
| 19 | } | ||
| 20 | |||
| 21 | spriteIds_.erase(id); | ||
| 22 | spritesByAlias_.erase(sprites_.at(id).alias); | ||
| 23 | } | ||
| 24 | |||
| 15 | void Game::clearSprites() { | 25 | void Game::clearSprites() { |
| 16 | for (std::unique_ptr<System>& system : systems_) { | 26 | for (std::unique_ptr<System>& system : systems_) { |
| 17 | system->clearSpriteCache(); | 27 | system->clearSpriteCache(); |
