aboutsummaryrefslogtreecommitdiff
path: root/engines/mads
diff options
context:
space:
mode:
authorFilippos Karapetis2015-03-16 01:41:08 +0200
committerFilippos Karapetis2015-03-16 01:41:08 +0200
commit7a9514567f44f5a717fcfb1994431e54e06ea148 (patch)
tree5c1abc24cd01b7bfc66449ee0715e42f4ba085f5 /engines/mads
parent6d8134f7518a2c368a55cfc49ba0a625a9744645 (diff)
downloadscummvm-rg350-7a9514567f44f5a717fcfb1994431e54e06ea148.tar.gz
scummvm-rg350-7a9514567f44f5a717fcfb1994431e54e06ea148.tar.bz2
scummvm-rg350-7a9514567f44f5a717fcfb1994431e54e06ea148.zip
MADS: Handle a game bug in scene 604, which prevents game completion
Diffstat (limited to 'engines/mads')
-rw-r--r--engines/mads/nebular/nebular_scenes6.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/mads/nebular/nebular_scenes6.cpp b/engines/mads/nebular/nebular_scenes6.cpp
index 046782b772..d94fb17fd4 100644
--- a/engines/mads/nebular/nebular_scenes6.cpp
+++ b/engines/mads/nebular/nebular_scenes6.cpp
@@ -948,8 +948,14 @@ void Scene604::actions() {
_bombMode = 1;
if ((_game._difficulty == DIFFICULTY_HARD) || _globals[kWarnedFloodCity])
handleBombActions();
- else if ((_game._objects.isInInventory(OBJ_POLYCEMENT) && _game._objects.isInInventory(OBJ_CHICKEN))
- && ((_globals[kLineStatus] == LINE_TIED) || ((_game._difficulty == DIFFICULTY_EASY) && (!_globals[kBoatRaised]))))
+ else if (
+ (_game._objects.isInInventory(OBJ_POLYCEMENT) && (_game._objects.isInInventory(OBJ_CHICKEN) || _game._objects.isInInventory(OBJ_CHICKEN_BOMB)))
+ && (_globals[kLineStatus] == LINE_TIED || (_game._difficulty == DIFFICULTY_EASY && !_globals[kBoatRaised]))
+ )
+ // The original can get in an impossible state at this point, if the player has
+ // combined the chicken with the bomb before placing the timer bomb on the ledge.
+ // Therefore, we also allow the player to place the bomb if the chicken bomb is
+ // in the inventory.
handleBombActions();
else if (_game._difficulty == DIFFICULTY_EASY)
_vm->_dialogs->show(60424);