void NoradDelta::checkContinuePoint(const RoomID room, const DirectionConstant direction) { switch (MakeRoomView(room, direction)) { case MakeRoomView(kNorad41, kEast): case MakeRoomView(kNorad49, kEast): case MakeRoomView(kNorad49, kWest): case MakeRoomView(kNorad61, kSouth): case MakeRoomView(kNorad68, kEast): case MakeRoomView(kNorad79, kWest): makeContinuePoint(); break; } }
void TinyTSA::receiveNotification(Notification *notification, const NotificationFlags flags) { ExtraID lastExtra = _lastExtra; Neighborhood::receiveNotification(notification, flags); if ((flags & kExtraCompletedFlag) != 0) { // Only allow input if we're not in the middle of series of queue requests. if (actionQueueEmpty()) _interruptionFilter = kFilterAllInput; switch (lastExtra) { case kTinyTSA37PegasusDepart: _vm->setLastEnergyValue(kFullEnergy); switch (GameState.getTSAState()) { case kPlayerOnWayToNorad: _vm->jumpToNewEnvironment(kNoradAlphaID, kNorad01, kSouth); GameState.setNoradSeenTimeStream(false); GameState.setNoradGassed(true); GameState.setNoradFillingStationOn(false); GameState.setNoradN22MessagePlayed(false); GameState.setNoradPlayedGlobeGame(false); GameState.setNoradBeatRobotWithClaw(false); GameState.setNoradBeatRobotWithDoor(false); GameState.setNoradRetScanGood(false); GameState.setNoradWaitingForLaser(false); GameState.setNoradSubRoomPressure(9); GameState.setNoradSubPrepState(kSubNotPrepped); break; case kPlayerOnWayToMars: _vm->jumpToNewEnvironment(kMarsID, kMars0A, kNorth); GameState.setMarsSeenTimeStream(false); GameState.setMarsHeardUpperPodMessage(false); GameState.setMarsRobotThrownPlayer(false); GameState.setMarsHeardCheckInMessage(false); GameState.setMarsPodAtUpperPlatform(false); GameState.setMarsSeenThermalScan(false); GameState.setMarsArrivedBelow(false); GameState.setMarsSeenRobotAtReactor(false); GameState.setMarsAvoidedReactorRobot(false); GameState.setMarsLockFrozen(false); GameState.setMarsLockBroken(false); GameState.setMarsSecurityDown(false); GameState.setMarsAirlockOpen(false); GameState.setMarsReadyForShuttleTransport(false); GameState.setMarsFinishedCanyonChase(false); GameState.setMarsThreadedMaze(false); break; case kPlayerOnWayToWSC: _vm->jumpToNewEnvironment(kWSCID, kWSC01, kWest); GameState.setWSCSeenTimeStream(false); GameState.setWSCPoisoned(false); GameState.setWSCAnsweredAboutDart(false); GameState.setWSCDartInAnalyzer(false); GameState.setWSCRemovedDart(false); GameState.setWSCAnalyzerOn(false); GameState.setWSCAnalyzedDart(false); GameState.setWSCSawMorph(false); GameState.setWSCDesignedAntidote(false); GameState.setWSCOfficeMessagesOpen(false); GameState.setWSCSeenNerd(false); GameState.setWSCHeardPage1(false); GameState.setWSCHeardPage2(false); GameState.setWSCHeardCheckIn(false); GameState.setWSCDidPlasmaDodge(false); GameState.setWSCSeenSinclairLecture(false); GameState.setWSCBeenAtWSC93(false); GameState.setWSCCatwalkDark(false); GameState.setWSCRobotDead(false); GameState.setWSCRobotGone(false); break; }; break; case kTinyTSA37TimeJumpToPegasus: if (g_energyMonitor) g_energyMonitor->stopEnergyDraining(); switch (GameState.getTSAState()) { case kPlayerOnWayToNorad: arriveFromNorad(); break; case kPlayerOnWayToMars: arriveFromMars(); break; case kPlayerOnWayToWSC: arriveFromWSC(); break; default: break; } break; case kTinyTSA37DownloadToOpMemReview: switch (GameState.getTSAState()) { case kPlayerOnWayToNorad: g_opticalChip->playOpMemMovie(kPoseidonSpotID); break; case kPlayerOnWayToMars: g_opticalChip->playOpMemMovie(kAriesSpotID); break; case kPlayerOnWayToWSC: g_opticalChip->playOpMemMovie(kMercurySpotID); break; } requestExtraSequence(kTinyTSA37OpMemReviewToMainMenu, kExtraCompletedFlag, kFilterNoInput); break; case kTinyTSA37DownloadToMainMenu: case kTinyTSA37OpMemReviewToMainMenu: GameState.setTSAState(kPlayerLockedInPegasus); showMainJumpMenu(); makeContinuePoint(); break; case kTinyTSA37JumpToNoradMenu: setCurrentActivation(kActivationTinyTSAJumpToNorad); break; case kTinyTSA37JumpToMarsMenu: setCurrentActivation(kActivationTinyTSAJumpToMars); break; case kTinyTSA37JumpToWSCMenu: setCurrentActivation(kActivationTinyTSAJumpToWSC); break; case kTinyTSA37CancelNorad: case kTinyTSA37CancelMars: case kTinyTSA37CancelWSC: showMainJumpMenu(); break; } } g_AIArea->checkMiddleArea(); }
void TinyTSA::checkContinuePoint(const RoomID, const DirectionConstant) { makeContinuePoint(); }