From 78f5e986cee705fa0833227d202f2563df07e8f9 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Fri, 12 Apr 2013 15:05:02 -0400 Subject: PEGASUS: Add a workaround in case the player doesn't get the card bomb --- engines/pegasus/neighborhood/mars/mars.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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; -- cgit v1.2.3