diff options
-rw-r--r-- | engines/pegasus/neighborhood/mars/mars.cpp | 13 |
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; |