aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Crozat2017-12-13 21:49:33 +0000
committerThierry Crozat2018-01-23 02:15:43 +0000
commitfa426e4dc3070b5945367db704c3a78db7759960 (patch)
treebebeadf7935be40c4f34253308453b0f99fc4467
parentc09ecdb19cfc2381010718a7f76fca4dd2465a95 (diff)
downloadscummvm-rg350-fa426e4dc3070b5945367db704c3a78db7759960.tar.gz
scummvm-rg350-fa426e4dc3070b5945367db704c3a78db7759960.tar.bz2
scummvm-rg350-fa426e4dc3070b5945367db704c3a78db7759960.zip
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).
-rw-r--r--engines/supernova/rooms.cpp10
1 files 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