diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/character_system.cpp | 8 | ||||
-rw-r--r-- | src/character_system.h | 2 | ||||
-rw-r--r-- | src/game.cpp | 8 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/character_system.cpp b/src/character_system.cpp index d4765bf..888914f 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp | |||
@@ -238,3 +238,11 @@ void CharacterSystem::stopRunningSound(Sprite& sprite) { | |||
238 | sprite.runningSfxChannel = -1; | 238 | sprite.runningSfxChannel = -1; |
239 | } | 239 | } |
240 | } | 240 | } |
241 | |||
242 | void CharacterSystem::clearSpriteCache() { | ||
243 | for (Sprite& sprite : game_.getSprites() | game_.spriteView()) { | ||
244 | if (sprite.runningSfxChannel != -1) { | ||
245 | stopRunningSound(sprite); | ||
246 | } | ||
247 | } | ||
248 | } | ||
diff --git a/src/character_system.h b/src/character_system.h index 18b6c46..39b3958 100644 --- a/src/character_system.h +++ b/src/character_system.h | |||
@@ -31,6 +31,8 @@ public: | |||
31 | 31 | ||
32 | void endCrouch(int spriteId); | 32 | void endCrouch(int spriteId); |
33 | 33 | ||
34 | void clearSpriteCache() override; | ||
35 | |||
34 | private: | 36 | private: |
35 | 37 | ||
36 | void stopRunning(int spriteId); | 38 | void stopRunning(int spriteId); |
diff --git a/src/game.cpp b/src/game.cpp index 530068c..dc3a5ba 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
@@ -13,13 +13,13 @@ int Game::emplaceSprite(std::string alias) { | |||
13 | } | 13 | } |
14 | 14 | ||
15 | void Game::clearSprites() { | 15 | void Game::clearSprites() { |
16 | sprites_.clear(); | ||
17 | spriteIds_.clear(); | ||
18 | spritesByAlias_.clear(); | ||
19 | |||
20 | for (std::unique_ptr<System>& system : systems_) { | 16 | for (std::unique_ptr<System>& system : systems_) { |
21 | system->clearSpriteCache(); | 17 | system->clearSpriteCache(); |
22 | } | 18 | } |
19 | |||
20 | sprites_.clear(); | ||
21 | spriteIds_.clear(); | ||
22 | spritesByAlias_.clear(); | ||
23 | } | 23 | } |
24 | 24 | ||
25 | void Game::loadMap(std::string filename, std::string warpPoint) { | 25 | void Game::loadMap(std::string filename, std::string warpPoint) { |