22 #ifndef ASYLUM_SHARED_H 23 #define ASYLUM_SHARED_H 39 kGameFlagBrokenPipeSpraying = 96,
40 kGameFlagSmFtnOverflows = 97,
41 kGameFlagFountainFilling = 98,
42 kGameFlagSewerExplodes = 99,
47 kGameFlagScriptProcessing = 183,
49 kGameFlagCommentLeavingCell = 214,
52 kGameFlagSolveVCRPuzzle = 220,
159 kGameFlagSolveHiveControl = 640,
229 kGameFlagSolveHiveMachine = 834,
240 kGameFlagFinishGame = 901,
243 kGameFlag1009 = 1009,
244 kGameFlag1021 = 1021,
245 kGameFlag1022 = 1022,
246 kGameFlag1023 = 1023,
247 kGameFlag1054 = 1054,
248 kGameFlag1055 = 1055,
249 kGameFlag1056 = 1056,
250 kGameFlag1057 = 1057,
251 kGameFlag1058 = 1058,
252 kGameFlag1059 = 1059,
253 kGameFlag1060 = 1060,
254 kGameFlag1061 = 1061,
255 kGameFlag1062 = 1062,
256 kGameFlag1063 = 1063,
257 kGameFlag1064 = 1064,
258 kGameFlag1065 = 1065,
259 kGameFlag1066 = 1066,
260 kGameFlag1067 = 1067,
261 kGameFlag1099 = 1099,
262 kGameFlag1108 = 1108,
263 kGameFlag1121 = 1121,
264 kGameFlag1122 = 1122,
265 kGameFlag1131 = 1131,
266 kGameFlag1137 = 1137,
267 kGameFlag1144 = 1144,
268 kGameFlag3189 = 3189,
269 kGameFlag3351 = 3351,
270 kGameFlag3386 = 3386,
271 kGameFlag3387 = 3387,
272 kGameFlag3388 = 3388,
273 kGameFlag3389 = 3389,
274 kGameFlag3754 = 3754,
275 kGameFlag3755 = 3755,
276 kGameFlag3810 = 3810,
277 kGameFlag3823 = 3823,
278 kGameFlag3842 = 3842,
279 kGameFlag3843 = 3843,
284 kChapterInvalid = -1,
305 enum ResourcePackId {
306 kResourcePackText = 0,
307 kResourcePackShared = 1,
308 kResourcePackMusic = 2,
309 kResourcePackSpeech = 3,
310 kResourcePackSharedSound = 4,
311 kResourcePackTowerCells = 5,
312 kResourcePackInnocentAbandoned = 6,
313 kResourcePackCourtyardAndChapel = 7,
314 kResourcePackCircusOfFools = 8,
315 kResourcePackLaboratory = 9,
316 kResourcePackHive = 10,
317 kResourcePackMorgueAndCemetery = 11,
318 kResourcePackLostVillage = 12,
319 kResourcePackGauntlet = 13,
320 kResourcePackMansion = 14,
321 kResourcePackCave = 15,
322 kResourcePackMaze = 16,
323 kResourcePackMorgansLastGame = 17,
324 kResourcePackSound = 18,
325 kResourcePack104 = 104,
326 kResourcePack204 = 204,
327 kResourcePack304 = 304,
329 kResourcePackInvalid = 0xFFF
332 #define MAKE_RESOURCE(pack, index) (ResourceId)((((pack) << 16) + 0x80000000) + (unsigned) (int32)(index)) 334 typedef int ResourceId;
337 kResourceInvalid = -1,
341 #define kMusicStopped -666 348 kDrawFlagMirrorLeftRight = 2
369 kOpcodeClearGameFlag,
370 kOpcodeToggleGameFlag,
371 kOpcodeJumpIfGameFlag,
374 kOpcodePlayAnimation,
375 kOpcodeMoveScenePosition,
378 kOpcodeSetActorPosition,
379 kOpcodeSetSceneMotionStatus,
382 kOpcodeEnableObjects,
385 kOpcodeJumpActorSpeech,
386 kOpcodeJumpAndSetDirection,
387 kOpcodeJumpIfActorCoordinates,
389 kOpcodeResetAnimation,
390 kOpcodeDisableObject,
391 kOpcodeJumpIfSoundPlayingAndPlaySound,
392 kOpcodeJumpIfActionFind,
393 kOpcodeSetActionFind,
394 kOpcodeClearActionFind,
395 kOpcodeJumpIfActionGrab,
396 kOpcodeSetActionGrab,
397 kOpcodeClearActionGrab,
398 kOpcodeJumpIfActionTalk,
399 kOpcodeSetActionTalk,
400 kOpcodeClearActionTalk,
401 kOpcodeAddToInventory,
402 kOpcodeRemoveFromInventory,
403 kOpcodeJumpIfInventoryOmits,
405 kOpcodeJumpIfAction16,
407 kOpcodeClearAction16,
408 kOpcodeSelectInventoryItem,
409 kOpcodeJumpIfInventoryItemNotSelected,
413 kOpcodeStopAllObjectsSounds,
414 kOpcodeStopProcessing,
415 kOpcodeResumeProcessing,
416 kOpcodeResetSceneRect,
417 kOpcodeChangeMusicById,
419 kOpcodeIncrementParam1,
423 kOpcodeJumpIfAction8,
426 kOpcodeCreatePalette,
427 kOpcodeIncrementParam2,
428 kOpcodeWaitUntilFramePlayed,
429 kOpcodeUpdateWideScreen,
431 kOpcodePlaySpeechScene,
433 kOpcodePlaySpeechScene2,
434 kOpcodeMoveScenePositionFromActor,
436 kOpcodeQueuePaletteFade,
437 kOpcodePlaySoundUpdateObject,
438 kOpcodeActorFaceTarget,
440 kOpcodeShowMatteBars,
441 kOpcodeJumpIfSoundPlaying,
443 kOpcodeChangeActorStatus,
448 kOpcodeJumpObjectFrame,
449 kOpcodeDeleteGraphics,
450 kOpcodeSetPlayerField944,
451 kOpcodeSetScriptField1BB0,
452 kOpcodeOnScriptField1BB0,
454 kOpcodeSetResourcePalette,
455 kOpcodeSetObjectFrameIndexAndFlags,
456 kOpcodeSetObjectFlags,
457 kOpcodeSetActorActionIndex2,
458 kOpcodeUpdateTransparency,
461 kOpcodeClearActorFields,
462 kOpcodeSetObjectLastFrameIndex,
463 kOpcodeSetActionAreaFlags,
466 kOpcodeUpdateGlobalFlags
473 typedef int ActorIndex;
485 kActorStatusNone = 0,
486 kActorStatusWalking = 1,
487 kActorStatusWalkingTo,
488 kActorStatusInteracting,
490 kActorStatusDisabled,
491 kActorStatusShowingInventory,
492 kActorStatusStoppedInteracting,
497 kActorStatusWalking2,
498 kActorStatusWalkingTo2,
499 kActorStatusEnabled2,
500 kActorStatusAttacking,
501 kActorStatusGettingHurt,
502 kActorStatusRestarting,
504 kActorStatusHittingPumpkin,
505 kActorStatusStoppedHitting,
506 kActorStatusMorphingInto
509 enum ActorDirection {
510 kDirectionInvalid = -1,
523 kActorFlagVisible = 1,
528 kDirectionFromObject = 0,
529 kDirectionFromPolygons = 1,
530 kDirectionFromActor = 2,
531 kDirectionFromParameters = 3
540 kObjectHeadBanger = 101,
541 kObjectAngelFlares = 112,
542 kObjectTicaTac01 = 391,
543 kObjectGuyWobbles = 405,
544 kObjectGuyFalls = 434,
546 kObjectOpeningGate = 485,
547 kObjectTableRecordRoom = 659,
551 kObjectDrMorgan = 801,
552 kObjectPreacherBobAssistant = 802,
553 kObjectPreacherBob = 803,
554 kObjectNPC024Church = 816,
555 kObjectNpc024TalkChurch = 817,
556 kObjectNpc024DanceAway = 820,
557 kObjectNpc024TalkFount = 824,
558 kObjectNPC024Fountain = 825,
559 kObjectNPC027Sit = 838,
560 kObjectNPC028Sit = 839,
561 kObjectNPC029Sit = 840,
562 kObjectNPC027Dancing = 844,
563 kObjectNPC028Dancing = 845,
564 kObjectNpc029Dancing = 846,
565 kObjectNPC026OutOfWay = 861,
566 kObjectNPC026Talking = 862,
567 kObjectNpc025Talking = 863,
568 kObjectNpc000Talking = 873,
569 kObjectOrangeRecord = 920,
570 kObjectNpc029Talk = 922,
571 kObjectNpc027Talk = 925,
572 kObjectNpc028Talk = 927,
573 kObjectJessieStatusQuo = 984,
574 kObjectMarty02 = 991,
575 kObjectEileenOnBench = 993,
577 kObjectFishingBoy = 1001,
578 kObjectDennisStatusQuo = 1011,
579 kObjectDennisTalk = 1012,
580 kObjectSailorBoy = 1013,
581 kObjectEleenOnGround = 1019,
582 kObjectSailorStatusQuo = 1021,
583 kObjectNPC026TalkStatusQuo = 1038,
584 kObjectDennisTalkHide = 1051,
585 kObjectDennisFoundSt = 1052,
586 kObjectBillyTalks = 1061,
587 kObjectJessieTalks = 1072,
588 kObjectSuckerTalks = 1082,
589 kObjectSuckerSittingStatusQuo = 1084,
590 kObjectBillyStatusUp = 1090,
591 kObjectJessieStatusWhileUp = 1091,
592 kObjectTalkToBallBoy = 1105,
593 kObjectIleanStatusFrame = 1125,
594 kObjectBubbles = 1185,
597 kObjectRedLight = 1188,
599 kObjectBallMovesUpright = 1190,
600 kObjectGearsLightUp = 1191,
601 kObjectMarisStatusQuo = 1199,
602 kObjectMariaPointsLeft = 1200,
603 kObjectMariaPointsRight = 1201,
604 kObjectNPC032Sleeping = 1250,
605 kObjectNPC032StatusQuoOutside = 1254,
606 kObjectNpc032TalkOutside = 1255,
607 kObjectNPC032StatusQuoBigTop = 1256,
608 kObjectRingmasterTalkTent = 1257,
610 kObjectDrawers3 = 1276,
611 kObjectChalice = 1286,
612 kObjectFreezerHallInterior = 1337,
613 kObjectNPC033StartEnc = 1338,
614 kObjectNpc033Talking = 1339,
615 kObjectNpc033SqNoBook = 1341,
616 kObjectNPC033GetBook = 1343,
617 kObjectNPC033Reading = 1344,
618 kObjectBodyTalks = 1371,
619 kObjectBodyStat = 1373,
620 kObjectOldMan3 = 1377,
621 kObjectTattooingStrongMan = 1390,
622 kObjectTattooManStatusQuo = 1391,
623 kObjectTattooGuy034Talk = 1392,
624 kObjectStrongmanStatusQuo = 1402,
625 kObjectStrongman035Talk = 1403,
626 kObjectStrongmanStatusQuo2 = 1405,
627 kObjectInfernoStatusQuo = 1408,
628 kObjectInfernoTalk036 = 1409,
629 kObjectJugglerWithPin = 1423,
630 kObjectJuggler = 1424,
631 kObjectClown038Talk = 1427,
632 kObjectClownStatusQuo = 1428,
633 kObjectTrixieStatusQuo = 1432,
634 kObjectTrixie039Talk = 1433,
635 kObjectSimonStatusQuo = 1434,
636 kObjectSSimon040Talk = 1435,
637 kObjectBigTopBarrel = 1436,
638 kObjectFunTixStatusQuo = 1437,
639 kObjectStandBehindJuggler = 1438,
640 kObjectFreakTixStatusQuoUp = 1439,
641 kObjectFreakTixStatusQuoDown = 1440,
642 kObjectFortTellerStatusQuo = 1444,
643 kObjectStrongmanLeft = 1449,
644 kObjectStrongmanRight = 1450,
645 kObjectRingTossStatusQuo = 1451,
646 kObjectKnockDownStatusQuo = 1455,
647 kObjectPigShootStatusQuo = 1456,
648 kObjectPretzool048Talk = 1460,
649 kObjectPretZoolStatusQuo = 1461,
650 kObjectTimberStatusQuo = 1462,
651 kObjectTimber049Talk = 1463,
652 kObjectTwinsStatusQuo = 1465,
653 kObjectTwins050Talk = 1466,
654 kObjectSean051Talk = 1467,
655 kObjectSeanStatusQuo = 1468,
656 kObjectMom052Talk = 1469,
657 kObjectMomAndPopStatusQuo = 1470,
658 kObjectPop053Talk = 1471,
659 kObjectCrow1FlysAway = 1485,
660 kObjectCrow1Pecks = 1486,
661 kObjectCrow2AmbientPecks = 1495,
662 kObjectCrow2FlysAway = 1500,
663 kObjectCrow3FlysAway = 1502,
664 kObjectCrow3Pecks = 1503,
665 kObjectCrow4FlysAway = 1506,
666 kObjectCrow4Pecks = 1507,
667 kObjectPumpkin1Loop = 1523,
668 kObjectPumpkin2Loop = 1524,
669 kObjectPumpkin3Loop = 1525,
670 kObjectPumpkin4Loop = 1526,
671 kObjectPumpkin5Loop = 1527,
672 kObjectPumpkin6Loop = 1528,
673 kObjectPumpkin7Loop = 1529,
674 kObjectPumpkin1Dies = 1530,
675 kObjectPumpkin2Dies = 1531,
676 kObjectPumpkin3Dies = 1532,
677 kObjectPumpkin4Dies = 1533,
678 kObjectPumpkin5Dies = 1534,
679 kObjectPumpkin6Dies = 1535,
680 kObjectPumpkin7Dies = 1536,
681 kObjectDennisStatus2 = 1580,
682 kObjectPreAlphaNut = 1582,
683 kObjectPreAlphaNut2 = 1584,
684 kObjectMotherTalking = 1587,
685 kObjectDeadMomFromOutside = 1589,
686 kObjectHeadOnTable = 1595,
687 kObjectNpc049Sq2 = 1658,
688 kObjectTreeTalks = 1671,
690 kObjectWitchDoctor = 1778,
691 kObjectWitchTalks = 1779,
692 kObjectStoneMaison = 1780,
693 kObjectStoneMaisonTalk = 1781,
694 kObjectStoneWifeStatuQuo = 1782,
695 kObjectStoneWifeTalks = 1783,
696 kObjectFishermanWidowStatusQuo = 1786,
697 kObjectFishermansWTalks = 1787,
698 kObjectOracleTalks = 1853,
699 kObjectOracleTalkStatus = 1854,
700 kObjectABarrier = 1899,
701 kObjectMonsterUp = 1956,
702 kObjectMonsterStatus = 1957,
703 kObjectMonsterDeath = 1958,
704 kObjectMonsterAttack = 1959,
708 kObjectMonsterHurt = 1997,
709 kObjectBlinks = 2064,
710 kObjectWheel1 = 2113,
711 kObjectWheel2 = 2114,
712 kObjectWheel3 = 2115,
713 kObjectWheel4 = 2116,
714 kObjectWheel5 = 2117,
715 kObjectWheel6 = 2118,
716 kObjectWheel7 = 2119,
717 kObjectStoneMasonStatusHitt = 2123,
718 kObjectFlamingHeadLeftSide = 2129,
719 kObjectHook1B = 2131,
720 kObjectHook2B = 2132,
721 kObjectHook3B = 2133,
722 kObjectHook4B = 2134,
723 kObjectHook5B = 2135,
724 kObjectHook6B = 2136,
725 kObjectHook0Down = 2152,
726 kObjectHook2Down = 2154,
727 kObjectHook3Down = 2155,
728 kObjectHook4Down = 2156,
729 kObjectHook5Down = 2157,
730 kObjectHook6Down = 2158,
732 kObjectMotherTalkingSq = 2280,
733 kObjectGravinStatusQuoCyber = 2324,
734 kObjectGravinTalkCyber = 2325,
735 kObjectGravinSqGravins = 2327,
736 kObjectGravinTalkGravins = 2328,
737 kObjectGravinSqDoor = 2329,
738 kObjectGravinTalkDoor = 2330,
739 kObjectGravinSqGromnas = 2332,
740 kObjectGravinTalkGromnas = 2333,
741 kObjectGravinWorkMachine = 2337,
742 kObjectNPC062GritzaStatusQuo = 2399,
743 kObjectNpc062GritzaTalk = 2400,
744 kObjectNPC063GrundleStatusQuo = 2410,
745 kObjectNpc063GrundleTalk = 2411,
746 kObjectNPC064GrellaStatusQuo = 2418,
747 kObjectNpc064GrellaTalk = 2420,
748 kObjectSparkPuzzleLeft = 2427,
749 kObjectSparkPuzzleMiddle = 2429,
750 kObjectLavaBridge = 2445,
751 kObjectSparkPuzzleRight = 2451,
752 kObjectNpc065Talk = 2467,
753 kObjectNPC065StatusQuo = 2469,
754 kObjectFloorTrap1 = 2473,
755 kObjectFloorTrap2 = 2474,
756 kObjectFloorTrap3 = 2475,
757 kObjectFloorTrap4 = 2476,
758 kObjectFloorTrap5 = 2477,
760 kObjectBugOnTable = 2480,
761 kObjectFloorTrap6 = 2481,
762 kObjectFloorTrap7 = 2482,
763 kObjectFloorTrap8 = 2483,
764 kObjectFloorTrap9 = 2484,
765 kObjectWadeThroughLava = 2500,
766 kObjectNPC066StatusQuo = 2504,
768 kObjectBrokenPipe = 2508,
769 kObjectBodySlides1 = 2514,
770 kObjectBodySlides2 = 2515,
771 kObjectBodySlides3 = 2516,
772 kObjectBodySlides4 = 2517,
773 kObjectBodySlides5 = 2518,
774 kObjectBodySlides6 = 2519,
775 kObjectEmberPopsOut = 2526,
776 kObjectBugCarriesEmber = 2527,
777 kObjectLittleGirlTalk = 2540,
778 kObjectGirlStatusQuo = 2541,
779 kObjectWitchWifeStirring = 2543,
780 kObjectWitchWifeTalking = 2546,
781 kObjectFurnaceHole = 2554,
782 kObjectInsidePipeCyberPod = 2555,
783 kObjectTopOfFurnace = 2566,
784 kObjectElderBugLimb = 2572,
785 kObjectQuetzlcaotlStatusQuo = 2578,
786 kObjectGhost1 = 2579,
787 kObjectGhost2 = 2580,
788 kObjectGhost3 = 2581,
789 kObjectGhost4 = 2582,
790 kObjectGhost5 = 2583,
791 kObjectGhost6 = 2584,
792 kObjectDiscardedBugPincer = 2587,
799 kObjectDeadShamanStill = 2604,
800 kObjectGhost2b = 2634,
801 kObjectJumpDown = 2648,
802 kObjectRitualLoop = 2674,
804 kObjectZapPattern1 = 2876,
805 kObjectZapPattern2 = 2877,
806 kObjectZapPattern3 = 2878,
807 kObjectBlanklPixelForWarrior = 2884,
808 kObjectPixelForHutWarrior = 2885,
809 kObjectPixelForWaterfallGhost = 2886,
810 kObjectPixelForQueztza = 2891,
811 kObjectZapPattern4 = 2892,
812 kObjectZapPattern5 = 2893,
813 kObjectZapPattern6 = 2894,
814 kObjectZapPattern7 = 2895,
815 kObjectZapPattern8 = 2896,
816 kObjectZapPattern9 = 2897,
817 kObjectObituary = 2990,
818 kObjectCarolsDiary = 2992,
819 kObjectTrixieSq2 = 3002,
820 kObjectSimonSq2 = 3003,
821 kObjectEileenTalkingWithShove = 3011,
822 kObjectStqEileenTalkWithShov = 3016,
823 kObjectLitLimbScanner = 3061,
824 kObjectOfficeWallNew = 3062,
825 kObjectCyberTable = 3065,
831 kObjectFlagEnabled = 0x1,
836 kObjectFlag10 = 0x10,
837 kObjectFlag20 = 0x20,
838 kObjectFlag40 = 0x40,
839 kObjectFlag80 = 0x80,
840 kObjectFlagBF = 0xBF,
841 kObjectFlag1000 = 0x1000,
842 kObjectFlagC000 = 0xC000,
843 kObjectFlag10000 = 0x10000,
844 kObjectFlag10E38 = 0x10E38,
845 kObjectFlag20000 = 0x20000,
846 kObjectFlag40000 = 0x40000
859 kPuzzleBoardSalvation,
861 kPuzzleBoardKeyHidesTo,
876 kAsylumActionShowVersion,
877 kAsylumActionQuickLoad,
878 kAsylumActionQuickSave,
879 kAsylumActionSwitchToSarah,
880 kAsylumActionSwitchToGrimwall,
881 kAsylumActionSwitchToOlmec,
882 kAsylumActionOpenInventory,
883 kAsylumActionShowMenu,
885 kAsylumActionMoveDown,
886 kAsylumActionMoveRight,
887 kAsylumActionMoveLeft,
888 kAsylumActionNextResource,
889 kAsylumActionPreviousResource,
890 kAsylumActionNextPalette,
891 kAsylumActionPreviousPalette,
898 #define CLEAR_ARRAY(type, name) { \ 899 for (Common::Array<type *>::iterator it = name.begin(); it != name.end(); it++) {\ 911 #define rnd(val) _vm->getRandom(val) 914 #define getEncounter() _vm->encounter() 915 #define getCursor() _vm->cursor() 916 #define getMenu() _vm->menu() 917 #define getPuzzles() _vm->puzzles() 918 #define getReaction() _vm->reaction() 919 #define getResource() _vm->resource() 920 #define getSound() _vm->sound() 921 #define getSaveLoad() _vm->savegame() 922 #define getScene() _vm->scene() 923 #define getScreen() _vm->screen() 924 #define getScript() _vm->script() 925 #define getSharedData() _vm->data() 926 #define getSpecial() _vm->special() 927 #define getSpeech() _vm->speech() 928 #define getText() _vm->text() 929 #define getVideo() _vm->video() 930 #define getWorld() _vm->scene()->worldstats() 935 #if defined SCUMM_LITTLE_ENDIAN 936 #define LOBYTE(d) (*((char *)&(d))) 937 #define BYTE1(d) (*((char *)&(d) + 1)) // Same as HIBYTE() 938 #elif defined SCUMM_BIG_ENDIAN 939 #define LOBYTE(d) (*((char *)&(d) + sizeof(d) - 1)) 940 #define BYTE1(d) (*((char *)&(d) + sizeof(d) - 2)) 946 #define RESOURCE_PACK(id) (ResourcePackId)((((uint32)id) >> 16) & 0x7FFF) 947 #define RESOURCE_INDEX(id) (uint16)(id) 951 #endif // ASYLUM_SHARED_H