aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/neighborhood/mars/mars.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus/neighborhood/mars/mars.h')
-rwxr-xr-xengines/pegasus/neighborhood/mars/mars.h270
1 files changed, 25 insertions, 245 deletions
diff --git a/engines/pegasus/neighborhood/mars/mars.h b/engines/pegasus/neighborhood/mars/mars.h
index 8e199d1bc1..01474ab831 100755
--- a/engines/pegasus/neighborhood/mars/mars.h
+++ b/engines/pegasus/neighborhood/mars/mars.h
@@ -27,241 +27,19 @@
#define PEGASUS_NEIGHBORHOOD_MARS_MARS_H
#include "pegasus/neighborhood/neighborhood.h"
+#include "pegasus/neighborhood/mars/constants.h"
+#include "pegasus/neighborhood/mars/energybeam.h"
+#include "pegasus/neighborhood/mars/gravitoncannon.h"
+#include "pegasus/neighborhood/mars/planetmover.h"
#include "pegasus/neighborhood/mars/reactor.h"
#include "pegasus/neighborhood/mars/robotship.h"
#include "pegasus/neighborhood/mars/shuttleenergymeter.h"
+#include "pegasus/neighborhood/mars/shuttlehud.h"
+#include "pegasus/neighborhood/mars/spacejunk.h"
+#include "pegasus/neighborhood/mars/tractorbeam.h"
namespace Pegasus {
-// Element Coordinates
-
-const tCoordType kUndoHiliteLeft = kNavAreaLeft + 140;
-const tCoordType kUndoHiliteTop = kNavAreaTop + 36;
-
-const tCoordType kCurrentGuessLeft = kNavAreaLeft + 146;
-const tCoordType kCurrentGuessTop = kNavAreaTop + 90;
-
-const tCoordType kReactorChoiceHiliteLeft = kNavAreaLeft + 116;
-const tCoordType kReactorChoiceHiliteTop = kNavAreaTop + 158;
-
-const tCoordType kReactorHistoryLeft = kNavAreaLeft + 302;
-const tCoordType kReactorHistoryTop = kNavAreaTop + 39;
-
-const tCoordType kAnswerLeft = kNavAreaLeft + 304;
-const tCoordType kAnswerTop = kNavAreaTop + 180;
-
-const tCoordType kShuttle1Left = 0;
-const tCoordType kShuttle1Top = 0;
-
-const tCoordType kShuttle2Left = 0;
-const tCoordType kShuttle2Top = 96;
-
-const tCoordType kShuttle3Left = 500;
-const tCoordType kShuttle3Top = 96;
-
-const tCoordType kShuttle4Left = 0;
-const tCoordType kShuttle4Top = 320;
-
-const tCoordType kShuttleWindowLeft = 140;
-const tCoordType kShuttleWindowTop = 96;
-const tCoordType kShuttleWindowWidth = 360;
-const tCoordType kShuttleWindowHeight = 224;
-
-const tCoordType kShuttleWindowMidH = (kShuttleWindowLeft * 2 + kShuttleWindowWidth) / 2;
-const tCoordType kShuttleWindowMidV = (kShuttleWindowTop * 2 + kShuttleWindowHeight) / 2;
-
-const tCoordType kShuttleLeftLeft = 0;
-const tCoordType kShuttleLeftTop = 128;
-
-const tCoordType kShuttleRightLeft = 506;
-const tCoordType kShuttleRightTop = 128;
-
-const tCoordType kShuttleLowerLeftLeft = 74;
-const tCoordType kShuttleLowerLeftTop = 358;
-
-const tCoordType kShuttleLowerRightLeft = 486;
-const tCoordType kShuttleLowerRightTop = 354;
-
-const tCoordType kShuttleCenterLeft = 260;
-const tCoordType kShuttleCenterTop = 336;
-
-const tCoordType kShuttleUpperLeftLeft = 30;
-const tCoordType kShuttleUpperLeftTop = 32;
-
-const tCoordType kShuttleUpperRightLeft = 506;
-const tCoordType kShuttleUpperRightTop = 52;
-
-const tCoordType kShuttleLeftEnergyLeft = 110;
-const tCoordType kShuttleLeftEnergyTop = 186;
-
-const tCoordType kShuttleRightEnergyLeft = 510;
-const tCoordType kShuttleRightEnergyTop = 186;
-
-const tCoordType kShuttleEnergyLeft = 186;
-const tCoordType kShuttleEnergyTop = 60;
-const tCoordType kShuttleEnergyWidth = 252;
-const tCoordType kShuttleEnergyHeight = 22;
-
-const tCoordType kPlanetStartLeft = kShuttleWindowLeft;
-const tCoordType kPlanetStartTop = kShuttleWindowTop + kShuttleWindowHeight;
-
-const tCoordType kPlanetStopLeft = kShuttleWindowLeft;
-const tCoordType kPlanetStopTop = kShuttleWindowTop + kShuttleWindowHeight - 100;
-
-const tCoordType kShuttleTractorLeft = kShuttleWindowLeft + 6;
-const tCoordType kShuttleTractorTop = kShuttleWindowTop + 56;
-const tCoordType kShuttleTractorWidth = 348;
-const tCoordType kShuttleTractorHeight = 112;
-
-const tCoordType kShuttleJunkLeft = kShuttleWindowLeft + 6;
-const tCoordType kShuttleJunkTop = kShuttleWindowTop + 6;
-
-const tDisplayOrder kShuttlePlanetOrder = kInterfaceLayer;
-const tDisplayOrder kShuttleAlienShipOrder = kShuttlePlanetOrder + 1;
-const tDisplayOrder kShuttleRobotShipOrder = kShuttleAlienShipOrder + 1;
-const tDisplayOrder kShuttleTractorBeamMovieOrder = kShuttleRobotShipOrder + 1;
-const tDisplayOrder kShuttleWeaponBackOrder = kShuttleTractorBeamMovieOrder + 1;
-const tDisplayOrder kShuttleJunkOrder = kShuttleWeaponBackOrder + 1;
-const tDisplayOrder kShuttleWeaponFrontOrder = kShuttleJunkOrder + 1;
-const tDisplayOrder kShuttleTractorBeamOrder = kShuttleWeaponFrontOrder + 1;
-const tDisplayOrder kShuttleHUDOrder = kShuttleTractorBeamOrder + 1;
-const tDisplayOrder kShuttleBackgroundOrder = kShuttleHUDOrder + 1;
-const tDisplayOrder kShuttleMonitorOrder = kShuttleBackgroundOrder + 1;
-const tDisplayOrder kShuttleStatusOrder = kShuttleMonitorOrder + 1;
-
-const TimeValue kShuttleSwingStart = 0;
-const TimeValue kShuttleSwingStop = 5 * 600;
-
-const TimeValue kCanyonChaseStart = kShuttleSwingStop;
-const TimeValue kCanyonChaseStop = 60 * 600 + 43 * 600 + 14 * 40;
-
-const TimeValue kLaunchTubeReachedTime = 60 * 600 + 38 * 600 - kCanyonChaseStart;
-const TimeValue kCanyonChaseFinishedTime = kCanyonChaseStop - kCanyonChaseStart -
- kLaunchTubeReachedTime;
-
-// Left shuttle.
-
-const TimeValue kShuttleLeftIntroStart = 0;
-const TimeValue kShuttleLeftIntroStop = 400;
-
-const TimeValue kShuttleLeftBlankTime = 400;
-
-const TimeValue kShuttleLeftNormalTime = 440;
-
-const TimeValue kShuttleLeftAutoTestTime = 480;
-
-const TimeValue kShuttleLeftDamagedTime = 520;
-
-const TimeValue kShuttleLeftDampingTime = 560;
-
-const TimeValue kShuttleLeftGravitonTime = 600;
-
-const TimeValue kShuttleLeftTractorTime = 640;
-
-// Right shuttle.
-
-const TimeValue kShuttleRightIntroStart = 0;
-const TimeValue kShuttleRightIntroStop = 400;
-
-const TimeValue kShuttleRightDestroyedStart = 400;
-const TimeValue kShuttleRightDestroyedStop = 840;
-
-const TimeValue kShuttleRightBlankTime = 840;
-
-const TimeValue kShuttleRightNormalTime = 880;
-
-const TimeValue kShuttleRightDamagedTime = 920;
-
-const TimeValue kShuttleRightTargetLockTime = 960;
-
-const TimeValue kShuttleRightGravitonTime = 1000;
-
-const TimeValue kShuttleRightOverloadTime = 1040;
-
-// Lower Left shuttle.
-
-const TimeValue kShuttleLowerLeftCollisionTime = 0;
-
-const TimeValue kShuttleLowerLeftTubeTime = 40;
-
-const TimeValue kShuttleLowerLeftAutopilotTime = 80;
-
-// Lower Right shuttle.
-
-const TimeValue kShuttleLowerRightOffTime = 0;
-
-const TimeValue kShuttleLowerRightTrackingTime = 40;
-
-const TimeValue kShuttleLowerRightTransportTime = 80;
-
-const TimeValue kShuttleLowerRightTransportHiliteTime = 120;
-
-// Center shuttle.
-
-const TimeValue kShuttleCenterBoardingTime = 0;
-
-const TimeValue kShuttleCenterCheckTime = 40;
-
-const TimeValue kShuttleCenterNavCompTime = 80;
-
-const TimeValue kShuttleCenterCommTime = 120;
-
-const TimeValue kShuttleCenterWeaponsTime = 160;
-
-const TimeValue kShuttleCenterAllSystemsTime = 200;
-
-const TimeValue kShuttleCenterSecureLooseTime = 240;
-
-const TimeValue kShuttleCenterAutoTestTime = 280;
-
-const TimeValue kShuttleCenterLaunchTime = 320;
-
-const TimeValue kShuttleCenterEnterTubeTime = 360;
-
-const TimeValue kShuttleCenterTargetSightedTime = 400;
-
-const TimeValue kShuttleCenterVerifyingTime = 440;
-
-const TimeValue kShuttleCenterScanningTime = 480;
-
-const TimeValue kShuttleCenterSafeTime = 520;
-
-// Upper Left shuttle.
-
-const TimeValue kShuttleUpperLeftDimTime = 0;
-
-const TimeValue kShuttleUpperLeftDampingTime = 40;
-
-const TimeValue kShuttleUpperLeftGravitonTime = 80;
-
-const TimeValue kShuttleUpperLeftTractorTime = 120;
-
-// Upper Right shuttle.
-
-const TimeValue kShuttleUpperRightLockedTime = 0;
-
-const TimeValue kShuttleUpperRightArmedTime = 40;
-
-const TimeValue kShuttleUpperRightAlienDestroyedTime = 80;
-
-const TimeValue kShuttleUpperRightOverloadTime = 120;
-
-const TimeValue kShuttleUpperRightTargetDestroyedTime = 160;
-
-// Shuttle distance
-
-const int kShuttleDistance = 500;
-
-const int kJunkMaxDistance = kShuttleDistance;
-const int kJunkMinDistance = 40;
-
-const int kEnergyBeamMaxDistance = kShuttleDistance;
-const int kEnergyBeamMinDistance = 40;
-
-const int kGravitonMaxDistance = kShuttleDistance;
-const int kGravitonMinDistance = 40;
-
-
class InventoryItem;
class Mars;
@@ -283,16 +61,6 @@ enum ShuttleWeaponSelection {
kTractorBeam
};
-const tRoomID kMars0A = 0;
-const tRoomID kMars31South = 33;
-const tRoomID kMars34 = 37;
-const tRoomID kMars35 = 38;
-const tRoomID kMars39 = 42;
-const tRoomID kMars49 = 51;
-const tRoomID kMars60 = 58;
-const tRoomID kMarsMaze004 = 60;
-const tRoomID kMarsMaze200 = 224;
-
class Mars : public Neighborhood {
friend void robotTimerExpiredFunction(FunctionPtr *, void *);
friend void lockThawTimerExpiredFunction(FunctionPtr *, void *);
@@ -336,8 +104,6 @@ public:
bool inColorMatchingGame();
- // TODO: Space chase functions
-
protected:
enum {
kMarsPrivatePodStorageOpenFlag,
@@ -414,8 +180,11 @@ protected:
void startMarsTimer(TimeValue, TimeScale, MarsTimerCode);
void marsTimerExpired(MarsTimerEvent &);
void throwAwayMarsShuttle();
-
- // TODO: Space chase functions
+ void startUpFromFinishedSpaceChase();
+ void startUpFromSpaceChase();
+ void transportToRobotShip();
+ void spaceChaseClick(const Input &, const tHotSpotID);
+ void updateCursor(const Common::Point, const Hotspot *);
Common::String getSoundSpotsName();
Common::String getNavMovieName();
@@ -450,11 +219,22 @@ protected:
Movie _leftDamageShuttleMovie;
Movie _rightDamageShuttleMovie;
ShuttleEnergyMeter _shuttleEnergyMeter;
+ Movie _planetMovie;
+ PlanetMover _planetMover;
RobotShip _robotShip;
+ ShuttleHUD _shuttleHUD;
+ TractorBeam _tractorBeam;
+ SpaceJunk _junk;
+ EnergyBeam _energyBeam;
+ GravitonCannon _gravitonCannon;
+ Hotspot _energyChoiceSpot;
+ Hotspot _gravitonChoiceSpot;
+ Hotspot _tractorChoiceSpot;
+ Hotspot _shuttleViewSpot;
+ Hotspot _shuttleTransportSpot;
+ ShuttleWeaponSelection _weaponSelection;
ScalingMovie _explosions;
NotificationCallBack _explosionCallBack;
-
- // TODO: Space chase variables
};
} // End of namespace Pegasus