25 #ifndef PEGASUS_NEIGHBORHOOD_MARS_MARS_H 26 #define PEGASUS_NEIGHBORHOOD_MARS_MARS_H 28 #include "pegasus/neighborhood/neighborhood.h" 29 #include "pegasus/neighborhood/mars/constants.h" 30 #include "pegasus/neighborhood/mars/energybeam.h" 31 #include "pegasus/neighborhood/mars/gravitoncannon.h" 32 #include "pegasus/neighborhood/mars/planetmover.h" 33 #include "pegasus/neighborhood/mars/reactor.h" 34 #include "pegasus/neighborhood/mars/robotship.h" 35 #include "pegasus/neighborhood/mars/shuttleenergymeter.h" 36 #include "pegasus/neighborhood/mars/shuttlehud.h" 37 #include "pegasus/neighborhood/mars/spacejunk.h" 38 #include "pegasus/neighborhood/mars/tractorbeam.h" 48 kMarsPodCautionDisplayed,
49 kMarsPodCautionDismissed,
50 kMarsCanyonChaseExited,
51 kMarsCanyonChaseFaded,
52 kMarsLaunchTubeReached,
53 kMarsCanyonChaseFinished,
54 kMarsSpaceChaseFinished
64 enum ShuttleWeaponSelection {
80 void flushGameState()
override;
82 uint16 getDateResID()
const override;
84 AirQuality getAirQuality(
const RoomID)
override;
86 void checkAirMask()
override;
88 void showBigExplosion(
const Common::Rect &,
const DisplayOrder);
89 void showLittleExplosion(
const Common::Rect &,
const DisplayOrder);
91 void decreaseRobotShuttleEnergy(
const int,
Common::Point impactPoint);
92 void setUpNextDropTime();
96 uint getNumHints()
override;
99 void shieldOn()
override;
100 void shieldOff()
override;
102 void checkContinuePoint(
const RoomID,
const DirectionConstant)
override;
104 void setSoundFXLevel(
const uint16)
override;
105 void setAmbienceLevel(
const uint16)
override;
107 bool canSolve()
override;
108 void doSolve()
override;
110 bool inColorMatchingGame();
114 kMarsPrivatePodStorageOpenFlag,
115 kMarsPrivatePodTurnLeftFlag,
116 kMarsPrivatePodTurnRightFlag,
117 kMarsPrivateRobotTiredOfWaitingFlag,
118 kMarsPrivatePlatformZoomedInFlag,
119 kMarsPrivateBombExposedFlag,
120 kMarsPrivateDraggingBombFlag,
121 kMarsPrivateInSpaceChaseFlag,
122 kMarsPrivateGotMapChipFlag,
123 kMarsPrivateGotOpticalChipFlag,
124 kMarsPrivateGotShieldChipFlag,
128 void init()
override;
129 void start()
override;
130 void setUpAIRules()
override;
131 void arriveAt(
const RoomID,
const DirectionConstant)
override;
132 void takeItemFromRoom(
Item *)
override;
134 void activateHotspots()
override;
136 void clickInHotspot(
const Input &,
const Hotspot *)
override;
137 InputBits getInputFilter()
override;
139 TimeValue getViewTime(
const RoomID,
const DirectionConstant)
override;
141 void findSpotEntry(
const RoomID,
const DirectionConstant, SpotFlags,
SpotTable::Entry &)
override;
143 void openDoor()
override;
144 void closeDoorOffScreen(
const RoomID,
const DirectionConstant)
override;
145 void startDoorOpenMovie(
const TimeValue,
const TimeValue)
override;
147 int16 getStaticCompassAngle(
const RoomID,
const DirectionConstant)
override;
150 void turnTo(
const DirectionConstant)
override;
151 void startExtraSequence(
const ExtraID,
const NotificationFlags,
const InputBits)
override;
152 void receiveNotification(
Notification *,
const NotificationFlags)
override;
153 void doorOpened()
override;
154 void startUpFromFinishedTunnelPod();
155 void setUpReactorEnergyDrain();
158 void robotTiredOfWaiting();
160 void setUpReactorLevel1();
161 void setUpNextReactorLevel();
162 void makeColorSequence();
163 void doUndoOneGuess();
164 void doReactorGuess(int32 guess);
165 void bombExplodesInGame();
166 void didntFindBomb();
168 void cantMoveThatWay(CanMoveForwardReason)
override;
169 void moveForward()
override;
170 void bumpIntoWall()
override;
171 void turnLeft()
override;
172 void turnRight()
override;
173 void airStageExpired();
174 void loadAmbientLoops()
override;
175 void checkAirlockDoors();
176 void pickedUpItem(
Item *item)
override;
177 void cantOpenDoor(CanOpenDoorReason)
override;
178 void launchMaze007Robot();
179 void launchMaze015Robot();
180 void launchMaze101Robot();
181 void launchMaze104Robot();
182 void launchMaze133Robot();
183 void launchMaze136Robot();
184 void launchMaze184Robot();
185 void timerExpired(
const uint32)
override;
186 void showRobotAtReactor();
187 void spotCompleted()
override;
189 void doCanyonChase(
void);
190 void startMarsTimer(TimeValue, TimeScale, MarsTimerCode);
192 void throwAwayMarsShuttle();
193 void startUpFromFinishedSpaceChase();
194 void startUpFromSpaceChase();
195 void transportOutFromSpaceChase(
bool);
196 void spaceChaseClick(
const Input &,
const HotSpotID);
198 void playSpaceAmbient();
211 uint _reactorStage, _nextGuess;
212 int32 _currentGuess[3];
222 Movie _canyonChaseMovie;
228 Movie _leftShuttleMovie;
229 Movie _rightShuttleMovie;
230 Movie _lowerLeftShuttleMovie;
231 Movie _lowerRightShuttleMovie;
232 Movie _centerShuttleMovie;
233 Movie _upperLeftShuttleMovie;
234 Movie _upperRightShuttleMovie;
235 Movie _leftDamageShuttleMovie;
236 Movie _rightDamageShuttleMovie;
251 ShuttleWeaponSelection _weaponSelection;
Definition: neighborhood.h:111
Definition: planetmover.h:34
Definition: energybeam.h:32
Definition: tunnelpod.h:35
Definition: spacejunk.h:39
Definition: gravitoncannon.h:33
Definition: notification.h:53
Definition: elements.h:43
Definition: interaction.h:37
Definition: tractorbeam.h:32
Definition: robotship.h:35
Definition: shuttleenergymeter.h:44
Definition: hotspotinfo.h:49
Definition: ai_action.h:33
Definition: surface.h:125
Definition: inventoryitem.h:39
Definition: canyonchase.h:51
Definition: shuttlehud.h:33