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(); |