diff options
author | Strangerke | 2014-05-18 23:00:04 +0200 |
---|---|---|
committer | Strangerke | 2014-05-18 23:00:04 +0200 |
commit | 7f82b0eafa1663c6f8a46ba62f267cfef85dd2c5 (patch) | |
tree | 23f2e2982fa045f67e4eb5604f9ffcf88ccbeea9 /engines/mads | |
parent | edb5db36b525526eea3622c38ec1057e103e76a2 (diff) | |
download | scummvm-rg350-7f82b0eafa1663c6f8a46ba62f267cfef85dd2c5.tar.gz scummvm-rg350-7f82b0eafa1663c6f8a46ba62f267cfef85dd2c5.tar.bz2 scummvm-rg350-7f82b0eafa1663c6f8a46ba62f267cfef85dd2c5.zip |
MADS: Rework removePlayerSprites(), get rid of another TODO
Diffstat (limited to 'engines/mads')
-rw-r--r-- | engines/mads/animation.h | 2 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes2.cpp | 2 | ||||
-rw-r--r-- | engines/mads/player.cpp | 11 |
3 files changed, 10 insertions, 5 deletions
diff --git a/engines/mads/animation.h b/engines/mads/animation.h index 0556c3aa19..a1d957ee45 100644 --- a/engines/mads/animation.h +++ b/engines/mads/animation.h @@ -217,6 +217,8 @@ public: bool freeFlag() const { return _freeFlag; } bool getAnimMode() const { return _header._animMode; } int roomNumber() const { return _header._roomNumber; } + + void resetSpriteSetsCount() { _header._spriteSetsCount = 0; } // CHECKME: See if it doesn't leak the memory when the destructor is called }; } // End of namespace MADS diff --git a/engines/mads/nebular/nebular_scenes2.cpp b/engines/mads/nebular/nebular_scenes2.cpp index b423b9f9ef..0f8af57651 100644 --- a/engines/mads/nebular/nebular_scenes2.cpp +++ b/engines/mads/nebular/nebular_scenes2.cpp @@ -1340,7 +1340,7 @@ void Scene205::actions() { _vm->_sound->command(27); } else if (_game._trigger == 1) { if (_scene->_activeAnimation != nullptr) - warning("scene->_activeAnimation._spriteSetsCount = 0;"); + _scene->_activeAnimation->resetSpriteSetsCount(); _vm->_dialogs->show(20516); _scene->_reloadSceneFlag = true; diff --git a/engines/mads/player.cpp b/engines/mads/player.cpp index edec92ad74..3672c80f32 100644 --- a/engines/mads/player.cpp +++ b/engines/mads/player.cpp @@ -767,17 +767,20 @@ void Player::synchronize(Common::Serializer &s) { } void Player::removePlayerSprites() { + Scene &scene = _vm->_game->_scene; int heroSpriteId = _spritesStart; for (int i = 0; i < 8; i++) { if (_spriteSetsPresent[i]) { - _vm->_game->_scene._sprites.remove(heroSpriteId++); + scene._sprites.remove(heroSpriteId++); _spriteSetsPresent[i] = false; } } - _vm->_game->_scene._spriteSlots.clear(); - _vm->_game->_scene._spriteSlots.fullRefresh(); - _vm->_game->_player._visible = false; + if (scene._activeAnimation != nullptr) + scene._activeAnimation->resetSpriteSetsCount(); + + scene._spriteSlots.fullRefresh(); + _visible = false; } } // End of namespace MADS |