diff options
Diffstat (limited to 'engines/draci/game.cpp')
-rw-r--r-- | engines/draci/game.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp index ab2302cae4..ddb5a58a5a 100644 --- a/engines/draci/game.cpp +++ b/engines/draci/game.cpp @@ -319,6 +319,21 @@ void Game::loadOverlays() { } void Game::changeRoom(uint roomNum) { + _vm->_roomsArchive->clearCache(); + _vm->_anims->deleteOverlays(); + + int oldRoomNum = _currentRoom._roomNum; + + for (uint i = 0; i < _info->_numObjects; ++i) { + GameObject *obj = &_objects[i]; + + if (i != 0 && obj->_location == oldRoomNum) { + for (uint j = 0; j < obj->_numSeq; ++j) { + _vm->_anims->deleteAnimation(obj->_seqTab[j]); + } + } + } + _currentRoom._roomNum = roomNum; loadRoom(roomNum); loadOverlays(); |