mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
adaf5bb3b9
Co-Authored-By: Keith Kaisershot <keithkaisershot@gmail.com> Co-Authored-By: Matthew Hoops <clone2727@gmail.com> Co-Authored-By: Bastien Bouclet <bastien.bouclet@gmail.com>
741 lines
30 KiB
C++
741 lines
30 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* Additional copyright for this file:
|
|
* Copyright (C) 1995-1997 Presto Studios, Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef PEGASUS_CONSTANTS_H
|
|
#define PEGASUS_CONSTANTS_H
|
|
|
|
#include "common/endian.h"
|
|
#include "common/rect.h"
|
|
|
|
#include "pegasus/types.h"
|
|
|
|
namespace Pegasus {
|
|
|
|
// TODO: Organize these
|
|
|
|
static const GameID kGameIDNothing = -1;
|
|
|
|
static const ActorID kNoActorID = kGameIDNothing;
|
|
static const ActorID kPlayerID = 0;
|
|
static const ItemID kNoItemID = kGameIDNothing;
|
|
static const RoomID kNoRoomID = kGameIDNothing;
|
|
static const ExtraID kNoExtraID = 0xFFFFFFFF;
|
|
static const NeighborhoodID kNoNeighborhoodID = kGameIDNothing;
|
|
static const AlternateID kNoAlternateID = 0;
|
|
static const GameMenuCommand kMenuCmdNoCommand = 0;
|
|
|
|
static const HotSpotActivationID kActivateHotSpotAlways = 0;
|
|
static const HotSpotActivationID kActivateHotSpotNever = -1;
|
|
|
|
static const ItemState kNoItemState = -1;
|
|
|
|
static const DirectionConstant kNoDirection = 0xFF;
|
|
static const DirectionConstant kNorth = 0;
|
|
static const DirectionConstant kSouth = 1;
|
|
static const DirectionConstant kEast = 2;
|
|
static const DirectionConstant kWest = 3;
|
|
|
|
static const TurnDirection kNoTurn = 0xFF;
|
|
static const TurnDirection kTurnLeft = 0;
|
|
static const TurnDirection kTurnRight = 1;
|
|
static const TurnDirection kTurnUp = 2;
|
|
static const TurnDirection kTurnDown = 3;
|
|
static const TurnDirection kMaxTurns = 4;
|
|
|
|
static const GameMode kNoMode = -1;
|
|
static const GameMode kModeNavigation = 0;
|
|
static const GameMode kLastGameShellMode = kModeNavigation;
|
|
|
|
static const CanMoveForwardReason kCanMoveForward = 0;
|
|
static const CanMoveForwardReason kCantMoveBlocked = kCanMoveForward + 1;
|
|
static const CanMoveForwardReason kCantMoveDoorClosed = kCantMoveBlocked + 1;
|
|
static const CanMoveForwardReason kCantMoveDoorLocked = kCantMoveDoorClosed + 1;
|
|
static const CanMoveForwardReason kCantMoveLastReason = kCantMoveDoorLocked;
|
|
|
|
static const CanTurnReason kCanTurn = 0;
|
|
static const CanTurnReason kCantTurnNoTurn = kCanTurn + 1;
|
|
static const CanTurnReason kCantTurnLastReason = kCantTurnNoTurn;
|
|
|
|
static const CanOpenDoorReason kCanOpenDoor = 0;
|
|
static const CanOpenDoorReason kCantOpenNoDoor = kCanOpenDoor + 1;
|
|
static const CanOpenDoorReason kCantOpenLocked = kCantOpenNoDoor + 1;
|
|
static const CanOpenDoorReason kCantOpenAlreadyOpen = kCantOpenLocked + 1;
|
|
static const CanOpenDoorReason kCantOpenLastReason = kCantOpenAlreadyOpen;
|
|
|
|
static const DisplayElementID kNoDisplayElement = -1;
|
|
static const DisplayElementID kHighestReservedElementID = -2;
|
|
|
|
static const DisplayElementID kCursorID = kHighestReservedElementID;
|
|
static const DisplayElementID kLoadScreenID = kCursorID - 1;
|
|
|
|
static const DisplayOrder kMinAvailableOrder = 0;
|
|
static const DisplayOrder kMaxAvailableOrder = 999998;
|
|
static const DisplayOrder kLoadScreenOrder = 900000;
|
|
static const DisplayOrder kCursorOrder = 1000000;
|
|
|
|
static const HotSpotID kNoHotSpotID = -1;
|
|
static const HotSpotFlags kNoHotSpotFlags = 0;
|
|
static const HotSpotFlags kAllHotSpotFlags = ~kNoHotSpotFlags;
|
|
|
|
static const NotificationFlags kNoNotificationFlags = 0;
|
|
|
|
static const DisplayElementID kCurrentDragSpriteID = 1000;
|
|
|
|
static const TimeScale kDefaultTimeScale = 600;
|
|
|
|
// Ticks per second.
|
|
|
|
static const TimeScale kOneTickPerSecond = 1;
|
|
static const TimeScale kTwoTicksPerSecond = 2;
|
|
static const TimeScale kFifteenTicksPerSecond = 15;
|
|
static const TimeScale kThirtyTicksPerSecond = 30;
|
|
static const TimeScale kSixtyTicksPerSecond = 60;
|
|
static const TimeScale kMovieTicksPerSecond = 600;
|
|
|
|
// These times are in seconds.
|
|
|
|
static const TimeValue kOneSecond = 1;
|
|
static const TimeValue kTwoSeconds = 2;
|
|
static const TimeValue kThreeSeconds = 3;
|
|
static const TimeValue kFourSeconds = 4;
|
|
static const TimeValue kFiveSeconds = 5;
|
|
static const TimeValue kSixSeconds = 6;
|
|
static const TimeValue kSevenSeconds = 7;
|
|
static const TimeValue kEightSeconds = 8;
|
|
static const TimeValue kNineSeconds = 9;
|
|
static const TimeValue kTenSeconds = 10;
|
|
static const TimeValue kElevenSeconds = 11;
|
|
static const TimeValue kTwelveSeconds = 12;
|
|
static const TimeValue kThirteenSeconds = 13;
|
|
static const TimeValue kFourteenSeconds = 14;
|
|
static const TimeValue kFifteenSeconds = 15;
|
|
static const TimeValue kSixteenSeconds = 16;
|
|
static const TimeValue kSeventeenSeconds = 17;
|
|
static const TimeValue kEighteenSeconds = 18;
|
|
static const TimeValue kNineteenSeconds = 19;
|
|
static const TimeValue kTwentySeconds = 20;
|
|
static const TimeValue kThirtySeconds = 30;
|
|
static const TimeValue kFortySeconds = 40;
|
|
static const TimeValue kFiftySeconds = 50;
|
|
static const TimeValue kSixtySeconds = 60;
|
|
static const TimeValue kOneMinute = 60;
|
|
static const TimeValue kTwoMinutes = kOneMinute * 2;
|
|
static const TimeValue kThreeMinutes = kOneMinute * 3;
|
|
static const TimeValue kFourMinutes = kOneMinute * 4;
|
|
static const TimeValue kFiveMinutes = kOneMinute * 5;
|
|
static const TimeValue kSixMinutes = kOneMinute * 6;
|
|
static const TimeValue kSevenMinutes = kOneMinute * 7;
|
|
static const TimeValue kEightMinutes = kOneMinute * 8;
|
|
static const TimeValue kNineMinutes = kOneMinute * 9;
|
|
static const TimeValue kTenMinutes = kOneMinute * 10;
|
|
static const TimeValue kElevenMinutes = kOneMinute * 11;
|
|
static const TimeValue kTwelveMinutes = kOneMinute * 12;
|
|
static const TimeValue kThirteenMinutes = kOneMinute * 13;
|
|
static const TimeValue kFourteenMinutes = kOneMinute * 14;
|
|
static const TimeValue kFifteenMinutes = kOneMinute * 15;
|
|
static const TimeValue kSixteenMinutes = kOneMinute * 16;
|
|
static const TimeValue kSeventeenMinutes = kOneMinute * 17;
|
|
static const TimeValue kEighteenMinutes = kOneMinute * 18;
|
|
static const TimeValue kNineteenMinutes = kOneMinute * 19;
|
|
static const TimeValue kTwentyMinutes = kOneMinute * 20;
|
|
static const TimeValue kThirtyMinutes = kOneMinute * 30;
|
|
static const TimeValue kFortyMinutes = kOneMinute * 40;
|
|
static const TimeValue kFiftyMinutes = kOneMinute * 50;
|
|
static const TimeValue kOneHour = kOneMinute * 60;
|
|
static const TimeValue kTwoHours = kOneHour * 2;
|
|
|
|
// Common times.
|
|
|
|
static const TimeValue kHalfSecondPerTwoTicks = kTwoTicksPerSecond / 2;
|
|
static const TimeValue kHalfSecondPerThirtyTicks = kThirtyTicksPerSecond / 2;
|
|
static const TimeValue kHalfSecondPerSixtyTicks = kSixtyTicksPerSecond / 2;
|
|
|
|
static const TimeValue kOneSecondPerTwoTicks = kTwoTicksPerSecond;
|
|
static const TimeValue kOneSecondPerThirtyTicks = kThirtyTicksPerSecond;
|
|
static const TimeValue kOneSecondPerSixtyTicks = kSixtyTicksPerSecond;
|
|
|
|
static const TimeValue kOneMinutePerFifteenTicks = kOneMinute * kFifteenTicksPerSecond;
|
|
static const TimeValue kFiveMinutesPerFifteenTicks = kFiveMinutes * kFifteenTicksPerSecond;
|
|
static const TimeValue kTenMinutesPerFifteenTicks = kTenMinutes * kFifteenTicksPerSecond;
|
|
|
|
static const TimeValue kOneMinutePerThirtyTicks = kOneMinute * kThirtyTicksPerSecond;
|
|
static const TimeValue kFiveMinutesPerThirtyTicks = kFiveMinutes * kThirtyTicksPerSecond;
|
|
static const TimeValue kTenMinutesPerThirtyTicks = kTenMinutes * kThirtyTicksPerSecond;
|
|
|
|
static const TimeValue kOneMinutePerSixtyTicks = kOneMinute * kSixtyTicksPerSecond;
|
|
static const TimeValue kFiveMinutesPerSixtyTicks = kFiveMinutes * kSixtyTicksPerSecond;
|
|
static const TimeValue kTenMinutesPerSixtyTicks = kTenMinutes * kSixtyTicksPerSecond;
|
|
|
|
// Time in seconds you can hang around Caldoria without going to work...
|
|
static const TimeValue kLateWarning2TimeLimit = kFiveMinutes;
|
|
static const TimeValue kLateWarning3TimeLimit = kTenMinutes;
|
|
|
|
static const TimeValue kSinclairShootsTimeLimit = kThreeMinutes;
|
|
static const TimeValue kCardBombCountDownTime = kTwelveSeconds;
|
|
|
|
static const TimeValue kOxyMaskFullTime = kThirtyMinutes;
|
|
|
|
static const TimeValue kTSAUncreatedTimeLimit = kFiveMinutes;
|
|
static const TimeValue kRipTimeLimit = kTenMinutesPerFifteenTicks;
|
|
static const TimeScale kRipTimeScale = kFifteenTicksPerSecond;
|
|
|
|
static const TimeValue kIntroTimeOut = kThirtySeconds;
|
|
|
|
static const TimeValue kMarsRobotPatienceLimit = kFifteenSeconds;
|
|
static const TimeValue kLockFreezeTimeLmit = kFifteenSeconds;
|
|
static const TimeValue kSpaceChaseTimeLimit = kTenMinutes;
|
|
static const TimeValue kVacuumSurvivalTimeLimit = kThirtySeconds;
|
|
static const TimeValue kColorMatchingTimeLimit = kFourMinutes;
|
|
static const TimeScale kJunkTimeScale = kFifteenTicksPerSecond;
|
|
static const TimeValue kJunkDropBaseTime = kFiveSeconds;
|
|
static const TimeValue kJunkDropSlopTime = kThreeSeconds;
|
|
static const TimeValue kJunkTravelTime = kTenSeconds * kJunkTimeScale;
|
|
static const TimeValue kCollisionReboundTime = kOneSecond * kJunkTimeScale;
|
|
static const TimeValue kWeaponReboundTime = kTwoSeconds * kJunkTimeScale;
|
|
|
|
static const TimeValue kGawkAtRobotTime = kTenSeconds;
|
|
static const TimeValue kGawkAtRobotTime2 = kThirteenSeconds;
|
|
static const TimeValue kPlasmaImpactTime = kTwoSeconds;
|
|
|
|
static const TimeValue kNoradAirMaskTimeLimit = kOneMinute + kFifteenSeconds;
|
|
|
|
static const NotificationID kNeighborhoodNotificationID = 1;
|
|
static const NotificationID kLastNeighborhoodNotificationID = kNeighborhoodNotificationID;
|
|
|
|
static const NotificationFlags kNeighborhoodMovieCompletedFlag = 1;
|
|
static const NotificationFlags kMoveForwardCompletedFlag = kNeighborhoodMovieCompletedFlag << 1;
|
|
static const NotificationFlags kStrideCompletedFlag = kMoveForwardCompletedFlag << 1;
|
|
static const NotificationFlags kTurnCompletedFlag = kStrideCompletedFlag << 1;
|
|
static const NotificationFlags kSpotCompletedFlag = kTurnCompletedFlag << 1;
|
|
static const NotificationFlags kDoorOpenCompletedFlag = kSpotCompletedFlag << 1;
|
|
static const NotificationFlags kExtraCompletedFlag = kDoorOpenCompletedFlag << 1;
|
|
static const NotificationFlags kSpotSoundCompletedFlag = kExtraCompletedFlag << 1;
|
|
static const NotificationFlags kDelayCompletedFlag = kSpotSoundCompletedFlag << 1;
|
|
static const NotificationFlags kActionRequestCompletedFlag = kDelayCompletedFlag << 1;
|
|
static const NotificationFlags kDeathExtraCompletedFlag = kActionRequestCompletedFlag << 1;
|
|
static const NotificationFlags kLastNeighborhoodNotificationFlag = kDeathExtraCompletedFlag;
|
|
|
|
static const NotificationFlags kNeighborhoodFlags = kNeighborhoodMovieCompletedFlag |
|
|
kMoveForwardCompletedFlag |
|
|
kStrideCompletedFlag |
|
|
kTurnCompletedFlag |
|
|
kSpotCompletedFlag |
|
|
kDoorOpenCompletedFlag |
|
|
kExtraCompletedFlag |
|
|
kSpotSoundCompletedFlag |
|
|
kDelayCompletedFlag |
|
|
kActionRequestCompletedFlag |
|
|
kDeathExtraCompletedFlag;
|
|
|
|
static const uint32 kPegasusPrimeCreator = MKTAG('J', 'P', 'P', 'P');
|
|
static const uint32 kPegasusPrimeContinueType = MKTAG('P', 'P', 'C', 'T');
|
|
|
|
static const uint32 kPegasusPrimeDisk1GameType = MKTAG('P', 'P', 'G', '1');
|
|
static const uint32 kPegasusPrimeDisk2GameType = MKTAG('P', 'P', 'G', '2');
|
|
static const uint32 kPegasusPrimeDisk3GameType = MKTAG('P', 'P', 'G', '3');
|
|
static const uint32 kPegasusPrimeDisk4GameType = MKTAG('P', 'P', 'G', '4');
|
|
|
|
// We only support one of the save versions; the rest are from betas
|
|
// and we are not supporting them.
|
|
static const uint32 kPegasusPrimeVersion = 0x00009019;
|
|
|
|
static const char kNormalSave = 0;
|
|
static const char kContinueSave = 1;
|
|
|
|
// Display IDs.
|
|
|
|
static const DisplayElementID kNavMovieID = 1;
|
|
static const DisplayElementID kTurnPushID = 2;
|
|
|
|
static const DisplayElementID kMaxGameShellDisplayID = kTurnPushID;
|
|
|
|
// Display ordering.
|
|
|
|
static const DisplayOrder kNavLayer = 10000;
|
|
static const DisplayOrder kNavMovieOrder = kNavLayer;
|
|
static const DisplayOrder kTurnPushOrder = kNavMovieOrder + 1;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Display IDs.
|
|
|
|
static const DisplayElementID kScreenDimmerID = kMaxGameShellDisplayID + 1;
|
|
static const DisplayElementID kInterface1ID = kScreenDimmerID + 1;
|
|
static const DisplayElementID kInterface2ID = kInterface1ID + 1;
|
|
static const DisplayElementID kInterface3ID = kInterface2ID + 1;
|
|
static const DisplayElementID kInterface4ID = kInterface3ID + 1;
|
|
static const DisplayElementID kDateID = kInterface4ID + 1;
|
|
static const DisplayElementID kCompassID = kDateID + 1;
|
|
static const DisplayElementID kInventoryPushID = kCompassID + 1;
|
|
static const DisplayElementID kInventoryLidID = kInventoryPushID + 1;
|
|
static const DisplayElementID kBiochipPushID = kInventoryLidID + 1;
|
|
static const DisplayElementID kBiochipLidID = kBiochipPushID + 1;
|
|
static const DisplayElementID kEnergyBarID = kBiochipLidID + 1;
|
|
static const DisplayElementID kWarningLightID = kEnergyBarID + 1;
|
|
static const DisplayElementID kAILeftAreaID = kWarningLightID + 1;
|
|
static const DisplayElementID kAIMiddleAreaID = kAILeftAreaID + 1;
|
|
static const DisplayElementID kAIRightAreaID = kAIMiddleAreaID + 1;
|
|
static const DisplayElementID kAIMovieID = kAIRightAreaID + 1;
|
|
static const DisplayElementID kInventoryDropHighlightID = kAIMovieID + 1;
|
|
static const DisplayElementID kBiochipDropHighlightID = kInventoryDropHighlightID + 1;
|
|
|
|
static const DisplayElementID kDraggingSpriteID = 1000;
|
|
|
|
static const DisplayElementID kCroppedMovieID = 2000;
|
|
|
|
static const DisplayElementID kNeighborhoodDisplayID = 3000;
|
|
|
|
static const DisplayElementID kItemPictureBaseID = 5000;
|
|
|
|
static const CoordType kNavAreaLeft = 64;
|
|
static const CoordType kNavAreaTop = 64;
|
|
|
|
static const CoordType kBackground1Left = 0;
|
|
static const CoordType kBackground1Top = 64;
|
|
|
|
static const CoordType kBackground2Left = 0;
|
|
static const CoordType kBackground2Top = 0;
|
|
|
|
static const CoordType kBackground3Left = 576;
|
|
static const CoordType kBackground3Top = 64;
|
|
|
|
static const CoordType kBackground4Left = 0;
|
|
static const CoordType kBackground4Top = 320;
|
|
|
|
static const CoordType kOverviewControllerLeft = 540;
|
|
static const CoordType kOverviewControllerTop = 348;
|
|
|
|
static const CoordType kSwapLeft = 194;
|
|
static const CoordType kSwapTop = 116;
|
|
|
|
static const CoordType kSwapHiliteLeft = 200;
|
|
static const CoordType kSwapHiliteTop = 206;
|
|
|
|
static const CoordType kDateLeft = 136;
|
|
static const CoordType kDateTop = 44;
|
|
|
|
static const CoordType kCompassLeft = 222;
|
|
static const CoordType kCompassTop = 42;
|
|
static const CoordType kCompassWidth = 92;
|
|
|
|
static const CoordType kInventoryPushLeft = 74;
|
|
static const CoordType kInventoryPushTop = 92;
|
|
|
|
static const CoordType kInventoryLidLeft = 74;
|
|
static const CoordType kInventoryLidTop = 316;
|
|
|
|
static const CoordType kBiochipPushLeft = 362;
|
|
static const CoordType kBiochipPushTop = 192;
|
|
|
|
static const CoordType kBiochipLidLeft = 362;
|
|
static const CoordType kBiochipLidTop = 316;
|
|
|
|
static const CoordType kInventoryDropLeft = 0;
|
|
static const CoordType kInventoryDropTop = 320;
|
|
static const CoordType kInventoryDropRight = 232;
|
|
static const CoordType kInventoryDropBottom = 480;
|
|
|
|
static const CoordType kBiochipDropLeft = 302;
|
|
static const CoordType kBiochipDropTop = 320;
|
|
static const CoordType kBiochipDropRight = 640;
|
|
static const CoordType kBiochipDropBottom = 480;
|
|
|
|
static const CoordType kFinalMessageLeft = kInventoryPushLeft + 1;
|
|
static const CoordType kFinalMessageTop = kInventoryPushTop + 24;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Notifications.
|
|
|
|
static const NotificationID kJMPDCShellNotificationID = kLastNeighborhoodNotificationID + 1;
|
|
static const NotificationID kInterfaceNotificationID = kJMPDCShellNotificationID + 1;
|
|
static const NotificationID kAINotificationID = kInterfaceNotificationID + 1;
|
|
static const NotificationID kNoradNotificationID = kAINotificationID + 1;
|
|
static const NotificationID kNoradECRNotificationID = kNoradNotificationID + 1;
|
|
static const NotificationID kNoradFillingStationNotificationID = kNoradECRNotificationID + 1;
|
|
static const NotificationID kNoradPressureNotificationID = kNoradFillingStationNotificationID + 1;
|
|
static const NotificationID kNoradUtilityNotificationID = kNoradPressureNotificationID + 1;
|
|
static const NotificationID kNoradElevatorNotificationID = kNoradUtilityNotificationID + 1;
|
|
static const NotificationID kNoradSubPlatformNotificationID = kNoradElevatorNotificationID + 1;
|
|
static const NotificationID kNoradSubChaseNotificationID = kNoradSubPlatformNotificationID + 1;
|
|
static const NotificationID kSubControlNotificationID = kNoradSubChaseNotificationID + 1;
|
|
static const NotificationID kNoradGreenBallNotificationID = kSubControlNotificationID + 1;
|
|
static const NotificationID kNoradGlobeNotificationID = kNoradGreenBallNotificationID + 1;
|
|
static const NotificationID kCaldoriaVidPhoneNotificationID = kNoradGlobeNotificationID + 1;
|
|
static const NotificationID kCaldoriaMessagesNotificationID = kCaldoriaVidPhoneNotificationID + 1;
|
|
static const NotificationID kCaldoriaBombTimerNotificationID = kCaldoriaMessagesNotificationID + 1;
|
|
static const NotificationID kMarsTunnelPodNotificationID = kCaldoriaBombTimerNotificationID + 1;
|
|
static const NotificationID kMarsCanyonChaseNotificationID = kMarsTunnelPodNotificationID + 1;
|
|
|
|
// Sent to the shell by fShellNotification.
|
|
static const NotificationFlags kGameStartingFlag = 1;
|
|
static const NotificationFlags kNeedNewJumpFlag = kGameStartingFlag << 1;
|
|
static const NotificationFlags kPlayerDiedFlag = kNeedNewJumpFlag << 1;
|
|
|
|
static const NotificationFlags kJMPShellNotificationFlags = kGameStartingFlag |
|
|
kNeedNewJumpFlag |
|
|
kPlayerDiedFlag;
|
|
|
|
// Sent to the interface.
|
|
static const NotificationFlags kInventoryLidOpenFlag = 1;
|
|
static const NotificationFlags kInventoryLidClosedFlag = kInventoryLidOpenFlag << 1;
|
|
static const NotificationFlags kInventoryDrawerUpFlag = kInventoryLidClosedFlag << 1;
|
|
static const NotificationFlags kInventoryDrawerDownFlag = kInventoryDrawerUpFlag << 1;
|
|
static const NotificationFlags kBiochipLidOpenFlag = kInventoryDrawerDownFlag << 1;
|
|
static const NotificationFlags kBiochipLidClosedFlag = kBiochipLidOpenFlag << 1;
|
|
static const NotificationFlags kBiochipDrawerUpFlag = kBiochipLidClosedFlag << 1;
|
|
static const NotificationFlags kBiochipDrawerDownFlag = kBiochipDrawerUpFlag << 1;
|
|
|
|
static const NotificationFlags kInterfaceNotificationFlags = kInventoryLidOpenFlag |
|
|
kInventoryLidClosedFlag |
|
|
kInventoryDrawerUpFlag |
|
|
kInventoryDrawerDownFlag |
|
|
kBiochipLidOpenFlag |
|
|
kBiochipLidClosedFlag |
|
|
kBiochipDrawerUpFlag |
|
|
kBiochipDrawerDownFlag;
|
|
|
|
// Hot spots.
|
|
|
|
// Neighborhood hot spots.
|
|
|
|
static const HotSpotID kFirstNeighborhoodSpotID = 5000;
|
|
|
|
// kShellSpotFlag is a flag which marks all hot spots which belong to the shell, like
|
|
// the current item and current biochip spots.
|
|
static const HotSpotFlags kShellSpotFlag = 1;
|
|
// kNeighborhoodSpotFlag is a flag which marks all hot spots which belong to a
|
|
// neighborhood, like buttons on walls and so on.
|
|
static const HotSpotFlags kNeighborhoodSpotFlag = kShellSpotFlag << 1;
|
|
// kZoomInSpotFlag is a flag which marks all hot spots which indicate a zoom.
|
|
static const HotSpotFlags kZoomInSpotFlag = kNeighborhoodSpotFlag << 1;
|
|
// kZoomOutSpotFlag is a flag which marks all hot spots which indicate a zoom.
|
|
static const HotSpotFlags kZoomOutSpotFlag = kZoomInSpotFlag << 1;
|
|
|
|
static const HotSpotFlags kClickSpotFlag = kZoomOutSpotFlag << 1;
|
|
static const HotSpotFlags kPlayExtraSpotFlag = kClickSpotFlag << 1;
|
|
static const HotSpotFlags kPickUpItemSpotFlag = kPlayExtraSpotFlag << 1;
|
|
static const HotSpotFlags kDropItemSpotFlag = kPickUpItemSpotFlag << 1;
|
|
static const HotSpotFlags kOpenDoorSpotFlag = kDropItemSpotFlag << 1;
|
|
|
|
static const HotSpotFlags kZoomSpotFlags = kZoomInSpotFlag | kZoomOutSpotFlag;
|
|
|
|
static const HotSpotFlags kHighestGameShellSpotFlag = kOpenDoorSpotFlag;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Hot spots.
|
|
|
|
// Shell hot spots.
|
|
// The shell reserves all hot spot IDs from 0 to 999
|
|
|
|
static const HotSpotID kCurrentItemSpotID = 0;
|
|
static const HotSpotID kCurrentBiochipSpotID = kCurrentItemSpotID + 1;
|
|
|
|
static const HotSpotID kInventoryDropSpotID = kCurrentBiochipSpotID + 1;
|
|
static const HotSpotID kBiochipDropSpotID = kInventoryDropSpotID + 1;
|
|
|
|
static const HotSpotID kInfoReturnSpotID = kBiochipDropSpotID + 1;
|
|
|
|
static const HotSpotID kAIHint1SpotID = kInfoReturnSpotID + 1;
|
|
static const HotSpotID kAIHint2SpotID = kAIHint1SpotID + 1;
|
|
static const HotSpotID kAIHint3SpotID = kAIHint2SpotID + 1;
|
|
static const HotSpotID kAISolveSpotID = kAIHint3SpotID + 1;
|
|
static const HotSpotID kAIBriefingSpotID = kAISolveSpotID + 1;
|
|
static const HotSpotID kAIScanSpotID = kAIBriefingSpotID + 1;
|
|
|
|
static const HotSpotID kArthurWisdomSpotID = kAIScanSpotID + 1;
|
|
static const HotSpotID kChattyArthurSpotID = kArthurWisdomSpotID + 1;
|
|
static const HotSpotID kChattyAISpotID = kChattyArthurSpotID + 1;
|
|
static const HotSpotID kArthurHeadSpotID = kChattyAISpotID + 1;
|
|
|
|
static const HotSpotID kPegasusRecallSpotID = kArthurHeadSpotID + 1;
|
|
|
|
static const HotSpotID kAriesSpotID = kPegasusRecallSpotID + 1;
|
|
static const HotSpotID kMercurySpotID = kAriesSpotID + 1;
|
|
static const HotSpotID kPoseidonSpotID = kMercurySpotID + 1;
|
|
|
|
static const HotSpotID kAirMaskToggleSpotID = kPoseidonSpotID + 1;
|
|
|
|
static const HotSpotID kShuttleEnergySpotID = kAirMaskToggleSpotID + 1;
|
|
static const HotSpotID kShuttleGravitonSpotID = kShuttleEnergySpotID + 1;
|
|
static const HotSpotID kShuttleTractorSpotID = kShuttleGravitonSpotID + 1;
|
|
static const HotSpotID kShuttleViewSpotID = kShuttleTractorSpotID + 1;
|
|
static const HotSpotID kShuttleTransportSpotID = kShuttleViewSpotID + 1;
|
|
|
|
// Most of these are obsolete:
|
|
|
|
// kInventoryDropSpotFlag is a flag which marks hot spots which are valid drop spots
|
|
// for inventory items.
|
|
// static const HotSpotFlags kInventoryDropSpotFlag = kHighestGameShellSpotFlag << 1;
|
|
|
|
// kBiochipDropSpotFlag is a flag which marks hot spots which are valid drop spots
|
|
// for biochips.
|
|
// static const HotSpotFlags kBiochipDropSpotFlag = kInventoryDropSpotFlag << 1;
|
|
|
|
// kInventorySpotFlag is a flag which marks hot spots which indicate inventory items
|
|
// in the environment.
|
|
// static const HotSpotFlags kInventorySpotFlag = kBiochipDropSpotFlag << 1;
|
|
|
|
// kBiochipSpotFlag is a flag which marks hot spots which indicate biochips
|
|
// in the environment.
|
|
static const HotSpotFlags kPickUpBiochipSpotFlag = kHighestGameShellSpotFlag << 1;
|
|
static const HotSpotFlags kDropBiochipSpotFlag = kPickUpBiochipSpotFlag << 1;
|
|
|
|
static const HotSpotFlags kInfoReturnSpotFlag = kDropBiochipSpotFlag << 1;
|
|
|
|
// Biochip and inventory hot spot flags...
|
|
|
|
static const HotSpotFlags kAIBiochipSpotFlag = kInfoReturnSpotFlag << 1;
|
|
static const HotSpotFlags kArthurBiochipSpotFlag = kAIBiochipSpotFlag << 1;
|
|
static const HotSpotFlags kPegasusBiochipSpotFlag = kArthurBiochipSpotFlag << 1;
|
|
static const HotSpotFlags kOpticalBiochipSpotFlag = kPegasusBiochipSpotFlag << 1;
|
|
static const HotSpotFlags kAirMaskSpotFlag = kOpticalBiochipSpotFlag << 1;
|
|
|
|
static const HotSpotFlags kJMPClickingSpotFlags = kClickSpotFlag |
|
|
kPlayExtraSpotFlag |
|
|
kOpenDoorSpotFlag |
|
|
kInfoReturnSpotFlag |
|
|
kAIBiochipSpotFlag |
|
|
kArthurBiochipSpotFlag |
|
|
kPegasusBiochipSpotFlag |
|
|
kOpticalBiochipSpotFlag |
|
|
kAirMaskSpotFlag;
|
|
|
|
static const int32 kMainMenuID = 1;
|
|
static const int32 kPauseMenuID = 2;
|
|
static const int32 kCreditsMenuID = 3;
|
|
static const int32 kDeathMenuID = 4;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Menu commands.
|
|
|
|
static const GameMenuCommand kMenuCmdOverview = kMenuCmdNoCommand + 1;
|
|
static const GameMenuCommand kMenuCmdStartAdventure = kMenuCmdOverview + 1;
|
|
static const GameMenuCommand kMenuCmdStartWalkthrough = kMenuCmdStartAdventure + 1;
|
|
static const GameMenuCommand kMenuCmdRestore = kMenuCmdStartWalkthrough + 1;
|
|
static const GameMenuCommand kMenuCmdCredits = kMenuCmdRestore + 1;
|
|
static const GameMenuCommand kMenuCmdQuit = kMenuCmdCredits + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdDeathContinue = kMenuCmdQuit + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdDeathQuitDemo = kMenuCmdDeathContinue + 1;
|
|
static const GameMenuCommand kMenuCmdDeathMainMenuDemo = kMenuCmdDeathQuitDemo + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdDeathRestore = kMenuCmdDeathMainMenuDemo + 1;
|
|
static const GameMenuCommand kMenuCmdDeathMainMenu = kMenuCmdDeathRestore + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdPauseSave = kMenuCmdDeathMainMenu + 1;
|
|
static const GameMenuCommand kMenuCmdPauseContinue = kMenuCmdPauseSave + 1;
|
|
static const GameMenuCommand kMenuCmdPauseRestore = kMenuCmdPauseContinue + 1;
|
|
static const GameMenuCommand kMenuCmdPauseQuit = kMenuCmdPauseRestore + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdCreditsMainMenu = kMenuCmdPauseQuit + 1;
|
|
|
|
static const GameMenuCommand kMenuCmdCancelRestart = kMenuCmdCreditsMainMenu + 1;
|
|
static const GameMenuCommand kMenuCmdEjectRestart = kMenuCmdCancelRestart + 1;
|
|
|
|
static const TimeValue kMenuButtonHiliteTime = 20;
|
|
static const TimeScale kMenuButtonHiliteScale = kSixtyTicksPerSecond;
|
|
|
|
// PICT resources:
|
|
|
|
// Warning light PICTs:
|
|
|
|
static const ResIDType kLightOffID = 128;
|
|
static const ResIDType kLightYellowID = 129;
|
|
static const ResIDType kLightOrangeID = 130;
|
|
static const ResIDType kLightRedID = 131;
|
|
|
|
// Date PICTs:
|
|
|
|
static const ResIDType kDatePrehistoricID = 138;
|
|
static const ResIDType kDate2112ID = 139;
|
|
static const ResIDType kDate2185ID = 140;
|
|
static const ResIDType kDate2310ID = 141;
|
|
static const ResIDType kDate2318ID = 142;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Display Order
|
|
|
|
static const DisplayOrder kCroppedMovieLayer = 11000;
|
|
|
|
static const DisplayOrder kMonitorLayer = 12000;
|
|
|
|
static const DisplayOrder kDragSpriteLayer = 15000;
|
|
static const DisplayOrder kDragSpriteOrder = kDragSpriteLayer;
|
|
|
|
static const DisplayOrder kInterfaceLayer = 20000;
|
|
static const DisplayOrder kBackground1Order = kInterfaceLayer;
|
|
static const DisplayOrder kBackground2Order = kBackground1Order + 1;
|
|
static const DisplayOrder kBackground3Order = kBackground2Order + 1;
|
|
static const DisplayOrder kBackground4Order = kBackground3Order + 1;
|
|
static const DisplayOrder kDateOrder = kBackground4Order + 1;
|
|
static const DisplayOrder kCompassOrder = kDateOrder + 1;
|
|
static const DisplayOrder kEnergyBarOrder = kCompassOrder + 1;
|
|
static const DisplayOrder kEnergyLightOrder = kEnergyBarOrder + 1;
|
|
|
|
static const DisplayOrder kAILayer = 22000;
|
|
static const DisplayOrder kAILeftAreaOrder = kAILayer;
|
|
static const DisplayOrder kAIMiddleAreaOrder = kAILeftAreaOrder + 1;
|
|
static const DisplayOrder kAIRightAreaOrder = kAIMiddleAreaOrder + 1;
|
|
static const DisplayOrder kAIMovieOrder = kAIRightAreaOrder + 1;
|
|
|
|
static const DisplayOrder kHilitesLayer = 23000;
|
|
static const DisplayOrder kInventoryHiliteOrder = kHilitesLayer;
|
|
static const DisplayOrder kBiochipHiliteOrder = kInventoryHiliteOrder + 1;
|
|
|
|
static const DisplayOrder kPanelsLayer = 25000;
|
|
static const DisplayOrder kInventoryPushOrder = kPanelsLayer;
|
|
static const DisplayOrder kInventoryLidOrder = kInventoryPushOrder + 1;
|
|
static const DisplayOrder kBiochipPushOrder = kInventoryLidOrder + 1;
|
|
static const DisplayOrder kBiochipLidOrder = kBiochipPushOrder + 1;
|
|
static const DisplayOrder kFinalMessageOrder = kBiochipLidOrder + 1;
|
|
|
|
static const DisplayOrder kInfoLayer = 26000;
|
|
static const DisplayOrder kInfoBackgroundOrder = kInfoLayer;
|
|
static const DisplayOrder kInfoSpinOrder = kInfoBackgroundOrder + 1;
|
|
|
|
static const DisplayOrder kScreenDimmerOrder = 30000;
|
|
|
|
static const DisplayOrder kPauseScreenLayer = 31000;
|
|
static const DisplayOrder kPauseMenuOrder = kPauseScreenLayer;
|
|
static const DisplayOrder kSaveGameOrder = kPauseMenuOrder + 1;
|
|
static const DisplayOrder kContinueOrder = kSaveGameOrder + 1;
|
|
static const DisplayOrder kRestoreOrder = kContinueOrder + 1;
|
|
static const DisplayOrder kSoundFXOrder = kRestoreOrder + 1;
|
|
static const DisplayOrder kAmbienceOrder = kSoundFXOrder + 1;
|
|
static const DisplayOrder kWalkthruOrder = kAmbienceOrder + 1;
|
|
static const DisplayOrder kQuitToMainMenuOrder = kWalkthruOrder + 1;
|
|
static const DisplayOrder kPauseLargeHiliteOrder = kQuitToMainMenuOrder + 1;
|
|
static const DisplayOrder kPauseSmallHiliteOrder = kPauseLargeHiliteOrder + 1;
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Death reasons.
|
|
enum {
|
|
// Caldoria
|
|
kDeathUncreatedInCaldoria = 1,
|
|
kDeathCardBomb,
|
|
kDeathShotBySinclair,
|
|
kDeathSinclairShotDelegate,
|
|
kDeathNuclearExplosion,
|
|
|
|
// TSA
|
|
kDeathUncreatedInTSA,
|
|
kDeathShotByTSARobots,
|
|
|
|
// Prehistoric
|
|
kDeathFallOffCliff,
|
|
kDeathEatenByDinosaur,
|
|
kDeathStranded,
|
|
|
|
// Norad
|
|
kDeathGassedInNorad,
|
|
kDeathArrestedInNorad,
|
|
kDeathWokeUpNorad,
|
|
kDeathSubDestroyed, // Unused
|
|
kDeathRobotThroughNoradDoor,
|
|
kDeathRobotSubControlRoom,
|
|
|
|
// Mars
|
|
kDeathWrongShuttleLock,
|
|
kDeathArrestedInMars,
|
|
kDeathCollidedWithPod,
|
|
kDeathRunOverByPod,
|
|
kDeathDidntGetOutOfWay,
|
|
kDeathReactorBurn,
|
|
kDeathDidntFindMarsBomb,
|
|
kDeathDidntDisarmMarsBomb,
|
|
kDeathNoMaskInMaze,
|
|
kDeathNoAirInMaze,
|
|
kDeathGroundByMazebot,
|
|
kDeathMissedOreBucket,
|
|
kDeathDidntLeaveBucket,
|
|
kDeathRanIntoCanyonWall, // Unused
|
|
kDeathRanIntoSpaceJunk,
|
|
|
|
// WSC
|
|
kDeathDidntStopPoison,
|
|
kDeathArrestedInWSC,
|
|
kDeathHitByPlasma,
|
|
kDeathShotOnCatwalk,
|
|
|
|
// Winning
|
|
kPlayerWonGame
|
|
};
|
|
|
|
static const CoordType kAILeftAreaLeft = 76;
|
|
static const CoordType kAILeftAreaTop = 334;
|
|
|
|
static const CoordType kAILeftAreaWidth = 96;
|
|
static const CoordType kAILeftAreaHeight = 96;
|
|
|
|
static const CoordType kAIMiddleAreaLeft = 172;
|
|
static const CoordType kAIMiddleAreaTop = 334;
|
|
|
|
static const CoordType kAIMiddleAreaWidth = 192;
|
|
static const CoordType kAIMiddleAreaHeight = 96;
|
|
|
|
static const CoordType kAIRightAreaLeft = 364;
|
|
static const CoordType kAIRightAreaTop = 334;
|
|
|
|
static const CoordType kAIRightAreaWidth = 96;
|
|
static const CoordType kAIRightAreaHeight = 96;
|
|
|
|
enum {
|
|
kTSAPlayerNotArrived, // initial state, must be zero
|
|
kTSAPlayerForcedReview, // Player must watch TBP before rip occurs.
|
|
kTSAPlayerDetectedRip, // Player finished TBP, rip alarm just went off.
|
|
kTSAPlayerNeedsHistoricalLog, // Player is instructed to get historical log
|
|
kTSAPlayerGotHistoricalLog,
|
|
kTSAPlayerInstalledHistoricalLog,
|
|
kTSABossSawHistoricalLog,
|
|
kRobotsAtCommandCenter,
|
|
kRobotsAtFrontDoor,
|
|
kRobotsAtReadyRoom,
|
|
kPlayerLockedInPegasus,
|
|
kPlayerOnWayToPrehistoric,
|
|
kPlayerWentToPrehistoric,
|
|
kPlayerOnWayToNorad,
|
|
kPlayerOnWayToMars,
|
|
kPlayerOnWayToWSC,
|
|
kPlayerFinishedWithTSA
|
|
};
|
|
|
|
/////////////////////////////////////////////
|
|
//
|
|
// Mode static constants.
|
|
|
|
static const GameMode kModeInventoryPick = kLastGameShellMode + 1;
|
|
static const GameMode kModeBiochipPick = kModeInventoryPick + 1;
|
|
static const GameMode kModeInfoScreen = kModeBiochipPick + 1;
|
|
|
|
} // End of namespace Pegasus
|
|
|
|
#endif
|