mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-29 05:03:29 +00:00
316 lines
8.3 KiB
C++
316 lines
8.3 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.
|
|
*
|
|
* 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 MADS_GLOBALS_NEBULAR_H
|
|
#define MADS_GLOBALS_NEBULAR_H
|
|
|
|
#include "common/scummsys.h"
|
|
#include "common/array.h"
|
|
#include "mads/game.h"
|
|
#include "mads/resources.h"
|
|
|
|
namespace MADS {
|
|
|
|
namespace Nebular {
|
|
|
|
enum GlobalId {
|
|
kSexOfRex = 0,
|
|
kOldSexOfRex = 1,
|
|
kWalkerTiming = 2,
|
|
// kWalkerTiming0 = 3,
|
|
kTalkInanimateCount = 4,
|
|
kCopyProtectFailed = 5,
|
|
|
|
/* Section #1 variables */
|
|
kNeedToStandUp = 10,
|
|
kTurkeyExploded = 11,
|
|
kMedicineCabinetOpen = 12,
|
|
kMedicineCabinetVirgin = 13,
|
|
kWatchedViewScreen = 14,
|
|
kHoovicAlive = 15,
|
|
kHoovicSated = 16,
|
|
kHoovicFishEaten = 17,
|
|
kWaterInAPuddle = 18,
|
|
kFishIn105 = 19,
|
|
kFishIn107 = 20,
|
|
kFishIn108 = 21,
|
|
kRandomNumber = 29,
|
|
|
|
/* Section #2 variables */
|
|
kCurtainOpen = 30,
|
|
kLadderBroken = 31,
|
|
kBone202Status = 32,
|
|
kMeteorologistStatus = 33,
|
|
kRhotundaStatus = 34,
|
|
kLeavesStatus = 35,
|
|
kMonkeyStatus = 36,
|
|
kMeteorologistEverSeen = 37,
|
|
kMeteorologistWatch = 38,
|
|
kTeleporterCommand = 39,
|
|
|
|
kTeleporterDestination = 40,
|
|
kTeleporterUnderstood = 41,
|
|
kConv205 = 42,
|
|
kChickenPermitted = 43,
|
|
kTwinklesStatus = 44,
|
|
kTwinklesApproached = 45,
|
|
kConvTwinkles1 = 46,
|
|
kConvTwinkles2 = 47,
|
|
kConvTwinkles3 = 48,
|
|
kConvTwinkles5 = 49,
|
|
|
|
kConvTwinkles6 = 50,
|
|
kConvTwinkles7 = 51,
|
|
kConvTwinkles8 = 52,
|
|
kBlowgunStatus = 53,
|
|
|
|
/* Section #3 Variables */
|
|
kAfterHavoc = 60,
|
|
kHaveYourStuff = 61,
|
|
kRightView320 = 62,
|
|
kConvBuddy1 = 63,
|
|
kConvBuddy2 = 64,
|
|
kMetBuddyBeast = 65,
|
|
kKnowsBuddyBeast = 66,
|
|
kConvSlache1 = 67,
|
|
kConvSlache2 = 68,
|
|
kConvSlache3 = 69,
|
|
|
|
kRexHasMetSlache = 70,
|
|
kConvIntern = 71,
|
|
kHasSeenProfPyro = 72,
|
|
kKickedIn391Grate = 73,
|
|
|
|
/* Section #4 Variables */
|
|
kArmoryDoorOpen = 80,
|
|
kStorageDoorOpen = 81,
|
|
kNextIngredient = 82,
|
|
kIngredientList = 83,
|
|
kIngredientList1 = 84,
|
|
kIngredientList2 = 85,
|
|
kIngredientList3 = 86,
|
|
kIngredientQuantity = 87,
|
|
kIngredientQuantity1 = 88,
|
|
kIngredientQuantity2 = 89,
|
|
|
|
kIngredientQuantity3 = 90,
|
|
kconvPyro_1 = 91,
|
|
kconvPyro_2 = 92,
|
|
kconvPyro_3 = 93,
|
|
kconvPyro_4 = 94,
|
|
kBadFirstIngredient = 95,
|
|
kConvBartender1 = 96,
|
|
kConvBartender2 = 97,
|
|
kConvBartender3 = 98,
|
|
kConvBartender4 = 99,
|
|
|
|
kHasPurchased = 100,
|
|
kBeenThruHelgaScene = 101,
|
|
kHasSaidBinocs = 102,
|
|
kHasSaidTimer = 103,
|
|
kBottleDisplayed = 104,
|
|
kHasBeenScanned = 105,
|
|
kSomeoneHasExploded = 106,
|
|
|
|
/* Section #5 Variables */
|
|
kBoatRaised = 110,
|
|
kCarStatus = 111,
|
|
kCityFlooded = 112,
|
|
kLaserOn = 113,
|
|
kLaserHoleIsThere = 114,
|
|
kCarIsGone = 115,
|
|
kRegisterOpen = 116,
|
|
kSafeStatus = 117,
|
|
kDogStatus = 118,
|
|
kLineStatus = 119,
|
|
|
|
kHoverCarLocation = 120,
|
|
kHoverCarDestination = 121,
|
|
|
|
/* Section #6 Variables */
|
|
kConvHermit1 = 130,
|
|
kConvHermit2 = 131,
|
|
kHasTalkedToHermit = 132,
|
|
kHermitWantsBatteries = 133,
|
|
kHandsetCellStatus = 134,
|
|
kBeenInVideoStore = 135,
|
|
kDurafailRecharged = 136,
|
|
kPenlightCellStatus = 137,
|
|
kTimebombStatus = 138,
|
|
kCheckDaemonTimebomb = 140,
|
|
|
|
kResurrectRoom = 141,
|
|
|
|
/* Section #6 Time-Bomb Variables */
|
|
kTimebombClock = 142,
|
|
// kTimebombClock0 = 143,
|
|
kTimebombTimer = 144,
|
|
// kTimebombTimer0 = 145,
|
|
kWarnedFloodCity = 146,
|
|
|
|
/* Section #7 Variables */
|
|
kBottleStatus = 150,
|
|
kMonsterAlive = 151,
|
|
kConvBottleFillNode = 152,
|
|
kBoatStatus = 153,
|
|
|
|
/* Section #8 Variables */
|
|
kAntigravClock = 160,
|
|
// kAntigravClock0 = 161,
|
|
kAntigravTiming = 162,
|
|
// kAntigravTiming0 = 163,
|
|
kWindowFixed = 164,
|
|
kInSpace = 165,
|
|
kReturnFromCut = 166,
|
|
kBeamIsUp = 167,
|
|
kForceBeamDown = 168,
|
|
kCameFromCut = 169,
|
|
|
|
kCutX = 170,
|
|
kCutY = 171,
|
|
kCutFacing = 172,
|
|
kDontRepeat = 173,
|
|
kHoppyDead = 174,
|
|
kHasWatchedAntigrav = 175,
|
|
kRemoteSequenceRan = 176,
|
|
kRemoteOnGround = 177,
|
|
kFromCockpit = 178,
|
|
kExitShip = 179,
|
|
|
|
kBetweenRooms = 180,
|
|
kTopButtonPushed = 181,
|
|
kTargetModInstalled = 182,
|
|
kShieldModInstalled = 183,
|
|
kUpBecauseOfRemote = 184,
|
|
|
|
kTeleporterRoom = 190,
|
|
kTeleporterCode = 200
|
|
};
|
|
|
|
// Enums used for specific individual globals
|
|
// Section #1
|
|
// Rex's sex/swimming state
|
|
enum { REX_MALE = 0, REX_MALE_SWIMMER = 1, REX_FEMALE = 2 };
|
|
|
|
// Section #2
|
|
// State of Meteorologist in the outpost
|
|
enum { METEOROLOGIST_ABSENT = 0, METEOROLOGIST_PRESENT = 1, METEOROLOGIST_GONE = 2 };
|
|
|
|
// State of watching the Meteorologist
|
|
enum { METEOROLOGIST_NORMAL = 0, METEOROLOGIST_GROUND = 1, METEOROLOGIST_TOWER = 2 };
|
|
|
|
// The fat bouncy lady that can squish you on the plains
|
|
enum { RHOTUNDA_HUNGRY = 0, RHOTUNDA_STUCK = 1, RHOTUNDA_GONE = 2 };
|
|
|
|
// Flags for the bones you can take
|
|
enum { BONE_202_LEFT_GONE = 1, BONE_202_RIGHT_GONE = 2 };
|
|
|
|
// Leaves used to cover the trap
|
|
enum { LEAVES_ON_GROUND = 0, LEAVES_WITH_PLAYER = 1, LEAVES_ON_TRAP = 2 };
|
|
|
|
// Monkey ambush state
|
|
enum { MONKEY_AMBUSH_READY = 0, MONKEY_HAS_BINOCULARS = 1, MONKEY_IS_GONE = 2 };
|
|
|
|
// Teleporter status flags
|
|
enum {
|
|
TELEPORTER_NONE = 0, TELEPORTER_BEAM_IN = 1, TELEPORTER_BEAM_OUT = 2,
|
|
TELEPORTER_STEP_OUT = 3, TELEPORTER_WRONG = 4
|
|
};
|
|
|
|
// Twinkles status
|
|
enum { TWINKLES_AT_HOME = 0, TWINKLES_GONE = 1 };
|
|
|
|
// Section #4
|
|
// Status of the explosives
|
|
enum { EXPLOSIVES_INSIDE = 3 };
|
|
|
|
// Section #5
|
|
// Dog status (room 602, outside Abdul's garage)
|
|
enum { DOG_PRESENT = 1, DOG_LEFT = 2, DOG_GONE = 3, DOG_DEAD = 4 };
|
|
|
|
// Dog status (room 608, inside Abdul's garage)
|
|
enum { CAR_UP = 0, CAR_SQUASHES_DOG = 1, CAR_SQUASHES_DOG_AGAIN = 2, CAR_DOWN = 3, CAR_DOWN_ON_SQUASHED_DOG = 4 };
|
|
|
|
enum { SAFE_CLOSED = 0, SAFE_OPENED = 1, SAFE_CLOSED_WITH_HOLE = 2, SAFE_OPENED_WITH_HOLE = 3 };
|
|
|
|
enum { LINE_NOT_DROPPED = 1, LINE_DROPPED = 2, LINE_TIED = 3, LINE_NOW_UNTIED = 4 };
|
|
|
|
// Section #6
|
|
enum {
|
|
NO_CELLS = 0, // Handset doesn't contain any cells
|
|
CHARGED_DURAFAIL = 1, // Handset has charged durafail cells
|
|
UNCHARGED_DURAFAIL = 2, // Handset has uncharged durafail cells */
|
|
PHONE_CELLS = 3, // Handset has already charged phone cells
|
|
FIRST_TIME_PHONE_CELLS = 4, // First time phone cells are in the handset
|
|
FIRST_TIME_UNCHARGED_DURAFAIL = 5, // First time uncharged cells are in penlight
|
|
FIRST_TIME_CHARGED_DURAFAIL = 6 // First time charged cells are in penlight
|
|
};
|
|
|
|
// Time bomb status
|
|
enum {
|
|
TIMEBOMB_DEACTIVATED = 0, TIMEBOMB_ACTIVATED = 1,
|
|
TIMEBOMB_BLOW_UP = 2, TIMEBOMB_DEAD = 3
|
|
};
|
|
|
|
/* Section #7 */
|
|
// Status of the the bottle
|
|
enum {
|
|
BOTTLE_EMPTY = 0, BOTTLE_ONE_QUARTER_FULL = 1, BOTTLE_HALF_FULL = 2,
|
|
BOTTLE_THREE_QUARTERS_FULL = 3, BOTTLE_FULL = 4
|
|
};
|
|
|
|
// Status of the boat
|
|
enum {
|
|
BOAT_UNFLOODED = 0, BOAT_ADRIFT = 1, BOAT_TIED_FLOATING = 2,
|
|
BOAT_TIED = 3, BOAT_GONE = 4
|
|
};
|
|
|
|
|
|
/* Miscellaneous defines */
|
|
#define TELEPORTER_COUNT 10 // Total number of teleporters
|
|
#define TELEPORTER_WORK_COUNT 6 // Total number that actually work
|
|
|
|
|
|
class NebularGlobals : public Globals {
|
|
public:
|
|
SynchronizedList _spriteIndexes;
|
|
SynchronizedList _sequenceIndexes;
|
|
|
|
int _timebombClock, _timebombTimer;
|
|
public:
|
|
/**
|
|
* Constructor
|
|
*/
|
|
NebularGlobals();
|
|
|
|
/**
|
|
* Synchronize the globals data
|
|
*/
|
|
virtual void synchronize(Common::Serializer &s);
|
|
};
|
|
|
|
} // End of namespace Nebular
|
|
|
|
} // End of namespace MADS
|
|
|
|
#endif /* MADS_GLOBALS_NEBULAR_H */
|