aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2013-04-12 15:05:02 -0400
committerMatthew Hoops2013-04-12 15:06:14 -0400
commit78f5e986cee705fa0833227d202f2563df07e8f9 (patch)
treeb43f8e37dd9d8af07a9bd67885ef9d391cceb898
parentd500845de372f5d9231a24c17065a37508006bd9 (diff)
downloadscummvm-rg350-78f5e986cee705fa0833227d202f2563df07e8f9.tar.gz
scummvm-rg350-78f5e986cee705fa0833227d202f2563df07e8f9.tar.bz2
scummvm-rg350-78f5e986cee705fa0833227d202f2563df07e8f9.zip
PEGASUS: Add a workaround in case the player doesn't get the card bomb
-rw-r--r--engines/pegasus/neighborhood/mars/mars.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/pegasus/neighborhood/mars/mars.cpp b/engines/pegasus/neighborhood/mars/mars.cpp
index 959eaa0a70..aa7ccd596c 100644
--- a/engines/pegasus/neighborhood/mars/mars.cpp
+++ b/engines/pegasus/neighborhood/mars/mars.cpp
@@ -1035,7 +1035,6 @@ void Mars::checkContinuePoint(const RoomID room, const DirectionConstant directi
case MakeRoomView(kMars51, kEast):
case MakeRoomView(kMars56, kEast):
case MakeRoomView(kMars60, kWest):
- case MakeRoomView(kMarsMaze004, kWest):
case MakeRoomView(kMarsMaze009, kWest):
case MakeRoomView(kMarsMaze012, kWest):
case MakeRoomView(kMarsMaze037, kWest):
@@ -1059,6 +1058,11 @@ void Mars::checkContinuePoint(const RoomID room, const DirectionConstant directi
case MakeRoomView(kMarsMaze199, kWest):
makeContinuePoint();
break;
+ case MakeRoomView(kMarsMaze004, kWest):
+ // WORKAROUND: See Mars::arriveAt() for more details.
+ if (GameState.isTakenItemID(kCardBomb))
+ makeContinuePoint();
+ break;
case MakeRoomView(kMars05, kEast):
case MakeRoomView(kMars06, kEast):
case MakeRoomView(kMars07, kEast):
@@ -1393,6 +1397,13 @@ void Mars::arriveAt(const RoomID room, const DirectionConstant direction) {
case MakeRoomView(kMarsRobotShuttle, kEast):
setCurrentActivation(kActivationRobotHeadClosed);
break;
+ case MakeRoomView(kMarsMaze004, kWest):
+ // WORKAROUND: You're not supposed to continue through the maze without the
+ // bomb or the game will not be completable. We're using the previously unused
+ // bomb death here to prevent progress (you didn't find the bomb, after all).
+ if (!GameState.isTakenItemID(kCardBomb))
+ didntFindBomb();
+ break;
case MakeRoomView(kMarsMaze007, kNorth):
launchMaze007Robot();
break;