From fa426e4dc3070b5945367db704c3a78db7759960 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Wed, 13 Dec 2017 21:49:33 +0000 Subject: SUPERNOVA: Fix clearing inventory when landing on Axacuss If the player did pik up the discman earlier in the game, it should be kept. Also the inventory scroll needs to be reset after removing almost all the objects as otherwise we may see what seems to be an empty inventory with no arrow (although we can still scroll when clicking on the space where the up arrow should be). --- engines/supernova/rooms.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index b5ee3e1398..f48c06cae4 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -2322,9 +2322,15 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoMeetup3_27, 1, 1 + 128); _gm->reply(kStringArsanoMeetup3_28, 1, 1 + 128); _vm->paletteFadeOut(); + // Remove all objects from the inventory except the Knife, Watch and Discman _gm->_inventory.clear(); - _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(1)); // Knife - _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(2)); // Watch + _gm->_inventoryScroll = 0; + if (_gm->_rooms[INTRO]->getObject(1)->hasProperty(CARRIED)) // Knife + _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(1)); + if (_gm->_rooms[INTRO]->getObject(2)->hasProperty(CARRIED)) // Watch + _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(2)); + if (_gm->_rooms[INTRO]->getObject(3)->hasProperty(CARRIED)) // Discman + _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(3)); _gm->changeRoom(CELL); _gm->_state._dream = true; } else -- cgit v1.2.3