aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/draci/game.cpp')
-rw-r--r--engines/draci/game.cpp15
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();