summary refs log tree commit diff stats
path: root/src/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp12
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 @@
7int Game::emplaceSprite(std::string alias) { 7int 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
16void 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
15void Game::clearSprites() { 25void Game::clearSprites() {
16 for (std::unique_ptr<System>& system : systems_) { 26 for (std::unique_ptr<System>& system : systems_) {
17 system->clearSpriteCache(); 27 system->clearSpriteCache();