mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 14:18:37 +00:00
829 lines
28 KiB
C++
829 lines
28 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 ASYLUM_SHARED_H
|
|
#define ASYLUM_SHARED_H
|
|
|
|
namespace Asylum {
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Global
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum GameFlag {
|
|
kGameFlag0 = 0,
|
|
|
|
kGameFlag4 = 4,
|
|
kGameFlag12 = 12,
|
|
kGameFlag52 = 52,
|
|
kGameFlag114 = 114,
|
|
kGameFlag115 = 115,
|
|
kGameFlag169 = 169,
|
|
kGameFlagScriptProcessing = 183,
|
|
kGameFlag186 = 186,
|
|
kGameFlagCommentLeavingCell = 214,
|
|
kGameFlag215 = 215,
|
|
kGameFlag219 = 219,
|
|
kGameFlagSolveVCRPuzzle = 220,
|
|
kGameFlag235 = 235,
|
|
kGameFlag238 = 238,
|
|
kGameFlag239 = 239,
|
|
kGameFlag243 = 243,
|
|
kGameFlag244 = 244,
|
|
kGameFlag245 = 245,
|
|
kGameFlag246 = 246,
|
|
kGameFlag247 = 247,
|
|
kGameFlag248 = 248,
|
|
kGameFlag249 = 249,
|
|
kGameFlag253 = 253,
|
|
kGameFlag254 = 254,
|
|
kGameFlag255 = 255,
|
|
kGameFlag256 = 256,
|
|
kGameFlag257 = 257,
|
|
kGameFlag258 = 258,
|
|
kGameFlag259 = 259,
|
|
kGameFlag260 = 260,
|
|
kGameFlag261 = 261,
|
|
kGameFlag262 = 262,
|
|
kGameFlag263 = 263,
|
|
kGameFlag264 = 264,
|
|
kGameFlag265 = 265,
|
|
kGameFlag266 = 266,
|
|
kGameFlag267 = 267,
|
|
kGameFlag268 = 268,
|
|
kGameFlag269 = 269,
|
|
kGameFlag270 = 270,
|
|
kGameFlag271 = 271,
|
|
kGameFlag272 = 272,
|
|
kGameFlag273 = 273,
|
|
kGameFlag274 = 274,
|
|
kGameFlag275 = 275,
|
|
kGameFlag276 = 276,
|
|
kGameFlag279 = 279,
|
|
kGameFlag281 = 281,
|
|
kGameFlag282 = 282,
|
|
kGameFlag283 = 283,
|
|
kGameFlag319 = 319,
|
|
kGameFlag320 = 320,
|
|
kGameFlag321 = 321,
|
|
kGameFlag322 = 322,
|
|
kGameFlag323 = 323,
|
|
kGameFlag353 = 353,
|
|
kGameFlag354 = 354,
|
|
kGameFlag355 = 355,
|
|
kGameFlag358 = 358,
|
|
kGameFlag368 = 368,
|
|
kGameFlag369 = 369,
|
|
kGameFlag370 = 370,
|
|
kGameFlag371 = 371,
|
|
kGameFlag384 = 384,
|
|
kGameFlag387 = 387,
|
|
kGameFlag391 = 391,
|
|
kGameFlag405 = 405,
|
|
kGameFlag423 = 423,
|
|
kGameFlag438 = 438,
|
|
kGameFlag439 = 439,
|
|
kGameFlag440 = 440,
|
|
kGameFlag441 = 441,
|
|
kGameFlag442 = 442,
|
|
kGameFlag447 = 447,
|
|
kGameFlag448 = 448,
|
|
kGameFlag450 = 450,
|
|
kGameFlag451 = 451,
|
|
kGameFlag452 = 452,
|
|
kGameFlag453 = 453,
|
|
kGameFlag454 = 454,
|
|
kGameFlag455 = 455,
|
|
kGameFlag470 = 470,
|
|
kGameFlag481 = 481,
|
|
kGameFlag511 = 511,
|
|
kGameFlag528 = 528,
|
|
kGameFlag543 = 543,
|
|
kGameFlag544 = 544,
|
|
kGameFlag545 = 545,
|
|
kGameFlag553 = 553,
|
|
kGameFlag556 = 556,
|
|
kGameFlag557 = 557,
|
|
kGameFlag558 = 558,
|
|
kGameFlag560 = 560,
|
|
kGameFlag561 = 561,
|
|
kGameFlag562 = 562,
|
|
kGameFlag563 = 563,
|
|
kGameFlag564 = 564,
|
|
kGameFlag565 = 565,
|
|
kGameFlag566 = 566,
|
|
kGameFlag567 = 567,
|
|
kGameFlag568 = 568,
|
|
kGameFlag569 = 569,
|
|
kGameFlag570 = 570,
|
|
kGameFlag572 = 572,
|
|
kGameFlag582 = 582,
|
|
kGameFlag583 = 583,
|
|
kGameFlag596 = 596,
|
|
kGameFlag597 = 597,
|
|
kGameFlag598 = 598,
|
|
kGameFlag599 = 599,
|
|
kGameFlag600 = 600,
|
|
kGameFlag608 = 608,
|
|
kGameFlag619 = 619,
|
|
kGameFlag635 = 635,
|
|
kGameFlag636 = 636,
|
|
kGameFlag637 = 637,
|
|
kGameFlagSolveHiveControl = 640,
|
|
kGameFlag684 = 684,
|
|
kGameFlag685 = 685,
|
|
kGameFlag686 = 686,
|
|
kGameFlag687 = 687,
|
|
kGameFlag688 = 688,
|
|
kGameFlag689 = 689,
|
|
kGameFlag690 = 690,
|
|
kGameFlag691 = 691,
|
|
kGameFlag692 = 692,
|
|
kGameFlag693 = 693,
|
|
kGameFlag694 = 694,
|
|
kGameFlag695 = 695,
|
|
kGameFlag696 = 696,
|
|
kGameFlag697 = 697,
|
|
kGameFlag698 = 698,
|
|
kGameFlag699 = 699,
|
|
kGameFlag700 = 700,
|
|
kGameFlag701 = 701,
|
|
kGameFlag702 = 702,
|
|
kGameFlag703 = 703,
|
|
kGameFlag704 = 704,
|
|
kGameFlag705 = 705,
|
|
kGameFlag706 = 706,
|
|
kGameFlag707 = 707,
|
|
kGameFlag708 = 708,
|
|
kGameFlag722 = 722,
|
|
kGameFlag723 = 723,
|
|
kGameFlag724 = 724,
|
|
kGameFlag725 = 725,
|
|
kGameFlag726 = 726,
|
|
kGameFlag727 = 727,
|
|
kGameFlag728 = 728,
|
|
kGameFlag729 = 729,
|
|
kGameFlag730 = 730,
|
|
kGameFlag759 = 759,
|
|
kGameFlag760 = 760,
|
|
kGameFlag761 = 761,
|
|
kGameFlag776 = 776,
|
|
kGameFlag790 = 790,
|
|
kGameFlag791 = 791,
|
|
kGameFlag792 = 792,
|
|
kGameFlag794 = 794,
|
|
kGameFlag795 = 795,
|
|
kGameFlag796 = 796,
|
|
kGameFlag797 = 797,
|
|
kGameFlag801 = 801,
|
|
kGameFlag802 = 802,
|
|
kGameFlag803 = 803,
|
|
kGameFlag804 = 804,
|
|
kGameFlag805 = 805,
|
|
kGameFlag806 = 806,
|
|
kGameFlag809 = 809,
|
|
kGameFlag810 = 810,
|
|
kGameFlag815 = 815,
|
|
kGameFlag816 = 816,
|
|
kGameFlag817 = 817,
|
|
kGameFlag818 = 818,
|
|
kGameFlag819 = 819,
|
|
kGameFlag820 = 820,
|
|
kGameFlag821 = 821,
|
|
kGameFlag822 = 822,
|
|
kGameFlag823 = 823,
|
|
kGameFlag824 = 824,
|
|
kGameFlag825 = 825,
|
|
kGameFlag826 = 826,
|
|
kGameFlag827 = 827,
|
|
kGameFlag828 = 828,
|
|
kGameFlag829 = 829,
|
|
kGameFlag830 = 830,
|
|
kGameFlagSolveHiveMachine = 834,
|
|
kGameFlag866 = 866,
|
|
kGameFlag875 = 875,
|
|
kGameFlag876 = 876,
|
|
kGameFlag877 = 877,
|
|
kGameFlag878 = 878,
|
|
kGameFlag879 = 879,
|
|
kGameFlag880 = 880,
|
|
kGameFlag881 = 881,
|
|
kGameFlag897 = 897,
|
|
kGameFlagFinishGame = 901,
|
|
kGameFlag925 = 925,
|
|
kGameFlag937 = 937,
|
|
kGameFlag1009 = 1009,
|
|
kGameFlag1021 = 1021,
|
|
kGameFlag1022 = 1022,
|
|
kGameFlag1023 = 1023,
|
|
kGameFlag1054 = 1054,
|
|
kGameFlag1055 = 1055,
|
|
kGameFlag1056 = 1056,
|
|
kGameFlag1057 = 1057,
|
|
kGameFlag1058 = 1058,
|
|
kGameFlag1059 = 1059,
|
|
kGameFlag1060 = 1060,
|
|
kGameFlag1061 = 1061,
|
|
kGameFlag1062 = 1062,
|
|
kGameFlag1063 = 1063,
|
|
kGameFlag1064 = 1064,
|
|
kGameFlag1065 = 1065,
|
|
kGameFlag1066 = 1066,
|
|
kGameFlag1067 = 1067,
|
|
kGameFlag1099 = 1099,
|
|
kGameFlag1108 = 1108,
|
|
kGameFlag1121 = 1121,
|
|
kGameFlag1122 = 1122,
|
|
kGameFlag1131 = 1131,
|
|
kGameFlag1137 = 1137,
|
|
kGameFlag1144 = 1144
|
|
};
|
|
|
|
enum ChapterIndex {
|
|
kChapterInvalid = -1,
|
|
kChapterNone = 0,
|
|
kChapter1,
|
|
kChapter2,
|
|
kChapter3,
|
|
kChapter4,
|
|
kChapter5,
|
|
kChapter6,
|
|
kChapter7,
|
|
kChapter8,
|
|
kChapter9,
|
|
kChapter10,
|
|
kChapter11,
|
|
kChapter12,
|
|
kChapter13
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Resources
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
enum ResourcePackId {
|
|
kResourcePackText = 0,
|
|
kResourcePackShared = 1,
|
|
kResourcePackMusic = 2, // Special case: will load from mus* resources
|
|
kResourcePackSpeech = 3,
|
|
kResourcePackSharedSound = 4,
|
|
kResourcePackTowerCells = 5,
|
|
kResourcePackInnocentAbandoned = 6,
|
|
kResourcePackCourtyardAndChapel = 7,
|
|
kResourcePackCircusOfFools = 8,
|
|
kResourcePackLaboratory = 9,
|
|
kResourcePackHive = 10,
|
|
kResourcePackMorgueAndCemetery = 11,
|
|
kResourcePackLostVillage = 12,
|
|
kResourcePackGauntlet = 13,
|
|
kResourcePackMansion = 14,
|
|
kResourcePackCave = 15,
|
|
kResourcePackMaze = 16,
|
|
kResourcePackMorgansLastGame = 17,
|
|
kResourcePackSound = 18,
|
|
kResourcePack104 = 104,
|
|
kResourcePack204 = 204,
|
|
kResourcePack304 = 304,
|
|
|
|
kResourcePackInvalid = 0xFFF
|
|
};
|
|
|
|
#define MAKE_RESOURCE(pack, index) (ResourceId)((((pack) << 16) + 0x80000000) + (unsigned) (int32)(index))
|
|
|
|
typedef int ResourceId;
|
|
|
|
enum ResourcesId {
|
|
kResourceInvalid = -1,
|
|
kResourceNone = 0
|
|
};
|
|
|
|
#define kMusicStopped -666
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Drawing
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum DrawFlags {
|
|
kDrawFlagNone = 0,
|
|
kDrawFlagMirrorLeftRight = 2
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Actions
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ActionType {
|
|
kActionTypeNone = 0,
|
|
kActionTypeFind = 1,
|
|
kActionTypeTalk = 2,
|
|
kActionTypeGrab = 4,
|
|
kActionType8 = 8,
|
|
kActionType16 = 16
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Script
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum OpcodeType {
|
|
kOpcodeReturn = 0,
|
|
kOpcodeSetGameFlag,
|
|
kOpcodeClearGameFlag,
|
|
kOpcodeToggleGameFlag,
|
|
kOpcodeJumpIfGameFlag,
|
|
kOpcodeHideCursor, // 5
|
|
kOpcodeShowCursor,
|
|
kOpcodePlayAnimation,
|
|
kOpcodeMoveScenePosition,
|
|
kOpcodeHideActor,
|
|
kOpcodeShowActor, // 10
|
|
kOpcodeSetActorPosition,
|
|
kOpcodeSetSceneMotionStatus,
|
|
kOpcodeDisableActor,
|
|
kOpcodeEnableActor,
|
|
kOpcodeEnableObjects, // 15
|
|
kOpcodeReturn1,
|
|
kOpcodeRemoveObject,
|
|
kOpcodeJumpActorSpeech,
|
|
kOpcodeJumpAndSetDirection,
|
|
kOpcodeJumpIfActorCoordinates, // 20
|
|
kOpcodeNop,
|
|
kOpcodeResetAnimation,
|
|
kOpcodeDisableObject,
|
|
kOpcodeJumpIfSoundPlayingAndPlaySound,
|
|
kOpcodeJumpIfActionFind, // 25
|
|
kOpcodeSetActionFind,
|
|
kOpcodeClearActionFind,
|
|
kOpcodeJumpIfActionGrab,
|
|
kOpcodeSetActionGrab,
|
|
kOpcodeClearActionGrab, // 30
|
|
kOpcodeJumpIfActionTalk,
|
|
kOpcodeSetActionTalk,
|
|
kOpcodeClearActionTalk,
|
|
kOpcodeAddReactionHive,
|
|
kOpcodeRemoveReactionHive, // 35
|
|
kOpcodeHasMoreReactions,
|
|
kOpcodeRunEncounter,
|
|
kOpcodeJumpIfAction16,
|
|
kOpcodeSetAction16,
|
|
kOpcodeClearAction16, // 40
|
|
kOpcodeSetActorField638,
|
|
kOpcodeJumpIfActorField638,
|
|
kOpcodeChangeScene,
|
|
kOpcodeUpdateActor,
|
|
kOpcodePlayMovie, // 45
|
|
kOpcodeStopAllObjectsSounds,
|
|
kOpcodeStopProcessing,
|
|
kOpcodeResumeProcessing,
|
|
kOpcodeResetSceneRect,
|
|
kOpcodeChangeMusicById, // 50
|
|
kOpcodeStopMusic,
|
|
kOpcodeIncrementParam1,
|
|
kOpcodeSetVolume,
|
|
kOpcodeJump,
|
|
kOpcodeRunPuzzle, // 55
|
|
kOpcodeJumpIfAction8,
|
|
kOpcodeSetAction8,
|
|
kOpcodeClearAction8,
|
|
kOpcodeCreatePalette,
|
|
kOpcodeIncrementParam2, // 60
|
|
kOpcodeWaitUntilFramePlayed,
|
|
kOpcodeUpdateWideScreen,
|
|
kOpcodeJumpIfActor,
|
|
kOpcodePlaySpeechScene,
|
|
kOpcodePlaySpeech, // 65
|
|
kOpcodePlaySpeechScene2,
|
|
kOpcodeMoveScenePositionFromActor,
|
|
kOpcodePaletteFade,
|
|
kOpcodeStartPaletteFadeThread,
|
|
kOpcodePlaySoundUpdateObject, // 70
|
|
kOpcodeActorFaceTarget,
|
|
kOpcodeHidMatteBars,
|
|
kOpcodeShowMatteBars,
|
|
kOpcodeJumpIfSoundPlaying,
|
|
kOpcodeChangePlayer, // 75
|
|
kOpcodeChangeActorStatus,
|
|
kOpcodeStopSound,
|
|
kOpcodeJumpRandom,
|
|
kOpcodeClearScreen,
|
|
kOpcodeQuit, // 80
|
|
kOpcodeJumpObjectFrame,
|
|
kOpcodeDeleteGraphics,
|
|
kOpcodeSetPlayerField944,
|
|
kOpcodeSetScriptField1BB0,
|
|
kOpcodeOnScriptField1BB0, // 85
|
|
kOpcodeInteract,
|
|
kOpcodeSetResourcePalette,
|
|
kOpcodeSetObjectFrameIndexAndFlags,
|
|
kOpcodeSetObjectFlags,
|
|
kOpcodeSetActorActionIndex2, // 90
|
|
kOpcodeUpdateTransparency,
|
|
kOpcodeQueueScript,
|
|
kOpcodeProcessActor,
|
|
kOpcodeClearActorFields,
|
|
kOpcodeSetObjectLastFrameIndex, // 95
|
|
kOpcodeSetActionAreaFlags,
|
|
kOpcodeUpdatePlayerChapter9,
|
|
kOpcodeShowMenu,
|
|
kOpcodeUpdateGlobalFlags
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Actor
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef int ActorIndex;
|
|
|
|
enum ActorIndexes {
|
|
kActorInvalid = -1,
|
|
// TODO: check if the names match the actor type
|
|
kActorMax = 0,
|
|
kActorSarah = 1,
|
|
kActorCyclops = 2,
|
|
kActorAztec = 3
|
|
};
|
|
|
|
enum ActorStatus {
|
|
kActorStatusNone = 0,
|
|
kActorStatusWalking = 1, // Walking
|
|
kActorStatusWalkingTo, // Auto-walking to target
|
|
kActorStatusInteracting,
|
|
kActorStatusEnabled, // Standing Still
|
|
kActorStatusDisabled, // 5
|
|
kActorStatusShowingInventory,
|
|
kActorStatusPickupItem,
|
|
kActorStatus8,
|
|
kActorStatusFidget,
|
|
kActorStatus10,
|
|
kActorStatus11,
|
|
kActorStatusWalking2,
|
|
kActorStatusWalkingTo2,
|
|
kActorStatusEnabled2,
|
|
kActorStatusAttacking, // 15
|
|
kActorStatusGettingHurt,
|
|
kActorStatusRestarting,
|
|
kActorStatus18,
|
|
kActorStatusHittingPumpkin,
|
|
kActorStatus20,
|
|
kActorStatusMorphingInto
|
|
};
|
|
|
|
enum ActorDirection {
|
|
kDirectionInvalid = -1,
|
|
kDirectionN = 0,
|
|
kDirectionNW = 1,
|
|
kDirectionW = 2,
|
|
kDirectionSW = 3,
|
|
kDirectionS = 4,
|
|
kDirectionSE = 5,
|
|
kDirectionE = 6,
|
|
kDirectionNE = 7,
|
|
kDirection8 = 8
|
|
};
|
|
|
|
enum ActorFlags {
|
|
kActorFlagVisible = 1,
|
|
kActorFlagMasked = 2
|
|
};
|
|
|
|
enum DirectionFrom {
|
|
kDirectionFromObject = 0,
|
|
kDirectionFromPolygons = 1,
|
|
kDirectionFromActor = 2,
|
|
kDirectionFromParameters = 3
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Object
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum ObjectId {
|
|
kObjectInvalid = -1,
|
|
kObjectNone = 0,
|
|
kObjectHeadBanger = 101,
|
|
kObjectAngelFlares = 112,
|
|
kObjectTicaTac01 = 391,
|
|
kObjectGuyFalls = 434,
|
|
kObjectGuyWobbles = 405,
|
|
kObjectRocker = 441,
|
|
kObjectOpeningGate = 485,
|
|
kObjectTableRecordRoom = 659,
|
|
kObject703 = 703,
|
|
kObjectTree8 = 726,
|
|
kObjectSlab = 743,
|
|
kObjectPreacherBobAssistant = 802,
|
|
kObjectPreacherBob = 803,
|
|
kObjectNPC024Church = 816,
|
|
kObjectNPC024Fountain = 825,
|
|
kObjectNPC027Sit = 838,
|
|
kObjectNPC028Sit = 839,
|
|
kObjectNPC029Sit = 840,
|
|
kObjectNPC027Dancing = 844,
|
|
kObjectNPC028Dancing = 845,
|
|
kObjectNPC026OutOfWay = 861,
|
|
kObjectNPC026Talking = 862,
|
|
kObjectOrangeRecord = 920,
|
|
kObjectJessieStatusQuo = 984,
|
|
kObjectMarty02 = 991,
|
|
kObjectEileenOnBench = 993,
|
|
kObject994 = 994,
|
|
kObjectFishingBoy = 1001,
|
|
kObjectDennisStatusQuo = 1011,
|
|
kObjectSailorBoy = 1013,
|
|
kObjectEleenOnGround = 1019,
|
|
kObjectSailorStatusQuo = 1021,
|
|
kObjectNPC026TalkStatusQuo = 1038,
|
|
kObjectSuckerSittingStatusQuo = 1084,
|
|
kObjectBubbles = 1185,
|
|
kObjectGlow = 1186,
|
|
kObjectDome = 1187,
|
|
kObjectRedLight = 1188,
|
|
kObjectRing = 1189,
|
|
kObjectBallMovesUpright = 1190,
|
|
kObjectGearsLightUp = 1191,
|
|
kObjectMariaPointsLeft = 1200,
|
|
kObjectMariaPointsRight = 1201,
|
|
kObjectNPC032Sleeping = 1250,
|
|
kObjectNPC032StatusQuoOutside = 1254,
|
|
kObjectNPC032StatusQuoBigTop = 1256,
|
|
kObjectGlobe = 1261,
|
|
kObjectDrawers3 = 1276,
|
|
kObjectChalice = 1286,
|
|
kObjectFreezerHallInterior = 1337,
|
|
kObjectNPC033StartEnc = 1338,
|
|
kObjectNPC033GetBook = 1343,
|
|
kObjectNPC033Reading = 1344,
|
|
kObjectOldMan3 = 1377,
|
|
kObjectTattooManStatusQuo = 1391, // NPC 34
|
|
kObjectStrongmanStatusQuo = 1402, // NPC 35
|
|
kObjectStrongmanStatusQuo2 = 1405, // NPC 35
|
|
kObjectInfernoStatusQuo = 1408, // NPC 36
|
|
kObjectJugglerWithPin = 1423, // NPC 37
|
|
kObjectJuggler = 1424, // NPC 37
|
|
kObjectClownStatusQuo = 1428, // NPC 38
|
|
kObjectTrixieStatusQuo = 1432, // NPC 39
|
|
kObjectSimonStatusQuo = 1434, // NPC 40
|
|
kObjectBigTopBarrel = 1436,
|
|
kObjectFunTixStatusQuo = 1437, // NPC 44
|
|
kObjectStandBehindJuggler = 1438,
|
|
kObjectFreakTixStatusQuoUp = 1439, // NPC 45
|
|
kObjectFreakTixStatusQuoDown = 1440, // NPC 45
|
|
kObjectFortTellerStatusQuo = 1444, // NPC 45
|
|
kObjectStrongmanLeft = 1449, // NPC 35
|
|
kObjectStrongmanRight = 1450, // NPC 35
|
|
kObjectRingTossStatusQuo = 1451, // NPC 47
|
|
kObjectKnockDownStatusQuo = 1455, // NPC 47
|
|
kObjectPigShootStatusQuo = 1456, // NPC 47
|
|
kObjectPretZoolStatusQuo = 1461, // NPC 48
|
|
kObjectTimberStatusQuo = 1462, // NPC 49
|
|
kObjectTwinsStatusQuo = 1465, // NPC 50
|
|
kObjectSeanStatusQuo = 1468, // NPC 51
|
|
kObjectMomAndPopStatusQuo = 1470, // NPCs 52-53
|
|
kObjectCrow1FlysAway = 1485,
|
|
kObjectCrow1Pecks = 1486,
|
|
kObjectCrow2AmbientPecks = 1495,
|
|
kObjectCrow2FlysAway = 1500,
|
|
kObjectCrow3FlysAway = 1502,
|
|
kObjectCrow3Pecks = 1503,
|
|
kObjectCrow4FlysAway = 1506,
|
|
kObjectCrow4Pecks = 1507,
|
|
kObjectPumpkin1Loop = 1523,
|
|
kObjectPumpkin2Loop = 1524,
|
|
kObjectPumpkin3Loop = 1525,
|
|
kObjectPumpkin4Loop = 1526,
|
|
kObjectPumpkin5Loop = 1527,
|
|
kObjectPumpkin6Loop = 1528,
|
|
kObjectPumpkin7Loop = 1529,
|
|
kObjectPumpkin1Dies = 1530,
|
|
kObjectPumpkin2Dies = 1531,
|
|
kObjectPumpkin3Dies = 1532,
|
|
kObjectPumpkin4Dies = 1533,
|
|
kObjectPumpkin5Dies = 1534,
|
|
kObjectPumpkin6Dies = 1535,
|
|
kObjectPumpkin7Dies = 1536,
|
|
kObjectDennisStatus2 = 1580,
|
|
kObjectPreAlphaNut = 1582,
|
|
kObjectPreAlphaNut2 = 1584,
|
|
kObjectDeadMomFromOutside = 1589,
|
|
kObjectHeadOnTable = 1595,
|
|
kObjectCave = 1763,
|
|
kObjectWitchDoctor = 1778,
|
|
kObjectStoneWifeStatuQuo = 1782,
|
|
kObjectFishermanWidowStatusQuo = 1786,
|
|
kObjectABarrier = 1899,
|
|
kObjectMonsterUp = 1956,
|
|
kObjectMonsterStatus = 1957,
|
|
kObjectMonsterDeath = 1958,
|
|
kObjectMonsterAttack = 1959,
|
|
kObjectPuke1 = 1960,
|
|
kObjectPuke2 = 1961,
|
|
kObjectPuke3 = 1962,
|
|
kObjectMonsterHurt = 1997,
|
|
kObjectWheel1 = 2113,
|
|
kObjectWheel2 = 2114,
|
|
kObjectWheel3 = 2115,
|
|
kObjectWheel4 = 2116,
|
|
kObjectWheel5 = 2117,
|
|
kObjectWheel6 = 2118,
|
|
kObjectWheel7 = 2119,
|
|
kObjectStoneMasonStatusHitt = 2123,
|
|
kObjectFlamingHeadLeftSide = 2129,
|
|
kObjectHook1B = 2131,
|
|
kObjectHook2B = 2132,
|
|
kObjectHook3B = 2133,
|
|
kObjectHook4B = 2134,
|
|
kObjectHook5B = 2135,
|
|
kObjectHook6B = 2136,
|
|
kObjectHook0Down = 2152,
|
|
kObjectHook2Down = 2154,
|
|
kObjectHook3Down = 2155,
|
|
kObjectHook4Down = 2156,
|
|
kObjectHook5Down = 2157,
|
|
kObjectHook6Down = 2158,
|
|
kObject2230 = 2230,
|
|
kObjectGravinStatusQuoCyber = 2324,
|
|
kObjectGravinWorkMachine = 2337,
|
|
kObjectNPC062GritzaStatusQuo = 2399,
|
|
kObjectNPC063GrundleStatusQuo = 2410,
|
|
kObjectNPC064GrellaStatusQuo = 2418,
|
|
kObjectSparkPuzzleLeft = 2427,
|
|
kObjectSparkPuzzleMiddle = 2429,
|
|
kObjectLavaBridge = 2445,
|
|
kObjectSparkPuzzleRight = 2451,
|
|
kObjectNPC065StatusQuo = 2469,
|
|
kObjectFloorTrap1 = 2473,
|
|
kObjectFloorTrap2 = 2474,
|
|
kObjectFloorTrap3 = 2475,
|
|
kObjectFloorTrap4 = 2476,
|
|
kObjectFloorTrap5 = 2477,
|
|
kObjectGlow4 = 2478,
|
|
kObjectBugOnTable = 2480,
|
|
kObjectFloorTrap6 = 2481,
|
|
kObjectFloorTrap7 = 2482,
|
|
kObjectFloorTrap8 = 2483,
|
|
kObjectFloorTrap9 = 2484,
|
|
kObjectWadeThroughLava = 2500,
|
|
kObjectNPC066StatusQuo = 2504,
|
|
kObject2507 = 2507,
|
|
kObjectBrokenPipe = 2508,
|
|
kObjectBodySlides1 = 2514,
|
|
kObjectBodySlides2 = 2515,
|
|
kObjectBodySlides3 = 2516,
|
|
kObjectBodySlides4 = 2517,
|
|
kObjectBodySlides5 = 2518,
|
|
kObjectBodySlides6 = 2519,
|
|
kObjectEmberPopsOut = 2526,
|
|
kObjectBugCarriesEmber = 2527,
|
|
kObjectGirlStatusQuo = 2541,
|
|
kObjectWitchWifeStirring = 2543,
|
|
kObjectFurnaceHole = 2554,
|
|
kObjectInsidePipeCyberPod = 2555,
|
|
kObjectTopOfFurnace = 2566,
|
|
kObjectElderBugLimb = 2572,
|
|
kObjectQuetzlcaotlStatusQuo = 2578,
|
|
kObjectGhost1 = 2579,
|
|
kObjectGhost2 = 2580,
|
|
kObjectGhost3 = 2581,
|
|
kObjectGhost4 = 2582,
|
|
kObjectGhost5 = 2583,
|
|
kObjectGhost6 = 2584,
|
|
kObjectDiscardedBugPincer = 2587,
|
|
kObjectGong1 = 2590,
|
|
kObjectGong2 = 2591,
|
|
kObjectGong3 = 2592,
|
|
kObjectGong4 = 2593,
|
|
kObjectGong5 = 2594,
|
|
kObjectGong6 = 2596,
|
|
kObjectGhost2b = 2634,
|
|
kObjectRitualLoop = 2674,
|
|
kObjectLine = 2859,
|
|
kObjectZapPattern1 = 2876,
|
|
kObjectZapPattern2 = 2877,
|
|
kObjectZapPattern3 = 2878,
|
|
kObjectBlanklPixelForWarrior = 2884,
|
|
kObjectPixelForHutWarrior = 2885,
|
|
kObjectPixelForWaterfallGhost = 2886,
|
|
kObjectZapPattern4 = 2892,
|
|
kObjectZapPattern5 = 2893,
|
|
kObjectZapPattern6 = 2894,
|
|
kObjectZapPattern7 = 2895,
|
|
kObjectZapPattern8 = 2896,
|
|
kObjectZapPattern9 = 2897,
|
|
kObjectLitLimbScanner = 3061,
|
|
kObjectOfficeWallNew = 3062,
|
|
kObjectCyberTable = 3065,
|
|
|
|
kObjectEnd
|
|
};
|
|
|
|
enum ObjectFlag {
|
|
kObjectFlagEnabled = 0x1,
|
|
kObjectFlag2 = 0x2,
|
|
kObjectFlag4 = 0x4,
|
|
kObjectFlag6 = 0x6,
|
|
kObjectFlag8 = 0x8,
|
|
kObjectFlag10 = 0x10,
|
|
kObjectFlag20 = 0x20,
|
|
kObjectFlag40 = 0x40,
|
|
kObjectFlag80 = 0x80,
|
|
kObjectFlagBF = 0xBF,
|
|
kObjectFlag1000 = 0x1000,
|
|
kObjectFlagC000 = 0xC000,
|
|
kObjectFlag10000 = 0x10000,
|
|
kObjectFlag10E38 = 0x10E38,
|
|
kObjectFlag20000 = 0x20000,
|
|
kObjectFlag40000 = 0x40000
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Puzzles
|
|
//////////////////////////////////////////////////////////////////////////
|
|
enum PuzzleId {
|
|
kPuzzleVCR = 0,
|
|
kPuzzlePipes,
|
|
kPuzzleTicTacToe,
|
|
kPuzzleLock,
|
|
kPuzzle4,
|
|
kPuzzleWheel, // 5
|
|
kPuzzleBoardSalvation,
|
|
kPuzzleBoardYouth,
|
|
kPuzzleBoardKeyHidesTo,
|
|
kPuzzleWritings,
|
|
kPuzzle11, // 10
|
|
kPuzzleMorgueDoor,
|
|
kPuzzleClock,
|
|
kPuzzleTimeMachine,
|
|
kPuzzleFisherman,
|
|
kPuzzleHiveMachine, // 15
|
|
kPuzzleHiveControl
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Helpers
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#define CLEAR_ARRAY(type, name) { \
|
|
for (Common::Array<type *>::iterator it = name.begin(); it != name.end(); it++) {\
|
|
delete *it; \
|
|
*it = NULL; \
|
|
} \
|
|
name.clear(); \
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Macros
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Misc
|
|
#define rnd(val) _vm->getRandom(val)
|
|
|
|
// Engine subclasses
|
|
#define getEncounter() _vm->encounter()
|
|
#define getCursor() _vm->cursor()
|
|
#define getMenu() _vm->menu()
|
|
#define getPuzzles() _vm->puzzles()
|
|
#define getReaction() _vm->reaction()
|
|
#define getResource() _vm->resource()
|
|
#define getSound() _vm->sound()
|
|
#define getSaveLoad() _vm->savegame()
|
|
#define getScene() _vm->scene()
|
|
#define getScreen() _vm->screen()
|
|
#define getScript() _vm->script()
|
|
#define getSharedData() _vm->data()
|
|
#define getSpecial() _vm->special()
|
|
#define getSpeech() _vm->speech()
|
|
#define getText() _vm->text()
|
|
#define getVideo() _vm->video()
|
|
#define getWorld() _vm->scene()->worldstats()
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Sub-integer partial access macros
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#define LOBYTE(d) (*((char*)&(d)))
|
|
#define BYTE1(d) (*((char*)&(d)+1)) // Same as HIBYTE()
|
|
#define BYTE2(d) (*((char*)&(d)+2))
|
|
#define LOWORD(x) (*((int16*)&(x)))
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Resource ID macros
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#define RESOURCE_PACK(id) (ResourcePackId)((((uint32)id) >> 16) & 0x7FFF)
|
|
#define RESOURCE_INDEX(id) (uint16)(id)
|
|
|
|
} // End of namespace Asylum
|
|
|
|
#endif // ASYLUM_SHARED_H
|