diff options
Diffstat (limited to 'engines/bladerunner/script/script.h')
-rw-r--r-- | engines/bladerunner/script/script.h | 990 |
1 files changed, 411 insertions, 579 deletions
diff --git a/engines/bladerunner/script/script.h b/engines/bladerunner/script/script.h index 5966b67868..836d914ca5 100644 --- a/engines/bladerunner/script/script.h +++ b/engines/bladerunner/script/script.h @@ -25,8 +25,410 @@ #include "common/str.h" +#include "bladerunner/bladerunner.h" + namespace BladeRunner { +enum Actors { + kActorMcCoy = 0, + kActorSteele = 1, + kActorGordo = 2, + kActorDektora = 3, + kActorGuzza = 4, + kActorClovis = 5, + kActorLucy = 6, + kActorIzo = 7, + kActorSadik = 8, + kActorCrazylegs = 9, + kActorLuther = 10, + kActorGrigorian = 11, + kActorTransient = 12, + kActorLance = 13, + kActorBulletBob = 14, + kActorRunciter = 15, + kActorInsectDealer = 16, + kActorTyrellGuard = 17, + kActorEarlyQ = 18, + kActorZuben = 19, + kActorHasan = 20, + kActorMarcus = 21, + kActorMia = 22, + kActorOfficerLeary = 23, + kActorOfficerGrayford = 24, + kActorHanoi = 25, + kActorBaker = 26, + kActorDeskClerk = 27, + kActorHowieLee = 28, + kActorFishDealer = 29, + kActorKlein = 30, + kActorMurray = 31, + kActorHawkersBarkeep = 32, + kActorHolloway = 33, + kActorSergeantWalls = 34, + kActorMoraji = 35, + kActorTheBard = 36, + kActorPhotographer = 37, + kActorDispatcher = 38, + kActorAnsweringMachine = 39, + kActorRajif = 40, + kActorGovernorKolvig = 41, + kActorEarlyQBartender = 42, + kActorHawkersParrot = 43, + kActorTaffyPatron = 44, + kActorLockupGuard = 45, + kActorTeenager = 46, + kActorHysteriaPatron1 = 47, + kActorHysteriaPatron2 = 48, + kActorHysteriaPatron3 = 49, + kActorShoeshineMan = 50, + kActorTyrell = 51, + kActorChew = 52, + kActorGaff = 53, + kActorBryant = 54, + kActorTaffy = 55, + kActorSebastian = 56, + kActorRachael = 57, + kActorGeneralDoll = 58, + kActorIsabella = 59, + kActorBlimpGuy = 60, + kActorNewscaster = 61, + kActorLeon = 62, + kActorMaleAnnouncer = 63, + kActorFreeSlotA = 64, + kActorFreeSlotB = 65, + kActorMaggie = 66, + kActorGenwalkerA = 67, + kActorGenwalkerB = 68, + kActorGenwalkerC = 69, + kActorMutant1 = 70, + kActorMutant2 = 71, + kActorMutant3 = 72, + kActorVoiceOver = 99 +}; + +enum Clues { + kClueOfficersStatement = 0, + kClueDoorForced1 = 1, + kClueDoorForced2 = 2, + kClueLimpingFootprints = 3, + kClueGracefulFootprints = 4, + kClueShellCasings = 5, + kClueCandy = 6, + kClueToyDog = 7, + kClueChopstickWrapper = 8, + kClueSushiMenu = 9, + kClueLabCorpses = 10, + kClueLabShellCasings = 11, + kClueRuncitersVideo = 12, + kClueLucy = 13, + kClueDragonflyAnklet = 14, + kClueReferenceLetter = 15, + kClueCrowdInterviewA = 16, + kClueCrowdInterviewB = 17, + kClueZubenRunsAway = 18, + kClueZubenInterview = 19, + kClueZuben = 20, + kClueBigManLimping = 21, + kClueRunciterInterviewA = 22, + kClueRunciterInterviewB1 = 23, + kClueRunciterInterviewB2 = 24, + kClueHowieLeeInterview = 25, + kCluePaintTransfer = 26, + kClueChromeDebris = 27, + kClueRuncitersViewA = 28, + kClueRuncitersViewB = 29, + kClueCarColorAndMake = 30, + kCluePartialLicenseNumber = 31, + kClueBriefcase = 32, + kClueGaffsInformation = 33, + kClueCrystalVisitedRunciters = 34, + kClueCrystalVisitedChinatown = 35, + kClueWantedPoster = 36, + kClueLicensePlate = 37, + kClueLicensePlateMatch = 38, + kClueLabPaintTransfer = 39, + kClueDispatchHitAndRun = 40, + kClueInceptShotRoy = 41, + kClueInceptShotsLeon = 42, + kCluePhoneCallGuzza = 43, + kClueDragonflyEarring = 44, + kClueTyrellSecurity = 45, + kClueTyrellGuardInterview = 46, + kClueBombingSuspect = 47, + kClueSadiksGun = 48, + kClueDetonatorWire = 49, + kClueVictimInformation = 50, + kClueAttemptedFileAccess = 51, + kClueCrystalsCase = 52, + kClueKingstonKitchenBox1 = 53, + kClueTyrellSalesPamphlet1 = 54, + kClueTyrellSalesPamphlet2 = 55, + kCluePeruvianLadyInterview = 56, + kClueHasanInterview = 57, + kClueBobInterview1 = 58, + kClueBobInterview2 = 59, + kClueIzoInterview = 60, + kClueIzosWarning = 61, + kClueRadiationGoggles = 62, + kClueGogglesReplicantIssue = 63, + kClueFishLadyInterview = 64, + kClueDogCollar1 = 65, + kClueWeaponsCache = 66, + kClueChewInterview = 67, + kClueMorajiInterview = 68, + kClueGordoInterview1 = 69, + kClueGordoInterview2 = 70, + kClueAnsweringMachineMessage = 71, + kClueChessTable = 72, + kClueSightingSadikBradbury = 73, + kClueStaggeredbyPunches = 74, + kClueMaggieBracelet = 75, + kClueEnvelope = 76, + kClueIzosFriend = 77, + kClueChinaBarSecurityPhoto = 78, + kCluePurchasedScorpions = 79, + kClueWeaponsOrderForm = 80, + kClueShippingForm = 81, + kClueGuzzasCash = 82, + kCluePoliceIssueWeapons = 83, + kClueHysteriaToken = 84, + kClueRagDoll = 85, + kClueMoonbus1 = 86, + kClueCheese = 87, + kClueDektorasDressingRoom = 88, + kClueEarlyQsClub = 89, + kClueDragonflyCollection = 90, + kClueDragonflyBelt = 91, + kClueEarlyQInterview = 92, + kClueStrangeScale1 = 93, + kClueDektoraInterview1 = 94, + kClueSuspectDektora = 95, + kClueDektoraInterview2 = 96, + kClueDektoraInterview3 = 97, + kClueDektorasCard = 98, + kClueGrigoriansNote = 99, + kClueCollectionReceipt = 100, + kClueSpecialIngredient = 101, + kClueStolenCheese = 102, + kClueGordoInterview3 = 103, + kClueGordoConfession = 104, + kClueGordosLighter1 = 105, + kClueGordosLighter2 = 106, + kClueDektoraInterview4 = 107, + kClueHollowayInterview = 108, + kClueBakersBadge = 109, + kClueHoldensBadge = 110, + kClueCar = 111, + kClueCarIdentified = 112, + kClueCarRegistration1 = 113, + kClueCarRegistration2 = 114, + kClueCarRegistration3 = 115, + kClueCrazylegsInterview1 = 116, + kClueCrazylegsInterview2 = 117, + kClueLichenDogWrapper = 118, + kClueRequisitionForm = 119, + kClueScaryChair = 120, + kClueIzosStashRaided = 121, + kClueHomelessManInterview1 = 122, + kClueHomelessManInterview2 = 123, + kClueHomelessManKid = 124, + kClueFolder = 125, + kClueGuzzaFramedMcCoy = 126, + kClueOriginalShippingForm = 127, + kClueOriginalRequisitionForm = 128, + kClueCandyWrapper = 129, + kClueGordoBlabs = 130, + kClueFlaskOfAbsinthe = 131, + kClueGuzzaAgreesToMeet = 132, + kClueDektoraConfession = 133, + kClueRunciterConfession1 = 134, + kClueRunciterConfession2 = 135, + kClueLutherLanceInterview = 136, + kClueMoonbus2 = 137, + kClueMoonbusCloseup = 138, + kCluePhoneCallDektora1 = 139, + kCluePhoneCallDektora2 = 140, + kCluePhoneCallLucy1 = 141, + kCluePhoneCallLucy2 = 142, + kCluePhoneCallClovis = 143, + kCluePhoneCallCrystal = 144, + kCluePowerSource = 145, + kClueBomb = 146, + kClueDNATyrell = 147, + kClueDNASebastian = 148, + kClueDNAChew = 149, + kClueDNAMoraji = 150, + kClueDNALutherLance = 151, + kClueDNAMarcus = 152, + kClueGarterSnake = 153, + kClueSlug = 154, + kClueGoldfish = 155, + kClueZubenTalksAboutLucy1 = 156, + kClueZubenTalksAboutLucy2 = 157, + kClueZubensMotive = 158, + kClueSightingBulletBob = 159, + kClueSightingClovis = 160, + kClueSightingDektora = 161, + kClueVKDektoraReplicant = 162, + kClueVKDektoraHuman = 163, + kClueVKBobGorskyReplicant = 164, + kClueVKBobGorskyHuman = 165, + kClueVKLutherLanceReplicant = 166, + kClueVKLutherLanceHuman = 167, + kClueVKGrigorianReplicant = 168, + kClueVKGrigorianHuman = 169, + kClueVKIzoReplicant = 170, + kClueVKIzoHuman = 171, + kClueVKCrazylegsReplicant = 172, + kClueVKCrazylegsHuman = 173, + kClueVKRunciterReplicant = 174, + kClueVKRunciterHuman = 175, + kClueVKEarlyQReplicant = 176, + kClueVKEarlyQHuman = 177, + kClueCrimeSceneNotes = 178, + kClueGrigorianInterviewA = 179, + kClueGrigorianInterviewB1 = 180, + kClueGrigorianInterviewB2 = 181, + kClueLabAnalysisGoldChain = 182, + kClueSightingZuben = 183, + kClueCrystalRetiredZuben = 184, + kClueCrystalRetiredGordo = 185, + kClueSightingGordo = 186, + kClueCrystalRetiredIzo = 187, + kClueClovisIncept = 188, + kClueDektoraIncept = 189, + kClueLucyIncept = 190, + kClueGordoIncept = 191, + kClueIzoIncept = 192, + kClueSadikIncept = 193, + kClueZubenIncept = 194, + kClueMcCoyIncept = 195, + kClueWarRecordsGordoFrizz = 196, + kCluePoliceWeaponUsed = 197, + kClueMcCoysWeaponUsedonBob = 198, + kClueBobRobbed = 199, + kClueBobShotInSelfDefense = 200, + kClueBobShotInColdBlood = 201, + kClueMcCoyRecoveredHoldensBadge = 202, + kClueCrystalTestedBulletBob = 203, + kClueCrystalRetiredBob = 204, + kClueCrystalTestedCrazylegs = 205, + kClueCrystalRetiredCrazylegs = 206, + kClueCrystalArrestedCrazylegs = 207, + kClueCrystalTestedRunciter = 208, + kClueCrystalRetiredRunciter1 = 209, + kClueCrystalRetiredRunciter2 = 210, + kClueSightingMcCoyRuncitersShop = 211, + kClueMcCoyKilledRunciter1 = 212, + kClueMcCoysDescription = 213, + kClueMcCoyIsABladeRunner = 214, + kClueMcCoyLetZubenEscape = 215, + kClueMcCoyWarnedIzo = 216, + kClueMcCoyHelpedIzoIzoIsAReplicant = 217, + kClueMcCoyHelpedDektora = 218, + kClueMcCoyHelpedLucy = 219, + kClueMcCoyHelpedGordo = 220, + kClueMcCoyShotGuzza = 221, + kClueMcCoyRetiredZuben = 222, + kClueMcCoyRetiredLucy = 223, + kClueMcCoyRetiredDektora = 224, + kClueMcCoyRetiredGordo = 225, + kClueMcCoyRetiredSadik = 226, + kClueMcCoyShotZubenintheback = 227, + kClueMcCoyRetiredLutherLance = 228, + kClueMcCoyBetrayal = 229, + kClueMcCoyKilledRunciter2 = 230, + kClueClovisOrdersMcCoysDeath = 231, + kClueEarlyAttemptedToSeduceLucy = 232, + kClueCarWasStolen = 233, + kClueGrigoriansResponse1 = 234, + kClueGrigoriansResponse2 = 235, + kClueCrazysInvolvement = 236, + kClueGrigoriansResources = 237, + kClueMcCoyPulledAGun = 238, + kClueMcCoyIsStupid = 239, + kClueMcCoyIsAnnoying = 240, + kClueMcCoyIsKind = 241, + kClueMcCoyIsInsane = 242, + kClueAnimalMurderSuspect = 243, + kClueMilitaryBoots = 244, + kClueOuterDressingRoom = 245, + kCluePhotoOfMcCoy1 = 246, + kCluePhotoOfMcCoy2 = 247, + kClueEarlyQAndLucy = 248, + kClueClovisflowers = 249, + kClueLucyWithDektora = 250, + kClueWomanInAnimoidRow = 251, + kClueScorpions = 252, + kClueStrangeScale2 = 253, + kClueChinaBarSecurityCamera = 254, + kClueIzo = 255, + kClueGuzza = 256, + kClueChinaBarSecurityDisc = 257, + kClueScorpionbox = 258, + kClueTyrellSecurityPhoto = 259, + kClueChinaBar = 260, + kCluePlasticExplosive = 261, + kClueDogCollar2 = 262, + kClueKingstonKitchenBox2 = 263, + kClueCrystalsCigarette = 264, + kClueSpinnerKeys = 265, + kClueAct2Ended = 266, + kClueAct3Ended = 267, + kClueAct4Ended = 268, + kClueExpertBomber = 269, + kClueAmateurBomber = 270, + kClueVKLucyReplicant = 271, + kClueVKLucyHuman = 272, + kClueLucyInterview = 273, + kClueMoonbusReflection = 274, + kClueMcCoyAtMoonbus = 275, + kClueClovisAtMoonbus = 276, + kClueSadikAtMoonbus = 277, + kClueRachaelInterview = 278, + kClueTyrellInterview = 279, + kClueRuncitersConfession1 = 280, + kClueRuncitersConfession2 = 281, + kClueRuncitersConfession3 = 282, + kClueEarlyInterviewA = 283, + kClueEarlyInterviewB1 = 284, + kClueEarlyInterviewB2 = 285, + kClueCrazylegsInterview3 = 286, + kClueCrazylegGgrovels = 287 +}; + +enum ClueTypes { + kClueTypePhotograph = 0, + kClueTypeVideoClip = 1, + kClueTypeAudioRecording = 2, + kClueTypeObject = 3 +}; + +enum Crimes { + kCrimeAnimalMurder = 0, + kCrimeEisendullerMurder = 1, + kCrimeArmsDealing = 2, + kCrimeMorajiMurder = 3, + kCrimeBradburyAssault = 4, + kCrimeFactoryBombing = 5, + kCrimeBobMurder = 6, + kCrimeRunciterMurder = 7, + kCrimeMoonbusHijacking = 8 +}; + +enum SpinnerDestinations { + kSpinnerDestinationPoliceStation = 0, + kSpinnerDestinationMcCoysApartment = 1, + kSpinnerDestinationRuncitersAnimals = 2, + kSpinnerDestinationChinatown = 3, + kSpinnerDestinationAnimoidRow = 4, + kSpinnerDestinationTyrellBuilding = 5, + kSpinnerDestinationDNARow = 6, + kSpinnerDestinationBradburyBuilding = 7, + kSpinnerDestinationNightclubRow = 8, + kSpinnerDestinationHysteriaHall = 9 +}; + class BladeRunnerEngine; class ScriptBase { @@ -75,10 +477,10 @@ protected: void Actor_Set_Flag_Damage_Anim_If_Moving(int actorId, bool value); bool Actor_Query_Flag_Damage_Anim_If_Moving(int actorId); void Actor_Combat_AI_Hit_Attempt(int actorId); - void Non_Player_Actor_Combat_Mode_On(int actorId, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, int a14); + void Non_Player_Actor_Combat_Mode_On(int actorId, int a2, int a3, int otherActorId, int a5, int animationModeCombatIdle, int animationModeCombatWalk, int animationModeCombatRun, int a9, int a10, int a11, int a12, int a13, int a14); void Non_Player_Actor_Combat_Mode_Off(int actorId); - void Actor_Set_Health(int actor, int hp, int maxHp); - void Actor_Set_Targetable(int actor, bool targetable); + void Actor_Set_Health(int actorId, int hp, int maxHp); + void Actor_Set_Targetable(int actorId, bool targetable); void Actor_Says(int actorId, int sentenceId, int animationMode); void Actor_Says_With_Pause(int actorId, int sentenceId, float pause, int animationMode); void Actor_Voice_Over(int sentenceId, int actorId); @@ -98,7 +500,7 @@ protected: int Slice_Animation_Query_Number_Of_Frames(int animationId); void Actor_Change_Animation_Mode(int actorId, int animationMode); int Actor_Query_Animation_Mode(int actorId); - bool Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int a3, int a4, bool running); + bool Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int distance, int a4, bool running); bool Loop_Actor_Walk_To_Item(int actorId, int itemId, int a3, int a4, bool run); bool Loop_Actor_Walk_To_Scene_Object(int actorId, const char *objectName, int distance, bool a4, bool run); bool Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int a3, int a4, bool run); @@ -108,8 +510,8 @@ protected: void Actor_Force_Stop_Walking(int actorId); bool Loop_Actor_Travel_Stairs(int actorId, int a2, int a3, int a4); bool Loop_Actor_Travel_Ladder(int actorId, int a2, int a3, int a4); - void Actor_Clue_Add_To_Database(int actorId, int clueId, int unknown, bool clueAcquired, bool unknownFlag, int fromActorId); - void Actor_Clue_Acquire(int actorId, int clueId, byte unknownFlag, int fromActorId); + void Actor_Clue_Add_To_Database(int actorId, int clueId, int weight, bool clueAcquired, bool unknownFlag, int fromActorId); + void Actor_Clue_Acquire(int actorId, int clueId, bool unknownFlag, int fromActorId); void Actor_Clue_Lose(int actorId, int clueId); bool Actor_Clue_Query(int actorId, int clueId); void Actor_Clues_Transfer_New_To_Mainframe(int actorId); @@ -211,10 +613,10 @@ protected: // Police_Maze_Decrement_Score // Police_Maze_Set_Score void Police_Maze_Set_Pause_State(int a1); - void CDB_Set_Crime(int crimeId, int value); - void CDB_Set_Clue_Asset_Type(int assetId, int type); + void CDB_Set_Crime(int clueId, int crimeId); + void CDB_Set_Clue_Asset_Type(int clueId, int assetType); void SDB_Set_Actor(int suspectId, int actorId); - bool SDB_Add_Photo_Clue(int suspectId, int a2, int a3); + bool SDB_Add_Photo_Clue(int suspectId, int clueId, int shapeId); void SDB_Set_Name(int suspectId); void SDB_Set_Sex(int suspectId, int sex); bool SDB_Add_Identity_Clue(int suspectId, int clueId); @@ -280,576 +682,6 @@ protected: void VK_Eye_Animates(int a1); }; -class SceneScriptBase : public ScriptBase { -public: - SceneScriptBase(BladeRunnerEngine *vm) : ScriptBase(vm) {} - - virtual void InitializeScene() = 0; - virtual void SceneLoaded() = 0; - virtual bool MouseClick(int x, int y) = 0; - virtual bool ClickedOn3DObject(const char *objectName, bool a2) = 0; - virtual bool ClickedOnActor(int actorId) = 0; - virtual bool ClickedOnItem(int itemId, bool a2) = 0; - virtual bool ClickedOnExit(int exitId) = 0; - virtual bool ClickedOn2DRegion(int region) = 0; - virtual void SceneFrameAdvanced(int frame) = 0; - virtual void ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) = 0; - virtual void PlayerWalkedIn() = 0; - virtual void PlayerWalkedOut() = 0; - virtual void DialogueQueueFlushed(int a1) = 0; -}; - -/* - * Scene Scripts - */ - -class Script { -public: - BladeRunnerEngine *_vm; - int _inScriptCounter; - SceneScriptBase *_currentScript; - - Script(BladeRunnerEngine *vm) - : _vm(vm), - _inScriptCounter(0), - _currentScript(nullptr) { - } - ~Script(); - - bool open(const Common::String &name); - - void InitializeScene(); - void SceneLoaded(); - bool MouseClick(int x, int y); - bool ClickedOn3DObject(const char *objectName, bool a2); - bool ClickedOnActor(int actorId); - bool ClickedOnItem(int itemId, bool a2); - bool ClickedOnExit(int exitId); - bool ClickedOn2DRegion(int region); - void SceneFrameAdvanced(int frame); - void ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet); - void PlayerWalkedIn(); - void PlayerWalkedOut(); - void DialogueQueueFlushed(int a1); -}; - -#define DECLARE_SCRIPT(name) \ -class Script##name : public SceneScriptBase { \ -public: \ - Script##name(BladeRunnerEngine *vm) \ - : SceneScriptBase(vm) \ - {} \ - void InitializeScene(); \ - void SceneLoaded(); \ - bool MouseClick(int x, int y); \ - bool ClickedOn3DObject(const char *objectName, bool a2); \ - bool ClickedOnActor(int actorId); \ - bool ClickedOnItem(int itemId, bool a2); \ - bool ClickedOnExit(int exitId); \ - bool ClickedOn2DRegion(int region); \ - void SceneFrameAdvanced(int frame); \ - void ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet); \ - void PlayerWalkedIn(); \ - void PlayerWalkedOut(); \ - void DialogueQueueFlushed(int a1); \ -private: -#define END_SCRIPT }; - -DECLARE_SCRIPT(AR01) -END_SCRIPT - -DECLARE_SCRIPT(AR02) - void sub_402694(); - void sub_402AE0(); - void sub_402CE4(); -END_SCRIPT - -DECLARE_SCRIPT(BB01) -END_SCRIPT - -DECLARE_SCRIPT(BB02) -END_SCRIPT - -DECLARE_SCRIPT(BB03) -END_SCRIPT - -DECLARE_SCRIPT(BB04) -END_SCRIPT - -DECLARE_SCRIPT(BB05) -END_SCRIPT - -DECLARE_SCRIPT(BB06) -END_SCRIPT - -DECLARE_SCRIPT(BB07) -END_SCRIPT - -DECLARE_SCRIPT(BB08) -END_SCRIPT - -DECLARE_SCRIPT(BB09) -END_SCRIPT - -DECLARE_SCRIPT(BB10) -END_SCRIPT - -DECLARE_SCRIPT(BB11) -END_SCRIPT - -DECLARE_SCRIPT(BB12) -END_SCRIPT - -DECLARE_SCRIPT(BB51) -END_SCRIPT - -DECLARE_SCRIPT(CT01) - void sub_40269C(); -END_SCRIPT - -DECLARE_SCRIPT(CT02) - void sub_401ACC(); -END_SCRIPT - -DECLARE_SCRIPT(CT03) -END_SCRIPT - -DECLARE_SCRIPT(CT04) - void sub_401D4C(); -END_SCRIPT - -DECLARE_SCRIPT(CT05) -END_SCRIPT - -DECLARE_SCRIPT(CT06) -END_SCRIPT - -DECLARE_SCRIPT(CT07) -END_SCRIPT - -DECLARE_SCRIPT(CT08) -END_SCRIPT - -DECLARE_SCRIPT(CT09) -END_SCRIPT - -DECLARE_SCRIPT(CT10) - void sub_401844(); -END_SCRIPT - -DECLARE_SCRIPT(CT11) -END_SCRIPT - -DECLARE_SCRIPT(CT12) -END_SCRIPT - -DECLARE_SCRIPT(CT51) -END_SCRIPT - -DECLARE_SCRIPT(DR01) -END_SCRIPT - -DECLARE_SCRIPT(DR02) -END_SCRIPT - -DECLARE_SCRIPT(DR03) - void sub_401B18(); -END_SCRIPT - -DECLARE_SCRIPT(DR04) - bool sub_401160(); -END_SCRIPT - -DECLARE_SCRIPT(DR05) -END_SCRIPT - -DECLARE_SCRIPT(DR06) -END_SCRIPT - -DECLARE_SCRIPT(HC01) - void sub_402384(); - void sub_40346C(); -END_SCRIPT - -DECLARE_SCRIPT(HC02) -END_SCRIPT - -DECLARE_SCRIPT(HC03) -END_SCRIPT - -DECLARE_SCRIPT(HC04) - void sub_401B90(); -END_SCRIPT - -DECLARE_SCRIPT(HF01) - void sub_4026B4(); - void sub_4032DC(); - void sub_403484(); -END_SCRIPT - -DECLARE_SCRIPT(HF02) -END_SCRIPT - -DECLARE_SCRIPT(HF03) - void sub_401C80(); -END_SCRIPT - -DECLARE_SCRIPT(HF04) -END_SCRIPT - -DECLARE_SCRIPT(HF05) - void sub_402370(); - void sub_402970(); - void sub_402AE4(); - void sub_403738(); - void sub_403A34(int actorId); - void sub_403F0C(); - void sub_40410C(); - void sub_4042E4(); - void sub_404474(); - int sub_404858(); - int sub_4048C0(); -END_SCRIPT - -DECLARE_SCRIPT(HF06) - void sub_401EF4(); - void sub_4023E0(); -END_SCRIPT - -DECLARE_SCRIPT(HF07) - int sub_401864(); -END_SCRIPT - -DECLARE_SCRIPT(KP01) -END_SCRIPT - -DECLARE_SCRIPT(KP02) -END_SCRIPT - -DECLARE_SCRIPT(KP03) - void sub_401E54(); -END_SCRIPT - -DECLARE_SCRIPT(KP04) -END_SCRIPT - -DECLARE_SCRIPT(KP05) -END_SCRIPT - -DECLARE_SCRIPT(KP06) -END_SCRIPT - -DECLARE_SCRIPT(KP07) -END_SCRIPT - -DECLARE_SCRIPT(MA01) -END_SCRIPT - -DECLARE_SCRIPT(MA02) - void sub_401E4C(); - bool sub_401F7C(); - void sub_402044(); -END_SCRIPT - -//MA03 does not exists - -DECLARE_SCRIPT(MA04) - bool sub_402758(); - bool sub_402820(); - bool sub_402888(); - void sub_4028A8(); - void sub_402F2C(); - void sub_4032A0(); - void sub_4034D8(); - void sub_403864(); - void sub_403DA8(); -END_SCRIPT - -DECLARE_SCRIPT(MA05) - bool sub_401990(); -END_SCRIPT - -DECLARE_SCRIPT(MA06) - bool sub_4012C0(); - void sub_4014E4(); -END_SCRIPT - -DECLARE_SCRIPT(MA07) -END_SCRIPT - -DECLARE_SCRIPT(MA08) -END_SCRIPT - -DECLARE_SCRIPT(NR01) -END_SCRIPT - -DECLARE_SCRIPT(NR02) - void sub_402134(); -END_SCRIPT - -DECLARE_SCRIPT(NR03) - void sub_40259C(int frame); - void sub_402994(); -END_SCRIPT - -DECLARE_SCRIPT(NR04) - void sub_401DB0(); - void sub_402860(int frame); - void sub_402960(); -END_SCRIPT - -DECLARE_SCRIPT(NR05) - void sub_401F74(int frame); - void sub_4020B4(); - void sub_4022DC(); - void sub_402A48(int actorId); - void sub_402B9C(); -END_SCRIPT - -DECLARE_SCRIPT(NR06) - void sub_401BAC(); -END_SCRIPT - -DECLARE_SCRIPT(NR07) - void sub_4018D4(); - void sub_401A10(); - void sub_401C60(); - void sub_401EF4(); - void sub_4020F0(); - void sub_402284(); - void sub_402510(); - void sub_402614(); - void sub_402738(); - void sub_4028FC(); -END_SCRIPT - -DECLARE_SCRIPT(NR08) - void sub_4021B4(); -END_SCRIPT - -DECLARE_SCRIPT(NR09) - void sub_40172C(); -END_SCRIPT - -DECLARE_SCRIPT(NR10) -END_SCRIPT - -DECLARE_SCRIPT(NR11) - void sub_4027D0(int actorId, signed int frame); - void sub_4028EC(); -END_SCRIPT - -DECLARE_SCRIPT(PS01) -END_SCRIPT - -DECLARE_SCRIPT(PS02) - void sub_4018BC(); -END_SCRIPT - -DECLARE_SCRIPT(PS03) -END_SCRIPT - -DECLARE_SCRIPT(PS04) - void sub_4017E4(); -END_SCRIPT - -DECLARE_SCRIPT(PS05) - void sub_401B34(); - void sub_401C30(); -END_SCRIPT - -DECLARE_SCRIPT(PS06) -END_SCRIPT - -DECLARE_SCRIPT(PS07) - void sub_401D60(); -END_SCRIPT - -// PS08 does not exits - -DECLARE_SCRIPT(PS09) - void sub_402090(); -END_SCRIPT - -DECLARE_SCRIPT(PS10) - void sub_402238(); -END_SCRIPT - -DECLARE_SCRIPT(PS11) - void sub_402744(); -END_SCRIPT - -DECLARE_SCRIPT(PS12) - void sub_4028C4(); -END_SCRIPT - -DECLARE_SCRIPT(PS13) - void sub_40267C(); -END_SCRIPT - -DECLARE_SCRIPT(PS14) -END_SCRIPT - -DECLARE_SCRIPT(PS15) -END_SCRIPT - -DECLARE_SCRIPT(RC01) - void sub_403850(); - void sub_4037AC(); -END_SCRIPT - -DECLARE_SCRIPT(RC02) - void sub_402A7C(); -END_SCRIPT - -DECLARE_SCRIPT(RC03) - void sub_402834(); -END_SCRIPT - -DECLARE_SCRIPT(RC04) - void sub_401DF4(); -END_SCRIPT - -DECLARE_SCRIPT(RC51) -END_SCRIPT - -DECLARE_SCRIPT(TB02) - void sub_402644(); - void sub_402B50(); -END_SCRIPT - -DECLARE_SCRIPT(TB03) -END_SCRIPT - -DECLARE_SCRIPT(TB05) -END_SCRIPT - -DECLARE_SCRIPT(TB06) -END_SCRIPT - -DECLARE_SCRIPT(TB07) - void sub_401B0C(); -END_SCRIPT - -DECLARE_SCRIPT(UG01) -END_SCRIPT - -DECLARE_SCRIPT(UG02) - bool sub_402354(); -END_SCRIPT - -DECLARE_SCRIPT(UG03) -END_SCRIPT - -DECLARE_SCRIPT(UG04) -END_SCRIPT - -DECLARE_SCRIPT(UG05) - int sub_4021B0(); - void sub_402218(); -END_SCRIPT - -DECLARE_SCRIPT(UG06) -END_SCRIPT - -DECLARE_SCRIPT(UG07) -END_SCRIPT - -DECLARE_SCRIPT(UG08) -END_SCRIPT - -DECLARE_SCRIPT(UG09) -END_SCRIPT - -DECLARE_SCRIPT(UG10) -END_SCRIPT - -// UG11 does not exists - -DECLARE_SCRIPT(UG12) -END_SCRIPT - -DECLARE_SCRIPT(UG13) - void sub_40223C(); - void sub_4023D8(); - void sub_4025E0(); - void sub_402960(); - int sub_402AD0(); - void sub_402AD4(); - void sub_402E24(); -END_SCRIPT - -DECLARE_SCRIPT(UG14) -END_SCRIPT - -DECLARE_SCRIPT(UG15) -END_SCRIPT - -DECLARE_SCRIPT(UG16) - void sub_401D78(); -END_SCRIPT - -DECLARE_SCRIPT(UG17) -END_SCRIPT - -DECLARE_SCRIPT(UG18) - void sub_402734(); - void sub_402DE8(); - void sub_402F8C(); - void sub_403114(); - void sub_403278(); - void sub_403588(); -END_SCRIPT - -DECLARE_SCRIPT(UG19) -END_SCRIPT - -#undef DECLARE_SCRIPT - -/* - * Actor Scripts - */ - -class AIScriptBase : public ScriptBase { -public: - AIScriptBase(BladeRunnerEngine *vm) : ScriptBase(vm) {} - - virtual void Initialize() = 0; - virtual bool Update() = 0; - virtual void TimerExpired(int timer) = 0; - virtual void CompletedMovementTrack() = 0; - virtual void ReceivedClue(int clueId, int fromActorId) = 0; - virtual void ClickedByPlayer() = 0; - virtual void EnteredScene(int sceneId) = 0; - virtual void OtherAgentEnteredThisScene() = 0; - virtual void OtherAgentExitedThisScene() = 0; - virtual void OtherAgentEnteredCombatMode() = 0; - virtual void ShotAtAndMissed() = 0; - virtual void ShotAtAndHit() = 0; - virtual void Retired(int byActorId) = 0; - virtual void GetFriendlinessModifierIfGetsClue() = 0; - virtual bool GoalChanged(int currentGoalNumber, int newGoalNumber) = 0; - virtual bool UpdateAnimation(int *animation, int *frame) = 0; - virtual bool ChangeAnimationMode(int mode) = 0; - virtual void QueryAnimationState(int *animationState, int *a2, int *a3, int *a4) = 0; - virtual void SetAnimationState(int animationState, int a2, int a3, int a4) = 0; - virtual bool ReachedMovementTrackWaypoint() = 0; -}; - -class AIScripts { -public: - BladeRunnerEngine *_vm; - int _inScriptCounter; - AIScriptBase *_AIScripts[100]; - - AIScripts(BladeRunnerEngine *vm); - ~AIScripts(); - - void Initialize(int actor); - void UpdateAnimation(int actor, int *animation, int *frame); - void ChangeAnimationMode(int actor, int mode); -}; - } // End of namespace BladeRunner #endif |