PEGASUS: Add a workaround in case the player doesn't get the card bomb

This commit is contained in:
Matthew Hoops 2013-04-12 15:05:02 -04:00
parent d500845de3
commit 78f5e986ce

@ -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;