BLADERUNNER: Fixes for game scripts & cleanup

This commit is contained in:
Peter Kohaut 2019-01-24 22:57:41 +01:00
parent 2fd29c5193
commit 2cc09b6b10
92 changed files with 2769 additions and 1996 deletions

View file

@ -442,17 +442,17 @@ enum Flags {
kFlagNotUsed0 = 0, // is never checked kFlagNotUsed0 = 0, // is never checked
kFlagRC02Entered = 1, kFlagRC02Entered = 1,
// 2 is never used // 2 is never used
kFlagGotOfficersStatement = 3, kFlagRC01GotOfficersStatement = 3,
kFlagRC02FirstLeave = 4, kFlagRC02Left = 4,
// 5 is never used // 5 is never used
kFlagRunciterInterviewA = 6, kFlagRC02RunciterInterview = 6,
// 7 is never used // 7 is never used
kFlagRC01toRC02 = 8, kFlagRC01toRC02 = 8,
kFlagRC02toRC01 = 9, kFlagRC02toRC01 = 9,
kFlagDR01toDR04 = 10, kFlagDR01toDR04 = 10,
kFlagDR04toDR01 = 11, kFlagDR04toDR01 = 11,
kFlagKleinTalkShellCasings = 12, kFlagPS07KleinTalkShellCasings = 12,
kFlagKleinTalkOfficersStatement = 13, kFlagPS07KleinTalkOfficersStatement = 13,
kFlagPS10toPS11 = 14, kFlagPS10toPS11 = 14,
kFlagPS11toPS10 = 15, kFlagPS11toPS10 = 15,
kFlagPS11toPS12 = 16, kFlagPS11toPS12 = 16,
@ -471,7 +471,7 @@ enum Flags {
kFlagCT01ZubenLeft = 29, kFlagCT01ZubenLeft = 29,
kFlagNotUsed30 = 30, // is never set kFlagNotUsed30 = 30, // is never set
kFlagCT01ZubenGone = 31, kFlagCT01ZubenGone = 31,
kFlagCT01McCoyTalkedToGordo = 32, kFlagCT01GordoTalk = 32,
kFlagMA02toMA06 = 33, kFlagMA02toMA06 = 33,
kFlagMA06ToMA02 = 34, kFlagMA06ToMA02 = 34,
kFlagMA02ToMA04 = 35, kFlagMA02ToMA04 = 35,
@ -533,7 +533,7 @@ enum Flags {
kFlagCT12toCT11 = 91, kFlagCT12toCT11 = 91,
// 92 is never used // 92 is never used
// 93 is never used // 93 is never used
kFlagWarehouseOpen = 94, kFlagCT05WarehouseOpen = 94,
kFlagTB05toTB02 = 95, kFlagTB05toTB02 = 95,
kFlagTB02toTB05 = 96, // is never checked kFlagTB02toTB05 = 96, // is never checked
kFlagTB05toTB06 = 97, // is never checked kFlagTB05toTB06 = 97, // is never checked
@ -543,14 +543,14 @@ enum Flags {
kFlagTB05MonitorDone = 101, kFlagTB05MonitorDone = 101,
kFlagTB06Visited = 102, kFlagTB06Visited = 102,
kFlagNotUsed103 = 103, // is never set kFlagNotUsed103 = 103, // is never set
kFlagKleinTalkPaintTransfer = 104, kFlagPS07KleinTalkPaintTransfer = 104,
kFlagKleinTalkChromeDebris = 105, kFlagPS07KleinTalkChromeDebris = 105,
kFlagIsabellaIntroduced = 106, kFlagHC04IsabellaTalk = 106,
kFlagHC04toRC03 = 107, kFlagHC04toRC03 = 107,
kFlagRC03toHC04 = 108, kFlagRC03toHC04 = 108,
kFlagHC04toHC02 = 109, kFlagHC04toHC02 = 109,
kFlagHC02toHC04 = 110, kFlagHC02toHC04 = 110,
kFlagKleinTalkClues = 111, kFlagPS07KleinTalkClues = 111,
// 112 is never used // 112 is never used
// 113 is never used // 113 is never used
kFlagRC03toRC01 = 114, kFlagRC03toRC01 = 114,
@ -568,7 +568,7 @@ enum Flags {
kFlagMcCoyHasOfficersStatement = 126, kFlagMcCoyHasOfficersStatement = 126,
kFlagMcCoyHasPaintTransfer = 127, kFlagMcCoyHasPaintTransfer = 127,
kFlagMcCoyHasChromeDebris = 128, kFlagMcCoyHasChromeDebris = 128,
kFlagZubenCheckOnMcCoy = 129, kFlagCT01ZubenMcCoyCheck = 129,
kFlagPS02toPS01 = 130, kFlagPS02toPS01 = 130,
kFlagPS02toPS07 = 131, kFlagPS02toPS07 = 131,
kFlagPS02toPS03 = 132, kFlagPS02toPS03 = 132,
@ -576,52 +576,52 @@ enum Flags {
kFlagPS03toPS14 = 134, kFlagPS03toPS14 = 134,
kFlagPS14toPS03 = 135, kFlagPS14toPS03 = 135,
kFlagPS05toPS06 = 136, kFlagPS05toPS06 = 136,
kFlagHomelessTalkedTo = 137, kFlagCT04HomelessTalk = 137,
kFlagKleinInsulted = 138, kFlagPS07KleinInsulted = 138,
// 139 is never used // 139 is never used
// 140 is never used // 140 is never used
kFlagRC51Available = 141, kFlagRC51Available = 141,
kFlagNotUsed142 = 142, // is never checked kFlagNotUsed142 = 142, // is never checked
// 143 is never used // 143 is never used
kFlagCT07toCT06 = 144, kFlagCT07toCT06 = 144,
kFlagZubenPhoto = 145, kFlagCT06ZubenPhoto = 145,
kFlagChapter1Ending = 146, kFlagChapter1Ending = 146,
kFlagChopstickWrapperTaken = 147, kFlagRC51ChopstickWrapperTaken = 147,
kFlagCandyTaken = 148, kFlagRC51CandyTaken = 148,
kFlagToyDogTaken = 149, kFlagRC51ToyDogTaken = 149,
kFlagNotUsed150 = 150, // has no use kFlagNotUsed150 = 150, // has no use
kFlagRC03UnlockedToUG01 = 151, kFlagRC03UnlockedToUG01 = 151,
kFlagUG15toUG16 = 152, kFlagUG15toUG16a = 152,
kFlagUG16toUG15 = 153, kFlagUG16toUG15a = 153,
kFlagTB02toTB03 = 154, // is never checked kFlagTB02toTB03 = 154, // is never checked
kFlagTB03toTB02 = 155, kFlagTB03toTB02 = 155,
kFlagKleinInsultedTalk = 156, kFlagPS07KleinInsultedTalk = 156,
// 157 is never used // 157 is never used
kFlagSergeantWallsBuzzInDone = 158, kFlagSergeantWallsBuzzInDone = 158,
kFlagGuzzaTalkZubenRetired = 159, kFlagPS04GuzzaTalkZubenRetired = 159,
kFlagGuzzaTalkZubenEscaped = 160, kFlagPS04GuzzaTalkZubenEscaped = 160,
kFlagGuzzaTalk1 = 161, kFlagPS04GuzzaTalk1 = 161,
kFlagGuzzaTalk2 = 162, kFlagPS04GuzzaTalk2 = 162,
kFlagChromeDebrisTaken = 163, kFlagRC01ChromeDebrisTaken = 163,
kFlagIzoArrested = 164, kFlagIzoArrested = 164,
kFlagCrazylegsArrested = 165, kFlagCrazylegsArrested = 165,
kFlagPS09CrazylegsTalk1 = 166, kFlagPS09CrazylegsTalk1 = 166,
kFlagPS09IzoTalk1 = 167, kFlagPS09IzoTalk1 = 167,
kFlagPS09IzoTalk2 = 168, kFlagPS09IzoTalk2 = 168,
kFlagMcCoyKilledHomeless = 169, kFlagCT04HomelessKilledByMcCoy = 169,
kFlagHomelessBodyInDumpster = 170, kFlagCT04HomelessBodyInDumpster = 170,
kFlagHomelessBodyFound = 171, kFlagCT04HomelessBodyFound = 171,
kFlagDumpsterEmptied = 172, kFlagCT04HomelessBodyThrownAway = 172,
kFlagHomelessBodyInDumpsterNotChecked = 173, // is never checked kFlagCT04HomelessBodyInDumpsterNotChecked = 173, // is never checked
kFlagLicensePlaceFound = 174, kFlagCT04LicensePlaceFound = 174,
kFlagPS09CrazylegsTalk2 = 175, kFlagPS09CrazylegsTalk2 = 175,
kFlagMcCoyAtCTxx = 176, kFlagMcCoyInChinaTown = 176,
kFlagMcCoyAtDRxx = 177, kFlagMcCoyInDNARow = 177,
kFlagMcCoyAtPSxx = 178, kFlagMcCoyInPoliceStation = 178,
kFlagMcCoyAtMAxx = 179, kFlagMcCoyInMcCoyApartment = 179,
kFlagMcCoyAtARxx = 180, kFlagMcCoyInAnimoidRow = 180,
kFlagMcCoyAtNRxx = 181, kFlagMcCoyInNightclubRow = 181,
kFlagMcCoyAtRCxx = 182, kFlagMcCoyInRunciters = 182,
@ -629,9 +629,9 @@ enum Flags {
kFlagRC02TalkedToRunciter = 187, kFlagRC02TalkedToRunciter = 187,
// 188 is never used // 188 is never used
// 189 is never used // 189 is never used
kFlagShellCasingsTaken = 190, kFlagRC02ShellCasingsTaken = 190,
// 191 is never used // 191 is never used
kFlagBoughtHowieLeeFood = 192, kFlagCT01BoughtHowieLeeFood = 192,
// 193 is never used // 193 is never used
// 194 is never used // 194 is never used
// 195 is never used // 195 is never used
@ -696,16 +696,16 @@ enum Flags {
kFlagSpinnerAtBB01 = 254, kFlagSpinnerAtBB01 = 254,
kFlagSpinnerAtNR01 = 255, kFlagSpinnerAtNR01 = 255,
kFlagSpinnerAtHF01 = 256, kFlagSpinnerAtHF01 = 256,
kFlagMcCoyAtHFxx = 257, kFlagMcCoyInHysteriaHall = 257,
kFlagMcCoyAtBBxx = 258, kFlagMcCoyInBradburyBuilding = 258,
kFlagMcCoyAtUGxx = 259, kFlagMcCoyInUnderground = 259,
// 260 is never used // 260 is never used
kFlagMcCoyAtTBxx = 261, kFlagMcCoyInTyrellBuilding = 261,
kFlagBB01toBB02 = 262, kFlagBB01toBB02 = 262,
kFlagBB02toBB01 = 263, kFlagBB02toBB01 = 263,
kFlagBB01toDR02 = 264, kFlagBB01toDR02 = 264,
kFlagDR02toBB01 = 265, kFlagDR02toBB01 = 265,
kFlagMorajiExploded = 266, kFlagDR05JustExploded = 266,
kFlagDR03ChewTalk1 = 267, kFlagDR03ChewTalk1 = 267,
kFlagDR06JesterActive = 268, kFlagDR06JesterActive = 268,
kFlagDR05BombActivated = 269, kFlagDR05BombActivated = 269,
@ -733,7 +733,7 @@ enum Flags {
// 291 is never used // 291 is never used
kFlagRC04BobTalk2 = 292, kFlagRC04BobTalk2 = 292,
kFlagCT02PotTipped = 293, kFlagCT02PotTipped = 293,
kFlagGaffSpinnerCT12 = 294, kFlagCT12GaffSpinner = 294,
kFlagRC04BobShootMcCoy = 295, kFlagRC04BobShootMcCoy = 295,
kFlagRC04McCoyCombatMode = 296, kFlagRC04McCoyCombatMode = 296,
kFlagBB05toBB06 = 297, kFlagBB05toBB06 = 297,
@ -764,17 +764,54 @@ enum Flags {
kFlagAR01toHC01 = 322, kFlagAR01toHC01 = 322,
kFlagHC01toAR01 = 323, kFlagHC01toAR01 = 323,
kFlagUG01SteamOff = 324, kFlagUG01SteamOff = 324,
kFlagCT04BodyDumped = 325,
kFlagFishDealerTalk = 328, kFlagBB01Available = 326,
kFlagInsectDealerInterviewed = 329, // 327 is never used
kFlagHassanTalk = 330, kFlagAR01FishDealerTalk = 328,
kFlagScorpionsChecked = 331, kFlagAR02InsectDealerInterviewed = 329,
kFlagAR02HassanTalk = 330,
kFlagInsectDealerTalk = 366, kFlagAR02ScorpionsChecked = 331,
kFlagStungByScorpion = 367, kFlagBB02toBB04 = 332,
kFlagBB04toBB02 = 333,
kFlagUG03toUG04 = 334, // is never checked
kFlagUG04toUG03 = 335,
kFlagUG03toUG10 = 336,
kFlagUG10toUG03 = 337,
kFlagUG04toUG05 = 338, // is never checked
kFlagUG05toUG04 = 339,
kFlagUG04toUG06 = 340,
kFlagUG06toUG04 = 341,
kFlagUG06toNR01 = 342,
kFlagNR01toUG06 = 343,
kFlagUG12toUG14 = 344,
kFlagUG14toUG12 = 345, // is never checked
kFlagUG14toUG10 = 346,
kFlagUG10toUG14 = 347, // is never checked
kFlagUG14toUG19 = 348,
kFlagUG19toUG14 = 349,
kFlagUG15toUG13 = 350,
kFlagUG13toUG15 = 351,
kFlagUG15toUG17 = 352,
kFlagUG17toUG15 = 353,
kFlagUG15toUG16b = 354, // is never checked
kFlagUG16toUG15b = 355,
kFlagUG19toMA07 = 356,
kFlagMA07toUG19 = 357,
kFlagHF07toHF05 = 358,
kFlagHF05toHF07 = 359,
kFlagHF07toUG06 = 360,
kFlagUG06toHF07 = 361,
kFlagBB07toBB06 = 362,
kFlagBB06toBB07 = 363,
kFlagBB07toBB12 = 364,
kFlagBB12toBB07 = 365,
kFlagAR02InsectDealerTalk = 366,
kFlagAR02StungByScorpion = 367,
kFlagNotUsed370 = 370, // is never checked kFlagNotUsed370 = 370, // is never checked
kFlagAR02DektoraBoughtScorpions = 374,
kFlagDirectorsCut = 378, kFlagDirectorsCut = 378,
kFlagHC01toHC02 = 384, kFlagHC01toHC02 = 384,
@ -785,17 +822,20 @@ enum Flags {
// 389 is never used // 389 is never used
// 390 is never used // 390 is never used
KFlagMcCoyAndOfficerLearyTalking = 392, kFlagRC01McCoyAndOfficerLearyTalking = 392,
kFlagBB06toBB51 = 393, // is never checked
kFlagBB51toBB06a = 394,
kFlagBB51toBB06b = 395,
KFlagMcCoyAndOfficerLearyArtMetaphor = 397, kFlagRC01McCoyAndOfficerLearyArtMetaphor = 397,
kFlagIzoTalk1 = 400, kFlagHC01IzoTalk1 = 400,
kFlagIzoTalk2 = 401, kFlagHC01IzoTalk2 = 401,
kFlagHC03Available = 402, kFlagHC03Available = 402,
kFlagHC03CageOpen = 403, kFlagHC03CageOpen = 403,
kFlagHawkersBarkeepIntroduction = 404, kFlagHC02HawkersBarkeepIntroduction = 404,
kFlagHawkersBarkeepBraceletTalk = 405, kFlagHC02HawkersBarkeepBraceletTalk = 405,
kFlagUnused406 = 406, // is never checked
kFlagUnused407 = 407, // is never checked kFlagUnused407 = 407, // is never checked
kFlagUG09toCT12 = 432, kFlagUG09toCT12 = 432,
@ -816,34 +856,50 @@ enum Flags {
kFlagMcCoyArrested = 465, kFlagMcCoyArrested = 465,
kFlagUG10GateOpen = 474, kFlagUG10GateOpen = 474,
kFlagMcCoyAtPS03 = 478, // has no use kFlagMcCoyAtPS03 = 478, // has no use
kFlagMcCoyAtHCxx = 479, kFlagMcCoyInHawkersCircle = 479,
kFlagTB06Introduction = 483, kFlagTB06Introduction = 483,
kFlagPhotographerToTB06 = 485, kFlagTB06Photographer = 485,
kFlagDNARowAvailable = 486, kFlagDNARowAvailable = 486,
kFlagKIAPrivacyAddon = 487, kFlagKIAPrivacyAddon = 487,
kFlagDektoraChapter2Started = 489,
kFlagCT04HomelessTrashFinish = 492, kFlagCT04HomelessTrashFinish = 492,
kFlagBB02ElevatorDown = 493,
kFlagBB02Entered = 494,
kFlagUG02FromUG01 = 498, kFlagUG02FromUG01 = 498,
kFlagUG02Interactive = 499, kFlagUG02Interactive = 499,
kFlagAR02DektoraWillBuyScorpions = 504,
kFlagDR03ChewTalkExplosion = 505,
kFlagDR05ExplodedEntered = 511, kFlagDR05ExplodedEntered = 511,
kFlagDR05BombExplosionView = 515, kFlagDR05ViewExplosion = 515,
kFlagCT07ZubenAttack = 516, kFlagCT07ZubenAttack = 516,
kFlagTB06DogCollarTaken = 519, kFlagTB06DogCollarTaken = 519,
kFlagTB06KitchenBoxTaken = 520, kFlagTB06KitchenBoxTaken = 520,
kFlagCT11toDR01 = 531,
kFlagGordoTalk1 = 543,
kFlagGordoTalk2 = 544,
kFlagDR06MannequinHeadOpen = 548,
kFlagDR01toCT11 = 558,
kFlagKIAPrivacyAddonIntro = 599, kFlagKIAPrivacyAddonIntro = 599,
kFlagTB07toTB02 = 608, kFlagTB07toTB02 = 608,
kFlagMcCoySleeping = 647, kFlagTB07RachaelTalk = 612,
kFlagPhoneMessageFromClovis = 649, kFlagMA04McCoySleeping = 647,
kFlagPhoneMessageFromLucy = 650, kFlagMA04PhoneMessageFromClovis = 649,
kFlagRagiationGooglesTaken = 656, kFlagMA04PhoneMessageFromLucy = 650,
kFlagUG02RagiationGooglesTaken = 656,
kFlagDNARowAvailableTalk = 660, kFlagDNARowAvailableTalk = 660,
kFlagTB07ShadeDown = 661, // is never set
kFlagMA07toPS14 = 672,
kFlagPS14toMA07 = 673,
kFlagChapter2Intro = 678, kFlagChapter2Intro = 678,
kFlagPS05TV0 = 688, kFlagPS05TV0 = 688,
kFlagPS05TV1 = 689, kFlagPS05TV1 = 689,
kFlagPS05TV2 = 690, kFlagPS05TV2 = 690,
kFlagPS05TV3 = 691, kFlagPS05TV3 = 691,
kFlagPS05TV4 = 692, kFlagPS05TV4 = 692,
kFlagUG03DeadHomeless = 693, kFlagUG03DeadHomeless = 693,
kFlagUG14DeadHomeless = 694,
kFlagRC04Locked = 702, kFlagRC04Locked = 702,
kFlagTB06PhotographTalk1 = 707, kFlagTB06PhotographTalk1 = 707,
kFlagUG02AmmoTaken = 708, kFlagUG02AmmoTaken = 708,
@ -851,6 +907,7 @@ enum Flags {
kFlagAR01Entered = 710, kFlagAR01Entered = 710,
kFlagMA04WatchedTV = 711, kFlagMA04WatchedTV = 711,
kFlagMcCoyShotAtZuben = 712, kFlagMcCoyShotAtZuben = 712,
kFlagDR04McCoyShotMoraji = 713,
kFlagRC04BobTalk3 = 717, kFlagRC04BobTalk3 = 717,
kFlagCT02McCoyFell = 719, kFlagCT02McCoyFell = 719,
kFlagCT02McCoyCombatReady = 720, kFlagCT02McCoyCombatReady = 720,
@ -875,6 +932,7 @@ enum Variables {
kVariableGenericWalkerCModel = 34, kVariableGenericWalkerCModel = 34,
kVariableWalkLoopActor = 37, kVariableWalkLoopActor = 37,
kVariableWalkLoopRun = 38, kVariableWalkLoopRun = 38,
kVariableDR06MannequinHeadOpened = 39,
kVariableMcCoyDrinks = 42, // is never checked kVariableMcCoyDrinks = 42, // is never checked
kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy
kVariableDNAEvidences = 48, kVariableDNAEvidences = 48,
@ -937,6 +995,7 @@ enum AnimationModes {
kAnimationModeCombatAttack = 6, kAnimationModeCombatAttack = 6,
kAnimationModeCombatWalk = 7, kAnimationModeCombatWalk = 7,
kAnimationModeCombatRun = 8, kAnimationModeCombatRun = 8,
// 12 - 17 various talk modes
kAnimationModeHit = 21, kAnimationModeHit = 21,
kAnimationModeCombatHit = 22, kAnimationModeCombatHit = 22,
kAnimationModeSpinnerGetIn = 41, kAnimationModeSpinnerGetIn = 41,
@ -965,37 +1024,37 @@ enum SceneLoopMode {
}; };
enum Scenes { enum Scenes {
kSceneAR01 = 0, kSceneAR01 = 0, // Animoid Row - Fish dealer
kSceneAR02 = 1, kSceneAR02 = 1, // Animoid Row - Insect dealer
kSceneBB01 = 2, kSceneBB01 = 2, // Bradbury building - Outside
kSceneBB02 = 3, kSceneBB02 = 3, // Bradbury building - elevator down
kSceneBB03 = 4, kSceneBB03 = 4, // Bradbury building - Entrance
kSceneBB04 = 5, kSceneBB04 = 5, // Bradbury building - elevator up
kSceneBB05 = 6, kSceneBB05 = 6, // Bradbury building - Entry hall
kSceneBB06 = 7, kSceneBB06 = 7, // Bradbury building - Billiard room - front
kSceneBB07 = 8, kSceneBB07 = 8,
kSceneBB08 = 9, kSceneBB08 = 9, // Bradbury building - Bathroom
kSceneBB09 = 10, kSceneBB09 = 10, // Bradbury building - Above bathroom
kSceneBB10 = 11, kSceneBB10 = 11, // Bradbury building - Cupboard
kSceneBB11 = 12, kSceneBB11 = 12, // Bradbury building - Roof
kSceneCT01 = 13, // Chinatown - Howie Lee Restaurant kSceneCT01 = 13, // Chinatown - Howie Lee Restaurant
kSceneCT02 = 14, // Chinatown - Kitchen kSceneCT02 = 14, // Chinatown - Restaurant - Kitchen
kSceneCT03 = 15, // Chinatown - Back alley kSceneCT03 = 15, // Chinatown - Back alley - Restaurant
kSceneCT04 = 16, // Chinatown - Back alley - Dumpster kSceneCT04 = 16, // Chinatown - Back alley - Dumpster
kSceneCT05 = 17, // Chinatown - Warehouse - Inside kSceneCT05 = 17, // Chinatown - Warehouse - Inside
kSceneCT06 = 18, // Chinatown - Passage kSceneCT06 = 18, // Chinatown - Passage from front
kSceneCT07 = 19, // Chinatown - Passage form back kSceneCT07 = 19, // Chinatown - Passage form back
kSceneCT08 = 20, // Chinatown - Yukon Hotel - Backroom kSceneCT08 = 20, // Chinatown - Yukon Hotel - Backroom
kSceneCT09 = 21, // Chinatown - Yukon Hotel - Lobby kSceneCT09 = 21, // Chinatown - Yukon Hotel - Lobby
kSceneCT10 = 22, // Chinatown - Yukon Hotel - Room kSceneCT10 = 22, // Chinatown - Yukon Hotel - Room
kSceneCT11 = 23, // Chinatown - Yukon Hotel - Outside kSceneCT11 = 23, // Chinatown - Yukon Hotel - Outside
kSceneCT12 = 24, // Chinatown - Warehouse - Outside kSceneCT12 = 24, // Chinatown - Warehouse - Outside
kSceneDR01 = 25, kSceneDR01 = 25, // DNA Row - Street
kSceneDR02 = 26, kSceneDR02 = 26, // DNA Row - Eye world - Outside
kSceneDR03 = 27, kSceneDR03 = 27, // DNA Row - Eye world - Inside
kSceneDR04 = 28, kSceneDR04 = 28, // DNA Row - Dermo design - Outside
kSceneDR05 = 29, kSceneDR05 = 29, // DNA Row - Dermo design - Inside
kSceneDR06 = 30, kSceneDR06 = 30, // DNA Row - Twin's office
kSceneHC01 = 31, // Hawker's circle - Green pawn - Outside kSceneHC01 = 31, // Hawker's circle - Green pawn - Outside
kSceneHC02 = 32, // Hawker's circle - China bar kSceneHC02 = 32, // Hawker's circle - China bar
kSceneHC03 = 33, // Hawker's circle - Green pawn - Inside kSceneHC03 = 33, // Hawker's circle - Green pawn - Inside
@ -1012,7 +1071,7 @@ enum Scenes {
kSceneKP04 = 44, kSceneKP04 = 44,
kSceneKP05 = 45, kSceneKP05 = 45,
kSceneKP06 = 46, kSceneKP06 = 46,
kSceneKP07 = 47, // Kipple - Moonbus inside kSceneKP07 = 47, // Kipple - Moonbus - Inside
kSceneMA01 = 48, // McCoy's Apartment - Roof kSceneMA01 = 48, // McCoy's Apartment - Roof
kSceneMA02 = 49, // McCoy's Apartment - Living room kSceneMA02 = 49, // McCoy's Apartment - Living room
kSceneMA04 = 50, // McCoy's Apartment - Sleeping room kSceneMA04 = 50, // McCoy's Apartment - Sleeping room
@ -1038,19 +1097,19 @@ enum Scenes {
kScenePS06 = 70, kScenePS06 = 70,
kScenePS07 = 71, kScenePS07 = 71,
kScenePS09 = 72, // Police Station - Lockup kScenePS09 = 72, // Police Station - Lockup
kScenePS10 = 73, kScenePS10 = 73, // Police Station - Shooting range 1
kScenePS11 = 74, kScenePS11 = 74, // Police Station - Shooting range 2
kScenePS12 = 75, kScenePS12 = 75, // Police Station - Shooting range 3
kScenePS13 = 76, kScenePS13 = 76, // Police Station - Shooting range 4
kScenePS14 = 77, kScenePS14 = 77, // Police Station - Outside
kSceneRC01 = 78, // Runciter - Outside kSceneRC01 = 78, // Runciter - Outside
kSceneRC02 = 79, // Runciter - Inside kSceneRC02 = 79, // Runciter - Inside
kSceneRC03 = 80, // Bullet Bob - outside kSceneRC03 = 80, // Bullet Bob - Outside
kSceneRC04 = 81, // Bullet Bob - inside kSceneRC04 = 81, // Bullet Bob - Inside
kSceneTB02 = 82, // Tyrell Building - reception kSceneTB02 = 82, // Tyrell Building - Reception
kSceneTB03 = 83, kSceneTB03 = 83,
kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - outside kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - Iutside
kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - inside kSceneTB06 = 85, // Tyrell Building - Grav Test Lab - Inside
kSceneUG01 = 86, // Underground - Under Bullet Bob entrance kSceneUG01 = 86, // Underground - Under Bullet Bob entrance
kSceneUG02 = 87, // Underground - Under Green pawn kSceneUG02 = 87, // Underground - Under Green pawn
kSceneUG03 = 88, kSceneUG03 = 88,
@ -1060,7 +1119,7 @@ enum Scenes {
kSceneUG07 = 92, kSceneUG07 = 92,
kSceneUG08 = 93, kSceneUG08 = 93,
kSceneUG09 = 94, kSceneUG09 = 94,
kSceneUG10 = 95, kSceneUG10 = 95, // Undergound - Bridge
kSceneUG12 = 96, kSceneUG12 = 96,
kSceneUG13 = 97, kSceneUG13 = 97,
kSceneUG14 = 98, kSceneUG14 = 98,
@ -1069,7 +1128,7 @@ enum Scenes {
kSceneUG17 = 101, kSceneUG17 = 101,
kSceneUG18 = 102, kSceneUG18 = 102,
kSceneUG19 = 103, kSceneUG19 = 103,
kSceneBB51 = 104, kSceneBB51 = 104, // Bradbury building - Billiard room - Back
kSceneCT51 = 105, kSceneCT51 = 105,
kSceneHC04 = 106, // Hawker's circle - Kingston kitchen kSceneHC04 = 106, // Hawker's circle - Kingston kitchen
kSceneRC51 = 107, // Runciter - Lucy's desk kSceneRC51 = 107, // Runciter - Lucy's desk
@ -1264,6 +1323,7 @@ enum GameItems {
// 75 is never used // 75 is never used
// 76 is never used // 76 is never used
kItemDragonflyEarring = 76, kItemDragonflyEarring = 76,
kItemBomb = 78,
kItemCandy = 79, kItemCandy = 79,
kItemChopstickWrapper = 82, kItemChopstickWrapper = 82,
kItemDogCollar = 84, kItemDogCollar = 84,
@ -1281,7 +1341,8 @@ enum GameItems {
kItemWeaponsCrate = 110, kItemWeaponsCrate = 110,
kItemWeaponsOrderForm = 111, kItemWeaponsOrderForm = 111,
kItemTyrellSalesPamphlet = 119, kItemTyrellSalesPamphlet = 119,
kItemHC03Lock = 121 kItemGreenPawnLock = 121,
kItemChain = 122
}; };
enum Elevators { enum Elevators {
@ -1361,6 +1422,16 @@ enum AffectionTowards {
kAffectionTowardsLucy = 3 kAffectionTowardsLucy = 3
}; };
/*
* Common goals:
* 0 - 99 - first chapter
* 100 - 199 - second chapter
* 200 - 299 - third chapter
* 300 - 399 - fourth chapter
* 400 - 499 - fifth chapter
* 599 - dead / gone
*/
enum GoalMcCoy { enum GoalMcCoy {
kGoalMcCoyDefault = 0, kGoalMcCoyDefault = 0,
kGoalMcCoyDodge = 1 kGoalMcCoyDodge = 1
@ -1380,6 +1451,34 @@ enum GoalSteele {
kGoalSteeleWalkAroundRestart = 190 kGoalSteeleWalkAroundRestart = 190
}; };
enum GoalDektora {
kGoalDektoraDefault = 0,
kGoalDektoraStartWalkingAround = 100,
kGoalDektoraWalkAroundAsReplicant = 101,
kGoalDektoraWalkAroundAsHuman = 102,
kGoalDektoraStopWalkingAround = 103
};
enum GoalGordo {
// chapter 1
kGoalGordoDefault = 0,
kGoalGordoLeaveCT01 = 1,
kGoalGordoLeftCT01 = 2,
kGoalGordoWalkThroughCT05 = 3,
kGoalGordoLeaveCT05 = 4,
kGoalGordoLeftCT05 = 5,
kGoalGordoGetUpCT01 = 90,
kGoalGordoWalkOutFromCT01 = 91,
kGoalGordoBidFarewellToHowieLee = 92,
kGoalGordoWalkToHowieLee = 93,
// chapter 2
kGoalGordoWalkAround = 100,
kGoalGordoGoToDNARow = 101,
kGoalGordoGoToChinaTown = 102,
kGoalGordoGoToFreeSlotHAGJ = 103,
kGoalGordoGoToFreeSlotAH = 104
};
enum GoalGuzza { enum GoalGuzza {
kGoalGuzzaLeaveOffice = 100, kGoalGuzzaLeaveOffice = 100,
kGoalGuzzaGoToHawkersCircle = 101, kGoalGuzzaGoToHawkersCircle = 101,
@ -1423,18 +1522,18 @@ enum GoalBulletBob {
enum GoalRunciter { enum GoalRunciter {
kGoalRunciterDefault = 0, kGoalRunciterDefault = 0,
kGoalRunciterWalkAround = 1, kGoalRunciterWalkAroundRC02 = 1,
kGoalRunciterHide = 2, kGoalRunciterGoToFreeSlotGH = 2,
kGoalRunciterAtShop = 300, kGoalRunciterAtShop = 300,
kGoalRunciterDead = 599 kGoalRunciterDead = 599
}; };
enum GoalZuben { enum GoalZuben {
kGoalZubenDefault = 0, kGoalZubenDefault = 0,
kGoalZubenCT01Leave = 1, kGoalZubenCT01WalkToCT02 = 1,
kGoalZubenCT02Flee = 2, kGoalZubenCT02RunToFreeSlotG = 2,
kGoalZubenCT07Spared = 4, kGoalZubenCT07Spared = 4,
kGoalZubenCT07Leave = 5, kGoalZubenCT07RunToFreeSlotA = 5,
kGoalZubenDie = 6, kGoalZubenDie = 6,
kGoalZubenSpared = 7, kGoalZubenSpared = 7,
kGoalZubenCT02PushPot = 8, kGoalZubenCT02PushPot = 8,
@ -1442,7 +1541,7 @@ enum GoalZuben {
kGoalZubenCT02OpenDoor = 10, kGoalZubenCT02OpenDoor = 10,
kGoalZubenCT06JumpDown = 11, kGoalZubenCT06JumpDown = 11,
kGoalZubenCT06AttackMcCoy = 12, kGoalZubenCT06AttackMcCoy = 12,
kGoalZubenCT06Hide = 13, kGoalZubenCT06HideAtFreeSlotA = 13,
kGoalZubenCT02PotDodgeCheck = 14, kGoalZubenCT02PotDodgeCheck = 14,
kGoalZubenFled = 20, kGoalZubenFled = 20,
kGoalZubenMA01AttackMcCoy = 21, kGoalZubenMA01AttackMcCoy = 21,
@ -1455,6 +1554,21 @@ enum GoalOfficerLeary {
kGoalOfficerLearyRC01CrowdInterrogation = 2 kGoalOfficerLearyRC01CrowdInterrogation = 2
}; };
enum GoalMoraji {
kGoalMorajiDefault = 0,
kGoalMorajiShot = 5,
kGoalMorajiFreed = 10,
kGoalMorajiRunOut = 11,
kGoalMorajiGetUp = 18,
kGoalMorajiScream = 19,
kGoalMorajiJump = 20,
kGoalMorajiLayDown = 21,
kGoalMorajiDie = 22,
kGoalMorajiDead = 23,
kGoalMorajiChooseFate = 30,
kGoalMorajiPerished = 99
};
} // End of namespace BladeRunner } // End of namespace BladeRunner
#endif #endif

View file

@ -282,7 +282,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Goal_Number(kActorSadik, 200); Actor_Set_Goal_Number(kActorSadik, 200);
Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1);
Player_Gains_Control(); Player_Gains_Control();
Chapter_Enter(3, 6, 20); Chapter_Enter(3, kSetCT08_CT51_UG12, kSceneCT08);
Game_Flag_Set(550); Game_Flag_Set(550);
Game_Flag_Set(679); Game_Flag_Set(679);
return true; return true;

View file

@ -38,94 +38,94 @@ void AIScriptDektora::Initialize() {
_flag = false; _flag = false;
_x = _y = _z = 0.0f; _x = _y = _z = 0.0f;
Actor_Set_Goal_Number(kActorDektora, 0); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraDefault);
} }
bool AIScriptDektora::Update() { bool AIScriptDektora::Update() {
int chapter = Global_Variable_Query(kVariableChapter) - 2; int chapter = Global_Variable_Query(kVariableChapter);
if (chapter > 2) if (chapter == 2) {
return true; if (!Game_Flag_Query(kFlagDektoraChapter2Started)) {
Game_Flag_Set(kFlagDektoraChapter2Started);
if (chapter) { Actor_Put_In_Set(kActorDektora, kSetFreeSlotG);
if (chapter == 1) { Actor_Set_At_Waypoint(kActorDektora, 39, 0);
if (Actor_Query_Goal_Number(kActorDektora) < 199) { Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
Actor_Set_Goal_Number(kActorDektora, 199); } else {
} else { if ( Game_Flag_Query(kFlagAR02DektoraWillBuyScorpions)
switch (Actor_Query_Goal_Number(kActorDektora)) { && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
case 269: && Player_Query_Current_Scene() != kSceneAR01
Actor_Set_Goal_Number(kActorDektora, 270); && Player_Query_Current_Scene() != kSceneAR02
return 1; ) {
if (Game_Flag_Query(kFlagAR02Entered)) {
case 270: Item_Remove_From_World(kItemScrorpions);
case 272:
case 274:
return 1;
case 271:
if (Actor_Query_Inch_Distance_From_Actor(kActorDektora, kActorMcCoy) <= 48) {
Actor_Set_Goal_Number(kActorDektora, 279);
return 1;
}
if (comp_distance(kActorMcCoy, _x, _y, _z) > 12.0f) {
Actor_Query_XYZ(kActorMcCoy, &_x, &_y, &_z);
Async_Actor_Walk_To_XYZ(kActorDektora, _x, _y, _z, 36, 0);
}
break;
case 273:
Actor_Set_Goal_Number(kActorDektora, 274);
return 1;
case 275:
Actor_Set_Goal_Number(kActorDektora, 276);
return 1;
} }
Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
} }
} else if (Actor_Query_Goal_Number(kActorDektora) < 300) { }
return true;
}
if (chapter == 3) {
if (Actor_Query_Goal_Number(kActorDektora) < 199) {
Actor_Set_Goal_Number(kActorDektora, 199);
} else {
switch (Actor_Query_Goal_Number(kActorDektora)) {
case 269:
Actor_Set_Goal_Number(kActorDektora, 270);
break;
case 271:
if (Actor_Query_Inch_Distance_From_Actor(kActorDektora, kActorMcCoy) <= 48) {
Actor_Set_Goal_Number(kActorDektora, 279);
break;
}
if (comp_distance(kActorMcCoy, _x, _y, _z) > 12.0f) {
Actor_Query_XYZ(kActorMcCoy, &_x, &_y, &_z);
Async_Actor_Walk_To_XYZ(kActorDektora, _x, _y, _z, 36, 0);
}
break;
case 273:
Actor_Set_Goal_Number(kActorDektora, 274);
break;
case 275:
Actor_Set_Goal_Number(kActorDektora, 276);
break;
}
}
return true;
}
if (chapter == 4) {
if (Actor_Query_Goal_Number(kActorDektora) < 300) {
Actor_Set_Goal_Number(kActorDektora, 300); Actor_Set_Goal_Number(kActorDektora, 300);
} }
} else if (Game_Flag_Query(489)) { return true;
if ( Game_Flag_Query(504) == 1
&& !Game_Flag_Query(374)
&& Player_Query_Current_Scene()
&& Player_Query_Current_Scene() != 1
) {
if (Game_Flag_Query(kFlagAR02Entered)) {
Item_Remove_From_World(kItemScrorpions);
}
Game_Flag_Set(374);
}
} else {
Game_Flag_Set(489);
Actor_Put_In_Set(kActorDektora, kSetFreeSlotG);
Actor_Set_At_Waypoint(kActorDektora, 39, 0);
Actor_Set_Goal_Number(kActorDektora, 100);
} }
return true; return true;
} }
void AIScriptDektora::TimerExpired(int timer) { void AIScriptDektora::TimerExpired(int timer) {
if (timer) if (timer == 0) {
return; //false; if (Actor_Query_Goal_Number(kActorDektora) == 210) {
if (Player_Query_Current_Scene() == 61) {
if (Actor_Query_Goal_Number(kActorDektora) == 210) { AI_Countdown_Timer_Reset(kActorDektora, 0);
if (Player_Query_Current_Scene() == 61) { AI_Countdown_Timer_Start(kActorDektora, 0, 10);
AI_Countdown_Timer_Reset(kActorDektora, 0); } else {
AI_Countdown_Timer_Start(kActorDektora, 0, 10); Actor_Set_Goal_Number(kActorDektora, 211);
} else { AI_Countdown_Timer_Reset(kActorDektora, 0);
Actor_Set_Goal_Number(kActorDektora, 211); }
AI_Countdown_Timer_Reset(kActorDektora, 0); return; //true;
} }
return; //true;
}
if (Actor_Query_Goal_Number(kActorDektora) == 270) { if (Actor_Query_Goal_Number(kActorDektora) == 270) {
AI_Countdown_Timer_Reset(kActorDektora, 0); AI_Countdown_Timer_Reset(kActorDektora, 0);
Actor_Set_Goal_Number(kActorDektora, 271); Actor_Set_Goal_Number(kActorDektora, 271);
return; //true; return; //true;
}
} }
return; //false; return; //false;
@ -133,34 +133,35 @@ void AIScriptDektora::TimerExpired(int timer) {
void AIScriptDektora::CompletedMovementTrack() { void AIScriptDektora::CompletedMovementTrack() {
switch (Actor_Query_Goal_Number(kActorDektora)) { switch (Actor_Query_Goal_Number(kActorDektora)) {
case 100: case kGoalDektoraStartWalkingAround:
if (Game_Flag_Query(47) == 1) { if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
Actor_Set_Goal_Number(kActorDektora, 101); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraWalkAroundAsReplicant);
} else { } else {
Actor_Set_Goal_Number(kActorDektora, 102); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraWalkAroundAsHuman);
} }
break; break;
case kGoalDektoraWalkAroundAsReplicant:
case 101:
if (Random_Query(1, 7) == 1 if (Random_Query(1, 7) == 1
&& Actor_Query_Goal_Number(kActorEarlyQ) != 1 && Actor_Query_Goal_Number(kActorEarlyQ) != 1
&& Actor_Query_Goal_Number(kActorEarlyQ) != 101) { && Actor_Query_Goal_Number(kActorEarlyQ) != 101
Game_Flag_Set(504); ) {
Actor_Set_Goal_Number(kActorDektora, 100); Game_Flag_Set(kFlagAR02DektoraWillBuyScorpions);
Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} else { } else {
Actor_Set_Goal_Number(kActorDektora, 100); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} }
break; break;
case 102: case kGoalDektoraWalkAroundAsHuman:
if (Random_Query(1, 5) == 1 if (Random_Query(1, 5) == 1
&& Actor_Query_Goal_Number(kActorEarlyQ) != 1 && Actor_Query_Goal_Number(kActorEarlyQ) != 1
&& Actor_Query_Goal_Number(kActorEarlyQ) != 101) { && Actor_Query_Goal_Number(kActorEarlyQ) != 101
Game_Flag_Set(504); ) {
Actor_Set_Goal_Number(kActorDektora, 100); Game_Flag_Set(kFlagAR02DektoraWillBuyScorpions);
Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} else { } else {
Actor_Set_Goal_Number(kActorDektora, 100); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} }
break; break;
@ -191,14 +192,14 @@ void AIScriptDektora::ReceivedClue(int clueId, int fromActorId) {
void AIScriptDektora::ClickedByPlayer() { void AIScriptDektora::ClickedByPlayer() {
if (Actor_Query_Goal_Number(kActorDektora) == 599) { if (Actor_Query_Goal_Number(kActorDektora) == 599) {
Actor_Face_Actor(0, kActorDektora, 1); Actor_Face_Actor(0, kActorDektora, true);
Actor_Says(kActorMcCoy, 8630, 12); Actor_Says(kActorMcCoy, 8630, 12);
return; //true; return; //true;
} }
if (Actor_Query_Goal_Number(kActorDektora) < 199) { if (Actor_Query_Goal_Number(kActorDektora) < 199) {
Actor_Face_Actor(kActorMcCoy, kActorDektora, 1); Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
Actor_Says(kActorMcCoy, 8590, 13); Actor_Says(kActorMcCoy, 8590, 13);
} }
@ -220,7 +221,9 @@ void AIScriptDektora::EnteredScene(int sceneId) {
} }
void AIScriptDektora::OtherAgentEnteredThisScene(int otherActorId) { void AIScriptDektora::OtherAgentEnteredThisScene(int otherActorId) {
if (!otherActorId && Actor_Query_Goal_Number(kActorDektora) == 246) { if (otherActorId == kActorMcCoy
&& Actor_Query_Goal_Number(kActorDektora) == 246
) {
Scene_Exits_Disable(); Scene_Exits_Disable();
Actor_Change_Animation_Mode(kActorDektora, 23); Actor_Change_Animation_Mode(kActorDektora, 23);
} }
@ -243,8 +246,9 @@ void AIScriptDektora::ShotAtAndMissed() {
bool AIScriptDektora::ShotAtAndHit() { bool AIScriptDektora::ShotAtAndHit() {
if (Actor_Query_Goal_Number(kActorDektora) == 270 if (Actor_Query_Goal_Number(kActorDektora) == 270
|| Actor_Query_Goal_Number(kActorDektora) == 271 || Actor_Query_Goal_Number(kActorDektora) == 271
|| Actor_Query_Goal_Number(kActorDektora) == 272) { || Actor_Query_Goal_Number(kActorDektora) == 272
) {
Actor_Set_Health(kActorDektora, 100, 100); Actor_Set_Health(kActorDektora, 100, 100);
if (Actor_Query_Goal_Number(kActorDektora) != 272) { if (Actor_Query_Goal_Number(kActorDektora) != 272) {
@ -252,6 +256,7 @@ bool AIScriptDektora::ShotAtAndHit() {
} }
return true; return true;
} }
if (Actor_Query_Goal_Number(kActorDektora) == 260) { if (Actor_Query_Goal_Number(kActorDektora) == 260) {
AI_Movement_Track_Flush(kActorDektora); AI_Movement_Track_Flush(kActorDektora);
Actor_Set_Health(kActorDektora, 0, 100); Actor_Set_Health(kActorDektora, 0, 100);
@ -276,11 +281,14 @@ bool AIScriptDektora::ShotAtAndHit() {
} }
void AIScriptDektora::Retired(int byActorId) { void AIScriptDektora::Retired(int byActorId) {
if (!byActorId) { if (byActorId == kActorMcCoy) {
Actor_Modify_Friendliness_To_Other(kActorClovis, 0, -5); Actor_Modify_Friendliness_To_Other(kActorClovis, 0, -5);
} }
if (byActorId == kActorSteele && Actor_Query_In_Set(kActorSteele, kSetHF06) && Actor_Query_In_Set(kActorMcCoy, kSetHF06)) { if (byActorId == kActorSteele
&& Actor_Query_In_Set(kActorSteele, kSetHF06)
&& Actor_Query_In_Set(kActorMcCoy, kSetHF06)
) {
Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false); Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false);
} }
@ -317,6 +325,83 @@ int AIScriptDektora::GetFriendlinessModifierIfGetsClue(int otherActorId, int clu
bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) { bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) { switch (newGoalNumber) {
case kGoalDektoraStartWalkingAround:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append(kActorDektora, 39, 10);
AI_Movement_Track_Repeat(kActorDektora);
break;
case kGoalDektoraWalkAroundAsReplicant:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
if (Game_Flag_Query(kFlagZubenRetired)) {
AI_Movement_Track_Append(kActorDektora, 33, 240);
} else if (Game_Flag_Query(kFlagZubenSpared)) {
AI_Movement_Track_Append(kActorDektora, 33, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 33, 90);
}
AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 35, 528);
if (Random_Query(1, 2) == 1
&& Game_Flag_Query(kFlagAR02DektoraWillBuyScorpions)
) {
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 2, 979);
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append(kActorDektora, 39, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 39, 180);
}
AI_Movement_Track_Append(kActorDektora, 282, 0);
AI_Movement_Track_Append(kActorDektora, 283, 0);
AI_Movement_Track_Append(kActorDektora, 284, 0);
AI_Movement_Track_Append(kActorDektora, 285, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 30, 329);
AI_Movement_Track_Repeat(kActorDektora);
break;
case kGoalDektoraWalkAroundAsHuman:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
AI_Movement_Track_Append(kActorDektora, 40, 90);
if (Game_Flag_Query(kFlagZubenRetired)
&& Game_Flag_Query(kFlagLucyIsReplicant)
) {
AI_Movement_Track_Append(kActorDektora, 33, 180);
} else {
AI_Movement_Track_Append(kActorDektora, 33, 160);
}
AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 20, 528);
if (Random_Query(1, 2) == 1) {
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 3, 979);
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append(kActorDektora, 39, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 39, 180);
}
AI_Movement_Track_Append(kActorDektora, 282, 0);
AI_Movement_Track_Append(kActorDektora, 283, 0);
AI_Movement_Track_Append(kActorDektora, 284, 0);
AI_Movement_Track_Append(kActorDektora, 285, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 35, 329);
AI_Movement_Track_Repeat(kActorDektora);
break;
case kGoalDektoraStopWalkingAround:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append(kActorDektora, 39, 240);
AI_Movement_Track_Repeat(kActorDektora);
break;
case 199: case 199:
AI_Movement_Track_Flush(kActorDektora); AI_Movement_Track_Flush(kActorDektora);
Actor_Set_Goal_Number(kActorDektora, 200); Actor_Set_Goal_Number(kActorDektora, 200);
@ -451,79 +536,6 @@ bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_Waypoint(kActorDektora, 33, 0); Actor_Set_At_Waypoint(kActorDektora, 33, 0);
break; break;
case 100:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append(kActorDektora, 39, 10);
AI_Movement_Track_Repeat(kActorDektora);
break;
case 101:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
if (Game_Flag_Query(40) == 1) {
AI_Movement_Track_Append(kActorDektora, 33, 240);
} else if (Game_Flag_Query(41) == 1) {
AI_Movement_Track_Append(kActorDektora, 33, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 33, 90);
}
AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 35, 528);
if (Random_Query(1, 2) == 1 && Game_Flag_Query(504)) {
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 2, 979);
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append(kActorDektora, 39, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 39, 180);
}
AI_Movement_Track_Append(kActorDektora, 282, 0);
AI_Movement_Track_Append(kActorDektora, 283, 0);
AI_Movement_Track_Append(kActorDektora, 284, 0);
AI_Movement_Track_Append(kActorDektora, 285, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 30, 329);
AI_Movement_Track_Repeat(kActorDektora);
break;
case 102:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append_With_Facing(kActorDektora, 287, 15, 278);
AI_Movement_Track_Append(kActorDektora, 40, 90);
if (Game_Flag_Query(40) == 1 && Game_Flag_Query(46) == 1) {
AI_Movement_Track_Append(kActorDektora, 33, 180);
} else {
AI_Movement_Track_Append(kActorDektora, 33, 160);
}
AI_Movement_Track_Append_With_Facing(kActorDektora, 288, 20, 528);
if (Random_Query(1, 2) == 1) {
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 290, 3, 979);
AI_Movement_Track_Append(kActorDektora, 289, 0);
AI_Movement_Track_Append(kActorDektora, 39, 120);
} else {
AI_Movement_Track_Append(kActorDektora, 39, 180);
}
AI_Movement_Track_Append(kActorDektora, 282, 0);
AI_Movement_Track_Append(kActorDektora, 283, 0);
AI_Movement_Track_Append(kActorDektora, 284, 0);
AI_Movement_Track_Append(kActorDektora, 285, 0);
AI_Movement_Track_Append_With_Facing(kActorDektora, 286, 35, 329);
AI_Movement_Track_Repeat(kActorDektora);
break;
case 103:
AI_Movement_Track_Flush(kActorDektora);
AI_Movement_Track_Append(kActorDektora, 39, 240);
AI_Movement_Track_Repeat(kActorDektora);
break;
default: default:
return false; return false;
@ -1058,6 +1070,300 @@ bool AIScriptDektora::UpdateAnimation(int *animation, int *frame) {
} }
bool AIScriptDektora::ChangeAnimationMode(int mode) { bool AIScriptDektora::ChangeAnimationMode(int mode) {
switch (mode) {
case kAnimationModeIdle:
if (Game_Flag_Query(633)) {
_animationState = 32;
_animationFrame = 0;
break;
}
switch (_animationState) {
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 27:
case 28:
_flag = true;
break;
case 9:
case 10:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
_animationState = 11;
_animationFrame = 0;
break;
case 11:
case 18:
case 19:
case 20:
case 26:
case 29:
case 30:
break;
case 25:
_animationState = 25;
_animationFrame = 0;
break;
case 31:
_animationState = 31;
_animationFrame = 0;
break;
default:
_animationState = 0;
_animationFrame = 0;
break;
}
break;
case kAnimationModeWalk:
if (!Game_Flag_Query(633)) {
_animationFrame = 0;
_animationState = 21;
} else {
_animationState = 33;
_animationFrame = 0;
}
break;
case kAnimationModeRun:
_animationFrame = 0;
_animationState = 22;
break;
case kAnimationModeTalk:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 2;
_animationFrame = 0;
_flag = false;
}
break;
case kAnimationModeCombatIdle:
switch (_animationState) {
case 9:
case 10:
case 16:
case 17:
break;
case 25:
case 27:
case 28:
_animationState = 29;
_animationFrame = 0;
break;
case 31:
_animationState = 30;
_animationFrame = Slice_Animation_Query_Number_Of_Frames(154) - 1;
break;
default:
_animationState = 10;
_animationFrame = 0;
break;
}
break;
case kAnimationModeCombatAttack:
if (_animationState == 31) {
_animationState = 26;
} else if (Random_Query(0, 1) == 1) {
_animationState = 16;
} else {
_animationState = 17;
}
_animationFrame = 0;
break;
case kAnimationModeCombatWalk:
if (!Game_Flag_Query(633)) {
_animationFrame = 0;
_animationState = 21;
} else {
_animationState = 33;
_animationFrame = 0;
}
break;
case kAnimationModeCombatRun:
_animationFrame = 0;
_animationState = 22;
break;
case 12:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 3;
_animationFrame = 0;
_flag = false;
}
break;
case 13:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 4;
_animationFrame = 0;
_flag = false;
}
break;
case 14:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 5;
_animationFrame = 0;
_flag = 0;
}
break;
case 15:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 6;
_animationFrame = 0;
_flag = false;
}
break;
case 16:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 7;
_animationFrame = 0;
_flag = false;
}
break;
case 17:
if (_animationState < 2
|| _animationState > 8
) {
_animationState = 8;
_animationFrame = 0;
_flag = false;
}
break;
case 21:
if (Game_Flag_Query(633)) {
_animationState = 34;
_animationFrame = 0;
break;
}
switch (_animationState) {
case 9:
case 10:
case 11:
case 12:
case 13:
case 16:
case 17:
if (Random_Query(0, 1) == 1) {
_animationState = 14;
} else {
_animationState = 15;
}
break;
case 14:
case 15:
if (Random_Query(0, 1) == 1) {
_animationState = 18;
} else {
_animationState = 19;
}
break;
}
_animationFrame = 0;
break;
case 23:
_animationState = 41;
_animationFrame = 0;
break;
case 30:
if (_animationState != 27
&& _animationState != 28
) {
_animationState = 27;
_animationFrame = 0;
_flag = false;
}
break;
case 31:
if (_animationState != 27
&& _animationState != 28
) {
_animationState = 28;
_animationFrame = 0;
_flag = false;
}
break;
case kAnimationModeWalkUp:
_animationFrame = 0;
_animationState = 23;
break;
case kAnimationModeWalkDown:
_animationFrame = 0;
_animationState = 24;
break;
case kAnimationModeDie:
_animationState = 20;
_animationFrame = 0;
break;
case 53:
switch (_animationState) {
case 26:
case 29:
case 30:
case 31:
break;
case 27:
case 28:
_flag = true;
break;
default:
_animationState = 25;
_animationFrame = 0;
break;
}
break;
case 70:
_animationState = 17;
_animationFrame = 0;
break;
case 71:
_animationState = 16;
_animationFrame = 0;
break;
case 79:
_animationState = 37;
_animationFrame = 0;
break;
}
return true; return true;
} }

View file

@ -330,7 +330,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break; break;
case 208: case 208:
if (Game_Flag_Query(374) == 1) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Actor_Set_Goal_Number(kActorEarlyQ, 210); Actor_Set_Goal_Number(kActorEarlyQ, 210);
} else { } else {
Actor_Set_Goal_Number(kActorEarlyQ, 209); Actor_Set_Goal_Number(kActorEarlyQ, 209);

View file

@ -211,7 +211,7 @@ bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorGaff); AI_Movement_Track_Repeat(kActorGaff);
return true; return true;
case 10: case 10:
Game_Flag_Reset(kFlagGaffSpinnerCT12); Game_Flag_Reset(kFlagCT12GaffSpinner);
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
Scene_Loop_Start_Special(2, 6, true); Scene_Loop_Start_Special(2, 6, true);
return true; return true;

View file

@ -45,23 +45,30 @@ void AIScriptGordo::Initialize() {
_frameDelta = 1; _frameDelta = 1;
_frameMax = 0; _frameMax = 0;
_state = 0; _state = 0;
Actor_Set_Goal_Number(kActorGordo, 0); Actor_Set_Goal_Number(kActorGordo, kGoalGordoDefault);
} }
bool AIScriptGordo::Update() { bool AIScriptGordo::Update() {
if (Global_Variable_Query(kVariableChapter) == 1) { if (Global_Variable_Query(kVariableChapter) == 1) {
if (Actor_Query_Goal_Number(kActorGordo) == 0 && Actor_Query_Friendliness_To_Other(kActorGordo, kActorMcCoy) < 48 && Actor_Query_Is_In_Current_Set(kActorGordo) == kSetBB02_BB04_BB06_BB51) { if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault
Actor_Set_Goal_Number(kActorGordo, 90); && Actor_Query_Friendliness_To_Other(kActorGordo, kActorMcCoy) < 48
&& Actor_Query_Is_In_Current_Set(kActorGordo)
) {
Actor_Set_Goal_Number(kActorGordo, kGoalGordoGetUpCT01);
return true; return true;
} }
if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetCT03_CT04 && Actor_Query_Which_Set_In(kActorGordo) == kSetCT01_CT12) { if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetCT03_CT04
Actor_Set_Goal_Number(kActorGordo, 91); && Actor_Query_Which_Set_In(kActorGordo) == kSetCT01_CT12
) {
Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkOutFromCT01);
return true; return true;
} }
} }
if (Global_Variable_Query(kVariableChapter) == 2 && Actor_Query_Goal_Number(kActorGordo) < 100) { if (Global_Variable_Query(kVariableChapter) == 2
Actor_Set_Goal_Number(kActorGordo, 100); && Actor_Query_Goal_Number(kActorGordo) < kGoalGordoWalkAround
) {
Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkAround);
} }
if (Global_Variable_Query(kVariableChapter) == 3) { if (Global_Variable_Query(kVariableChapter) == 3) {
@ -74,7 +81,9 @@ bool AIScriptGordo::Update() {
} }
if (Global_Variable_Query(kVariableChapter) == 4) { if (Global_Variable_Query(kVariableChapter) == 4) {
if (Actor_Query_Goal_Number(kActorGordo) < 300 && Actor_Query_Goal_Number(kActorGordo) != 260) { if (Actor_Query_Goal_Number(kActorGordo) < 300
&& Actor_Query_Goal_Number(kActorGordo) != 260
) {
Actor_Set_Goal_Number(kActorGordo, 300); Actor_Set_Goal_Number(kActorGordo, 300);
} else if (Actor_Query_Goal_Number(kActorGordo) == 599) { } else if (Actor_Query_Goal_Number(kActorGordo) == 599) {
Actor_Put_In_Set(kActorGordo, kSetFreeSlotI); Actor_Put_In_Set(kActorGordo, kSetFreeSlotI);
@ -82,7 +91,9 @@ bool AIScriptGordo::Update() {
} }
} }
if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorGordo) < 400) { if (Global_Variable_Query(kVariableChapter) == 5
&& Actor_Query_Goal_Number(kActorGordo) < 400
) {
Actor_Set_Goal_Number(kActorGordo, 400); Actor_Set_Goal_Number(kActorGordo, 400);
} }
@ -102,13 +113,14 @@ void AIScriptGordo::TimerExpired(int timer) {
} }
void AIScriptGordo::CompletedMovementTrack() { void AIScriptGordo::CompletedMovementTrack() {
if (Actor_Query_Goal_Number(kActorGordo) == 1 if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoLeaveCT01
|| Actor_Query_Goal_Number(kActorGordo) == 91 || Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkOutFromCT01
) { ) {
Actor_Set_Goal_Number(kActorGordo, 2); Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeftCT01);
return;// true; return;// true;
} }
if (Actor_Query_Goal_Number(kActorGordo) == 3) {
if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkThroughCT05) {
if (Player_Query_Current_Set() == kSetCT05) { if (Player_Query_Current_Set() == kSetCT05) {
Actor_Force_Stop_Walking(kActorMcCoy); Actor_Force_Stop_Walking(kActorMcCoy);
Player_Loses_Control(); Player_Loses_Control();
@ -123,24 +135,26 @@ void AIScriptGordo::CompletedMovementTrack() {
Player_Gains_Control(); Player_Gains_Control();
} }
Actor_Clue_Acquire(kActorGordo, kClueMcCoyRetiredZuben, true, -1); Actor_Clue_Acquire(kActorGordo, kClueMcCoyRetiredZuben, true, -1);
Actor_Set_Goal_Number(kActorGordo, 4); Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeaveCT05);
return;// true; return;// true;
} }
if (Actor_Query_Goal_Number(kActorGordo) == 4) { if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoLeaveCT05) {
Actor_Set_Goal_Number(kActorGordo, 5); Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeftCT05);
return;// true; return;// true;
} }
if (Actor_Query_Goal_Number(kActorGordo) == 93) { if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoWalkToHowieLee) {
Actor_Set_Immunity_To_Obstacles(kActorGordo, false); Actor_Set_Immunity_To_Obstacles(kActorGordo, false);
Player_Gains_Control(); Player_Gains_Control();
Actor_Set_Goal_Number(kActorGordo, 92); Actor_Set_Goal_Number(kActorGordo, kGoalGordoBidFarewellToHowieLee);
return;// true; return;// true;
} }
if (Actor_Query_Goal_Number(kActorGordo) > 100 && Actor_Query_Goal_Number(kActorGordo) < 200) { if (Actor_Query_Goal_Number(kActorGordo) > 100
Actor_Set_Goal_Number(kActorGordo, 100); && Actor_Query_Goal_Number(kActorGordo) < 200
) {
Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkAround);
return;// true; return;// true;
} }
@ -188,8 +202,10 @@ void AIScriptGordo::ReceivedClue(int clueId, int fromActorId) {
void AIScriptGordo::ClickedByPlayer() { void AIScriptGordo::ClickedByPlayer() {
int goal = Actor_Query_Goal_Number(kActorGordo); int goal = Actor_Query_Goal_Number(kActorGordo);
if (goal == 101 || goal == 102) { if (goal == kGoalGordoGoToDNARow
sub_40FD00(); || goal == kGoalGordoGoToChinaTown
) {
McCoyTalkWithGordo();
} else if (goal == 260) { } else if (goal == 260) {
Actor_Face_Actor(kActorMcCoy, kActorGordo, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
Actor_Says(kActorMcCoy, 8600, 11); Actor_Says(kActorMcCoy, 8600, 11);
@ -284,77 +300,80 @@ int AIScriptGordo::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
} }
bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) { bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
int rnd;
switch (newGoalNumber) { switch (newGoalNumber) {
case 0: case kGoalGordoDefault:
Actor_Put_In_Set(kActorGordo, kSetCT01_CT12); Actor_Put_In_Set(kActorGordo, kSetCT01_CT12);
Actor_Set_At_XYZ(kActorGordo, -308.44f, -12.5f, 442.78f, 256); Actor_Set_At_XYZ(kActorGordo, -308.44f, -12.5f, 442.78f, 256);
Actor_Change_Animation_Mode(kActorGordo, 53); Actor_Change_Animation_Mode(kActorGordo, 53);
break; break;
case 3: case kGoalGordoWalkThroughCT05:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 119, 0); AI_Movement_Track_Append(kActorGordo, 119, 0);
AI_Movement_Track_Append(kActorGordo, 118, 0); AI_Movement_Track_Append(kActorGordo, 118, 0);
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 4: case kGoalGordoLeaveCT05:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 119, 0); AI_Movement_Track_Append(kActorGordo, 119, 0);
AI_Movement_Track_Append(kActorGordo, 33, 1); AI_Movement_Track_Append(kActorGordo, 33, 1);
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 90: case kGoalGordoGetUpCT01:
Game_Flag_Set(kFlagCT01McCoyTalkedToGordo); Game_Flag_Set(kFlagCT01GordoTalk);
Actor_Set_Goal_Number(kActorGordo, 99); Actor_Set_Goal_Number(kActorGordo, 99);
Actor_Change_Animation_Mode(kActorGordo, 29); Actor_Change_Animation_Mode(kActorGordo, 29);
break; break;
case 91: case kGoalGordoWalkOutFromCT01:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 43, 0); AI_Movement_Track_Append(kActorGordo, 43, 0);
AI_Movement_Track_Append(kActorGordo, 33, 1); AI_Movement_Track_Append(kActorGordo, 33, 1);
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 92: case kGoalGordoBidFarewellToHowieLee:
Actor_Face_Actor(kActorGordo, kActorHowieLee, true); Actor_Face_Actor(kActorGordo, kActorHowieLee, true);
Actor_Says(kActorGordo, 0, 13); Actor_Says(kActorGordo, 0, 13);
Actor_Says(kActorGordo, 10, 16); Actor_Says(kActorGordo, 10, 16);
Actor_Set_Goal_Number(kActorGordo, 91); Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkOutFromCT01);
Player_Gains_Control(); Player_Gains_Control();
break; break;
case 93: case kGoalGordoWalkToHowieLee:
Player_Loses_Control(); Player_Loses_Control();
Actor_Set_Immunity_To_Obstacles(kActorGordo, true); Actor_Set_Immunity_To_Obstacles(kActorGordo, true);
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 100, 0); AI_Movement_Track_Append(kActorGordo, 100, 0);
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 100: { case kGoalGordoWalkAround:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
_animationState = 0; _animationState = 0;
_animationFrame = 0; _animationFrame = 0;
_animationStateNext = 0; _animationStateNext = 0;
sub_41117C(); sub_41117C();
int rnd = Random_Query(1, 4); rnd = Random_Query(1, 4);
if (Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1) || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)) { if (Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
rnd = Random_Query(4, 5); || Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
} ) {
switch (rnd) { rnd = Random_Query(4, 5);
case 1: }
case 2: switch (rnd) {
Actor_Set_Goal_Number(kActorGordo, 101); case 1:
break; case 2:
case 3: Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToDNARow);
Actor_Set_Goal_Number(kActorGordo, 102); break;
break; case 3:
case 4: Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToChinaTown);
Actor_Set_Goal_Number(kActorGordo, 103); break;
break; case 4:
case 5: Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToFreeSlotHAGJ);
Actor_Set_Goal_Number(kActorGordo, 104); break;
break; case 5:
} Actor_Set_Goal_Number(kActorGordo, kGoalGordoGoToFreeSlotAH);
break;
} }
break; break;
case 101: case kGoalGordoGoToDNARow:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
if (Random_Query(1, 2) == 1) { if (Random_Query(1, 2) == 1) {
AI_Movement_Track_Append(kActorGordo, 343, 5); AI_Movement_Track_Append(kActorGordo, 343, 5);
@ -378,7 +397,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
} }
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 102: case kGoalGordoGoToChinaTown:
if (Random_Query(1, 3) == 1) { if (Random_Query(1, 3) == 1) {
AI_Movement_Track_Append(kActorGordo, 54, 1); AI_Movement_Track_Append(kActorGordo, 54, 1);
AI_Movement_Track_Append(kActorGordo, 56, 0); AI_Movement_Track_Append(kActorGordo, 56, 0);
@ -391,7 +410,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorGordo, 40, 15); AI_Movement_Track_Append(kActorGordo, 40, 15);
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 103: case kGoalGordoGoToFreeSlotHAGJ:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 40, Random_Query(15, 45)); AI_Movement_Track_Append(kActorGordo, 40, Random_Query(15, 45));
if (Game_Flag_Query(kFlagGordoIsReplicant)) { if (Game_Flag_Query(kFlagGordoIsReplicant)) {
@ -403,7 +422,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorGordo, 42, Random_Query(10, 20)); AI_Movement_Track_Append(kActorGordo, 42, Random_Query(10, 20));
AI_Movement_Track_Repeat(kActorGordo); AI_Movement_Track_Repeat(kActorGordo);
break; break;
case 104: case kGoalGordoGoToFreeSlotAH:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
AI_Movement_Track_Append(kActorGordo, 33, Random_Query(15, 45)); AI_Movement_Track_Append(kActorGordo, 33, Random_Query(15, 45));
if (!Game_Flag_Query(kFlagGordoIsReplicant)) { if (!Game_Flag_Query(kFlagGordoIsReplicant)) {
@ -413,7 +432,10 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break; break;
case 200: case 200:
if (Global_Variable_Query(40) == 2) { if (Global_Variable_Query(40) == 2) {
if (Game_Flag_Query(593) && Game_Flag_Query(591) && Player_Query_Current_Scene() != kSceneNR02) { if (Game_Flag_Query(593)
&& Game_Flag_Query(591)
&& Player_Query_Current_Scene() != kSceneNR02
) {
Actor_Set_Goal_Number(kActorGordo, 201); Actor_Set_Goal_Number(kActorGordo, 201);
} else { } else {
Actor_Set_Goal_Number(kActorGordo, 225); Actor_Set_Goal_Number(kActorGordo, 225);
@ -571,7 +593,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Says(kActorMcCoy, 3080, 15); Actor_Says(kActorMcCoy, 3080, 15);
Actor_Says(kActorGordo, 200, 15); Actor_Says(kActorGordo, 200, 15);
Actor_Says(kActorMcCoy, 3085, 15); Actor_Says(kActorMcCoy, 3085, 15);
sub_410590(); dialogueWithGordo2();
break; break;
case 243: case 243:
AI_Movement_Track_Flush(kActorGordo); AI_Movement_Track_Flush(kActorGordo);
@ -749,7 +771,7 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
_animationState = 0; _animationState = 0;
_animationFrame = 0; _animationFrame = 0;
Actor_Change_Animation_Mode(kActorGordo, kAnimationModeIdle); Actor_Change_Animation_Mode(kActorGordo, kAnimationModeIdle);
Actor_Set_Goal_Number(kActorGordo, 93); Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkToHowieLee);
} }
break; break;
case 4: case 4:
@ -1406,66 +1428,10 @@ void AIScriptGordo::FledCombat() {
// return false; // return false;
} }
void AIScriptGordo::sub_40FD00() { void AIScriptGordo::McCoyTalkWithGordo() {
Player_Loses_Control(); Player_Loses_Control();
Actor_Face_Actor(kActorMcCoy, kActorGordo, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
if (Game_Flag_Query(543)) { if (!Game_Flag_Query(kFlagGordoTalk1)) {
if (!Game_Flag_Query(kFlagDR05BombExploded)
|| Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
|| Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
) {
if (Game_Flag_Query(544)) {
switch(Random_Query(1, 4)) {
case 1:
Actor_Says(kActorMcCoy, 6460, 13);
break;
case 2:
Actor_Says(kActorMcCoy, 6550, 14);
break;
case 3:
Actor_Says(kActorMcCoy, 365, 12);
break;
case 4:
Actor_Says(kActorMcCoy, 525, 12);
break;
}
} else {
Actor_Says(kActorMcCoy, 6490, 14);
AI_Movement_Track_Pause(kActorGordo);
Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false);
Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
Actor_Says(kActorGordo, 990, 13);
Actor_Says(kActorGordo, 1000, 15);
Game_Flag_Set(544);
AI_Movement_Track_Unpause(kActorGordo);
}
} else {
Actor_Says(kActorMcCoy, 6485, 12);
AI_Movement_Track_Pause(kActorGordo);
Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false);
Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
if (Game_Flag_Query(kFlagGordoIsReplicant)) {
Actor_Says(kActorGordo, 1010, 12);
Actor_Says(kActorMcCoy, 6495, 14);
Actor_Says(kActorGordo, 1020, 13);
Actor_Says(kActorMcCoy, 6500, 14);
Actor_Says(kActorGordo, 1030, 15);
Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, false, kActorGordo);
} else {
Actor_Says(kActorGordo, 1040, 12);
Actor_Says(kActorGordo, 1050, 13);
Actor_Says(kActorMcCoy, 6505, 14);
Actor_Says(kActorGordo, 1060, 13);
Actor_Says(kActorGordo, 1070, 14);
Actor_Says(kActorMcCoy, 6510, 16);
Actor_Says(kActorGordo, 1080, 15);
Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo);
}
AI_Movement_Track_Unpause(kActorGordo);
}
} else {
Actor_Says(kActorMcCoy, 6460, 12); Actor_Says(kActorMcCoy, 6460, 12);
AI_Movement_Track_Pause(kActorGordo); AI_Movement_Track_Pause(kActorGordo);
Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 36, false, false); Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 36, false, false);
@ -1485,8 +1451,61 @@ void AIScriptGordo::sub_40FD00() {
Actor_Says(kActorGordo, 960, 15); Actor_Says(kActorGordo, 960, 15);
Actor_Says(kActorGordo, 970, 12); Actor_Says(kActorGordo, 970, 12);
AI_Movement_Track_Unpause(kActorGordo); AI_Movement_Track_Unpause(kActorGordo);
Game_Flag_Set(543); Game_Flag_Set(kFlagGordoTalk1);
} else if ( Game_Flag_Query(kFlagDR05BombExploded)
&& !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1)
&& !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2)
) {
Actor_Says(kActorMcCoy, 6485, 12);
AI_Movement_Track_Pause(kActorGordo);
Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false);
Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
if (Game_Flag_Query(kFlagGordoIsReplicant)) {
Actor_Says(kActorGordo, 1010, 12);
Actor_Says(kActorMcCoy, 6495, 14);
Actor_Says(kActorGordo, 1020, 13);
Actor_Says(kActorMcCoy, 6500, 14);
Actor_Says(kActorGordo, 1030, 15);
Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview1, false, kActorGordo);
} else {
Actor_Says(kActorGordo, 1040, 12);
Actor_Says(kActorGordo, 1050, 13);
Actor_Says(kActorMcCoy, 6505, 14);
Actor_Says(kActorGordo, 1060, 13);
Actor_Says(kActorGordo, 1070, 14);
Actor_Says(kActorMcCoy, 6510, 16);
Actor_Says(kActorGordo, 1080, 15);
Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo);
}
AI_Movement_Track_Unpause(kActorGordo);
} else if (!Game_Flag_Query(kFlagGordoTalk2)) {
Actor_Says(kActorMcCoy, 6490, 14);
AI_Movement_Track_Pause(kActorGordo);
Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false);
Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
Actor_Says(kActorGordo, 990, 13);
Actor_Says(kActorGordo, 1000, 15);
Game_Flag_Set(kFlagGordoTalk2);
AI_Movement_Track_Unpause(kActorGordo);
} else {
switch(Random_Query(1, 4)) {
case 1:
Actor_Says(kActorMcCoy, 6460, 13);
break;
case 2:
Actor_Says(kActorMcCoy, 6550, 14);
break;
case 3:
Actor_Says(kActorMcCoy, 365, 12);
break;
case 4:
Actor_Says(kActorMcCoy, 525, 12);
break;
}
} }
return Player_Gains_Control(); return Player_Gains_Control();
} }
@ -1506,21 +1525,23 @@ void AIScriptGordo::sub_4103B8() {
Actor_Says(kActorGordo, 350, 13); Actor_Says(kActorGordo, 350, 13);
Actor_Says(kActorMcCoy, 3225, 18); Actor_Says(kActorMcCoy, 3225, 18);
Player_Gains_Control(); Player_Gains_Control();
sub_41090C(); dialogueWithGordo1();
Player_Loses_Control(); Player_Loses_Control();
Game_Flag_Set(561); Game_Flag_Set(561);
Actor_Face_Heading(kActorGordo, 506, false); Actor_Face_Heading(kActorGordo, 506, false);
Actor_Change_Animation_Mode(kActorGordo, 23); Actor_Change_Animation_Mode(kActorGordo, 23);
} }
void AIScriptGordo::sub_410590() { void AIScriptGordo::dialogueWithGordo2() {
Music_Stop(5); Music_Stop(5);
Dialogue_Menu_Clear_List(); Dialogue_Menu_Clear_List();
DM_Add_To_List_Never_Repeat_Once_Selected(820, -1, 5, 7); DM_Add_To_List_Never_Repeat_Once_Selected(820, -1, 5, 7);
DM_Add_To_List_Never_Repeat_Once_Selected(830, 7, 5, -1); DM_Add_To_List_Never_Repeat_Once_Selected(830, 7, 5, -1);
Dialogue_Menu_Appear(320, 240); Dialogue_Menu_Appear(320, 240);
int answer = Dialogue_Menu_Query_Input(); int answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear(); Dialogue_Menu_Disappear();
if (answer == 820) { if (answer == 820) {
Actor_Says(kActorMcCoy, 3090, 16); Actor_Says(kActorMcCoy, 3090, 16);
Actor_Says(kActorMcCoy, 3095, 15); Actor_Says(kActorMcCoy, 3095, 15);
@ -1535,8 +1556,8 @@ void AIScriptGordo::sub_410590() {
Game_Flag_Set(251); Game_Flag_Set(251);
Game_Flag_Set(592); Game_Flag_Set(592);
Scene_Exits_Enable(); Scene_Exits_Enable();
Game_Flag_Reset(kFlagMcCoyAtNRxx); Game_Flag_Reset(kFlagMcCoyInNightclubRow);
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Set_Enter(kSetPS09, kScenePS09); Set_Enter(kSetPS09, kScenePS09);
} else if (answer == 830) { } else if (answer == 830) {
Actor_Says(kActorMcCoy, 3100, 16); Actor_Says(kActorMcCoy, 3100, 16);
@ -1559,11 +1580,13 @@ void AIScriptGordo::sub_410590() {
} }
} }
void AIScriptGordo::sub_41090C() { void AIScriptGordo::dialogueWithGordo1() {
Dialogue_Menu_Clear_List(); Dialogue_Menu_Clear_List();
DM_Add_To_List_Never_Repeat_Once_Selected(760, 2, 5, 6); DM_Add_To_List_Never_Repeat_Once_Selected(760, 2, 5, 6);
DM_Add_To_List_Never_Repeat_Once_Selected(770, 6, 3, 1); DM_Add_To_List_Never_Repeat_Once_Selected(770, 6, 3, 1);
if (Actor_Clue_Query(kActorMcCoy, kClueDektorasDressingRoom) || Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)) { if (Actor_Clue_Query(kActorMcCoy, kClueDektorasDressingRoom)
|| Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)
) {
DM_Add_To_List_Never_Repeat_Once_Selected(780, 5, 5, 5); DM_Add_To_List_Never_Repeat_Once_Selected(780, 5, 5, 5);
} }
if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) { if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
@ -1573,9 +1596,11 @@ void AIScriptGordo::sub_41090C() {
DM_Add_To_List_Never_Repeat_Once_Selected(800, -1, 4, 8); DM_Add_To_List_Never_Repeat_Once_Selected(800, -1, 4, 8);
} }
Dialogue_Menu_Add_DONE_To_List(810); Dialogue_Menu_Add_DONE_To_List(810);
Dialogue_Menu_Appear(320, 240); Dialogue_Menu_Appear(320, 240);
int answer = Dialogue_Menu_Query_Input(); int answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear(); Dialogue_Menu_Disappear();
switch (answer) { switch (answer) {
case 760: case 760:
Actor_Says(kActorMcCoy, 3230, kAnimationModeTalk); Actor_Says(kActorMcCoy, 3230, kAnimationModeTalk);
@ -1651,6 +1676,7 @@ void AIScriptGordo::sub_41090C() {
} }
void AIScriptGordo::sub_41117C() { void AIScriptGordo::sub_41117C() {
// this has no real use as _animationState is always 0
switch (_animationState) { switch (_animationState) {
case 0: case 0:
break; break;

View file

@ -183,7 +183,7 @@ bool AIScriptHolloway::GoalChanged(int currentGoalNumber, int newGoalNumber) {
if (Global_Variable_Query(40) != 1) { if (Global_Variable_Query(40) != 1) {
Player_Gains_Control(); Player_Gains_Control();
} }
Game_Flag_Set(334); Game_Flag_Set(kFlagUG03toUG04);
Set_Enter(kSetUG04, kSceneUG04); Set_Enter(kSetUG04, kSceneUG04);
break; break;

View file

@ -55,7 +55,7 @@ bool AIScriptHowieLee::Update() {
Actor_Set_Goal_Number(kActorHowieLee, 1); Actor_Set_Goal_Number(kActorHowieLee, 1);
} }
if ( Game_Flag_Query(kFlagMcCoyAtCTxx) if ( Game_Flag_Query(kFlagMcCoyInChinaTown)
&& !Actor_Query_In_Set(kActorHowieLee, kSetCT01_CT12) && !Actor_Query_In_Set(kActorHowieLee, kSetCT01_CT12)
) { ) {
AI_Movement_Track_Flush(kActorHowieLee); AI_Movement_Track_Flush(kActorHowieLee);
@ -64,8 +64,8 @@ bool AIScriptHowieLee::Update() {
} }
if ( Actor_Query_Goal_Number(kActorHowieLee) == 1 if ( Actor_Query_Goal_Number(kActorHowieLee) == 1
&& Game_Flag_Query(kFlagBoughtHowieLeeFood) && Game_Flag_Query(kFlagCT01BoughtHowieLeeFood)
&& !Game_Flag_Query(kFlagMcCoyAtCTxx) && !Game_Flag_Query(kFlagMcCoyInChinaTown)
) { ) {
Actor_Set_Goal_Number(kActorHowieLee, 4); Actor_Set_Goal_Number(kActorHowieLee, 4);
return true; return true;
@ -124,20 +124,20 @@ void AIScriptHowieLee::EnteredScene(int sceneId) {
if (Actor_Query_Goal_Number(kActorHowieLee) == 4 if (Actor_Query_Goal_Number(kActorHowieLee) == 4
&& Actor_Query_In_Set(kActorHowieLee, kSetCT03_CT04) && Actor_Query_In_Set(kActorHowieLee, kSetCT03_CT04)
) { ) {
if ( Game_Flag_Query(kFlagMcCoyKilledHomeless) if ( Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& !Game_Flag_Query(kFlagHomelessBodyInDumpster) && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
&& !Game_Flag_Query(kFlagHomelessBodyFound) && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
) { ) {
Game_Flag_Set(kFlagHomelessBodyFound); Game_Flag_Set(kFlagCT04HomelessBodyFound);
// return false; // return false;
} }
if (!Game_Flag_Query(kFlagMcCoyKilledHomeless) if (!Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& Game_Flag_Query(kFlagHomelessBodyInDumpster) && Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
&& !Game_Flag_Query(kFlagHomelessBodyFound) && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
&& Random_Query(1, 10) == 1 && Random_Query(1, 10) == 1
) { ) {
Game_Flag_Set(kFlagHomelessBodyFound); Game_Flag_Set(kFlagCT04HomelessBodyFound);
// return true; // return true;
} }
// return false; // return false;

View file

@ -111,8 +111,8 @@ bool AIScriptInsectDealer::GoalChanged(int currentGoalNumber, int newGoalNumber)
Actor_Put_In_Set(kActorInsectDealer, kSetFreeSlotH); Actor_Put_In_Set(kActorInsectDealer, kSetFreeSlotH);
Actor_Set_At_Waypoint(kActorInsectDealer, 40, 0); Actor_Set_At_Waypoint(kActorInsectDealer, 40, 0);
if (!Game_Flag_Query(374)) { if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Game_Flag_Set(374); Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
Item_Remove_From_World(kItemScrorpions); Item_Remove_From_World(kItemScrorpions);
} }
} }

View file

@ -163,7 +163,7 @@ void AIScriptIzo::ClickedByPlayer() {
Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
Actor_Says(kActorIzo, 700, 17); Actor_Says(kActorIzo, 700, 17);
Actor_Says(kActorMcCoy, 5465, 14); Actor_Says(kActorMcCoy, 5465, 14);
someDialog(); dialogueWithIzo();
} }
if (Actor_Query_Goal_Number(kActorIzo) == kGoalIzoRC03Walk) { if (Actor_Query_Goal_Number(kActorIzo) == kGoalIzoRC03Walk) {
@ -245,7 +245,7 @@ void AIScriptIzo::Retired(int byActorId) {
Player_Loses_Control(); Player_Loses_Control();
Delay(2000); Delay(2000);
Player_Set_Combat_Mode(0); Player_Set_Combat_Mode(0);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, 1, 0, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579); Game_Flag_Set(579);
@ -1008,7 +1008,7 @@ void AIScriptIzo::FledCombat() {
// return false; // return false;
} }
void AIScriptIzo::someDialog() { void AIScriptIzo::dialogueWithIzo() {
Dialogue_Menu_Clear_List(); Dialogue_Menu_Clear_List();
DM_Add_To_List_Never_Repeat_Once_Selected(0, 7, 4, -1); // MOTIVES DM_Add_To_List_Never_Repeat_Once_Selected(0, 7, 4, -1); // MOTIVES

View file

@ -70,11 +70,11 @@ bool AIScriptKlein::Update() {
} }
if ( Player_Query_Current_Scene() == kScenePS07 if ( Player_Query_Current_Scene() == kScenePS07
&& Actor_Query_Friendliness_To_Other(kActorKlein, kActorMcCoy) < 35 && Actor_Query_Friendliness_To_Other(kActorKlein, kActorMcCoy) < 35
&& !Game_Flag_Query(kFlagKleinInsulted) && !Game_Flag_Query(kFlagPS07KleinInsulted)
) { ) {
AI_Countdown_Timer_Reset(kActorKlein, 2); AI_Countdown_Timer_Reset(kActorKlein, 2);
AI_Countdown_Timer_Start(kActorKlein, 2, 5); AI_Countdown_Timer_Start(kActorKlein, 2, 5);
Game_Flag_Set(kFlagKleinInsulted); Game_Flag_Set(kFlagPS07KleinInsulted);
return true; return true;
} }
if (Actor_Query_Goal_Number(kActorKlein) == 7) { if (Actor_Query_Goal_Number(kActorKlein) == 7) {
@ -92,8 +92,8 @@ bool AIScriptKlein::Update() {
void AIScriptKlein::TimerExpired(int timer) { void AIScriptKlein::TimerExpired(int timer) {
if (timer == 2) { if (timer == 2) {
if ( Game_Flag_Query(kFlagKleinInsulted) if ( Game_Flag_Query(kFlagPS07KleinInsulted)
&& !Game_Flag_Query(kFlagKleinInsultedTalk) && !Game_Flag_Query(kFlagPS07KleinInsultedTalk)
&& Actor_Query_Is_In_Current_Set(kActorKlein) && Actor_Query_Is_In_Current_Set(kActorKlein)
) { ) {
Actor_Face_Actor(kActorKlein, kActorMcCoy, true); Actor_Face_Actor(kActorKlein, kActorMcCoy, true);
@ -101,7 +101,7 @@ void AIScriptKlein::TimerExpired(int timer) {
Actor_Says(kActorMcCoy, 4120, kAnimationModeTalk); Actor_Says(kActorMcCoy, 4120, kAnimationModeTalk);
Actor_Says(kActorKlein, 20, kAnimationModeTalk); Actor_Says(kActorKlein, 20, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 4125, kAnimationModeTalk); Actor_Says(kActorMcCoy, 4125, kAnimationModeTalk);
Game_Flag_Set(kFlagKleinInsultedTalk); Game_Flag_Set(kFlagPS07KleinInsultedTalk);
Actor_Set_Goal_Number(kActorKlein, 4); Actor_Set_Goal_Number(kActorKlein, 4);
} else { } else {
Actor_Says(kActorKlein, 10, kAnimationModeTalk); Actor_Says(kActorKlein, 10, kAnimationModeTalk);

View file

@ -750,7 +750,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
case 44: case 44:
*animation = 30; *animation = 30;
if (_animationFrame++ == 127) { if (_animationFrame++ == 127) {
Game_Flag_Set(325); Game_Flag_Set(kFlagCT04BodyDumped);
} }
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(30)) { if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(30)) {
*animation = 19; *animation = 19;
@ -807,7 +807,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
} else if (_animationFrame == 4) { } else if (_animationFrame == 4) {
Sound_Right_Footstep_Walk(kActorMcCoy); Sound_Right_Footstep_Walk(kActorMcCoy);
} }
if (Game_Flag_Query(359)) { if (Game_Flag_Query(kFlagHF05toHF07)) {
sub_4059D0(-0.2f); sub_4059D0(-0.2f);
} }
break; break;
@ -823,7 +823,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
} else if (_animationFrame == 3) { } else if (_animationFrame == 3) {
Sound_Right_Footstep_Walk(kActorMcCoy); Sound_Right_Footstep_Walk(kActorMcCoy);
} }
if (Game_Flag_Query(358)) { if (Game_Flag_Query(kFlagHF07toHF05)) {
sub_405940(0.5f); sub_405940(0.5f);
} }
break; break;
@ -839,7 +839,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
} else if (_animationFrame == 3) { } else if (_animationFrame == 3) {
Sound_Right_Footstep_Walk(kActorMcCoy); Sound_Right_Footstep_Walk(kActorMcCoy);
} }
if (Game_Flag_Query(359)) { if (Game_Flag_Query(kFlagHF05toHF07)) {
sub_4059D0(-0.2f); sub_4059D0(-0.2f);
} }
break; break;
@ -855,7 +855,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
} else if (_animationFrame == 4) { } else if (_animationFrame == 4) {
Sound_Right_Footstep_Walk(kActorMcCoy); Sound_Right_Footstep_Walk(kActorMcCoy);
} }
if (Game_Flag_Query(358)) { if (Game_Flag_Query(kFlagHF07toHF05)) {
sub_405940(0.5f); sub_405940(0.5f);
} }
break; break;

View file

@ -38,11 +38,11 @@ void AIScriptMoraji::Initialize() {
_var1 = 1; _var1 = 1;
_var2 = 0; _var2 = 0;
Actor_Set_Goal_Number(kActorMoraji, 0); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDefault);
} }
bool AIScriptMoraji::Update() { bool AIScriptMoraji::Update() {
if ( Actor_Query_Goal_Number(kActorMoraji) == 0 if ( Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
&& Player_Query_Current_Scene() == kSceneDR05 && Player_Query_Current_Scene() == kSceneDR05
&& !Game_Flag_Query(kFlagDR05BombActivated) && !Game_Flag_Query(kFlagDR05BombActivated)
) { ) {
@ -52,21 +52,23 @@ bool AIScriptMoraji::Update() {
return true; return true;
} }
if (Actor_Query_Goal_Number(kActorMoraji) == 19) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiScream) {
Actor_Says(kActorMoraji, 80, 13); Actor_Says(kActorMoraji, 80, 13);
_animationState = 9; _animationState = 9;
_animationFrame = -1; _animationFrame = -1;
Actor_Set_Goal_Number(kActorMoraji, 18); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiGetUp);
} }
return false; return false;
} }
void AIScriptMoraji::TimerExpired(int timer) { void AIScriptMoraji::TimerExpired(int timer) {
if (timer == 2) { if (timer == 2) {
AI_Countdown_Timer_Reset(kActorMoraji, 2); AI_Countdown_Timer_Reset(kActorMoraji, 2);
if (Actor_Query_Goal_Number(kActorMoraji) != 20
&& Actor_Query_Goal_Number(kActorMoraji) != 21 if (Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiJump
&& Actor_Query_Goal_Number(kActorMoraji) != 99 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown
&& Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished
) { ) {
Game_Flag_Set(kFlagDR05BombWillExplode); Game_Flag_Set(kFlagDR05BombWillExplode);
} }
@ -77,7 +79,7 @@ void AIScriptMoraji::TimerExpired(int timer) {
} }
void AIScriptMoraji::CompletedMovementTrack() { void AIScriptMoraji::CompletedMovementTrack() {
if (Actor_Query_Goal_Number(kActorMoraji) == 11) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiRunOut) {
AI_Countdown_Timer_Reset(kActorMoraji, 2); AI_Countdown_Timer_Reset(kActorMoraji, 2);
Game_Flag_Set(kFlagDR05BombWillExplode); Game_Flag_Set(kFlagDR05BombWillExplode);
_animationState = 3; _animationState = 3;
@ -117,17 +119,16 @@ void AIScriptMoraji::ShotAtAndMissed() {
bool AIScriptMoraji::ShotAtAndHit() { bool AIScriptMoraji::ShotAtAndHit() {
if (Actor_Query_Goal_Number(kActorMoraji)) { if (Actor_Query_Goal_Number(kActorMoraji)) {
if (Actor_Query_Goal_Number(kActorMoraji) == 21) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
Game_Flag_Set(713); Game_Flag_Set(kFlagDR04McCoyShotMoraji);
Actor_Set_Goal_Number(kActorMoraji, 22); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
Actor_Set_Goal_Number(kActorOfficerGrayford, 101); Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
return true; return true;
} else { } else {
return false; return false;
} }
} else { } else {
Actor_Set_Goal_Number(kActorMoraji, 5); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiShot);
return true; return true;
} }
} }
@ -142,24 +143,27 @@ int AIScriptMoraji::GetFriendlinessModifierIfGetsClue(int otherActorId, int clue
bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) { bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) { switch (newGoalNumber) {
case 0: case kGoalMorajiDefault:
Actor_Put_In_Set(kActorMoraji, kSetDR05); Actor_Put_In_Set(kActorMoraji, kSetDR05);
Actor_Set_At_XYZ(kActorMoraji, 50.0f, 0.30f, 35.0f, 414); Actor_Set_At_XYZ(kActorMoraji, 50.0f, 0.30f, 35.0f, 414);
Actor_Set_Targetable(kActorMoraji, 1); Actor_Set_Targetable(kActorMoraji, true);
return false; return false;
case 5:
Actor_Set_Targetable(kActorMoraji, 0); case kGoalMorajiShot:
Actor_Set_Targetable(kActorMoraji, false);
Sound_Play(4, 100, 0, 0, 50); Sound_Play(4, 100, 0, 0, 50);
_animationState = 10; _animationState = 10;
_animationFrame = 0; _animationFrame = 0;
Actor_Retired_Here(kActorMoraji, 60, 16, 1, -1); Actor_Retired_Here(kActorMoraji, 60, 16, true, -1);
return true; return true;
case 10:
Actor_Set_Targetable(kActorMoraji, 0); case kGoalMorajiFreed:
Actor_Set_Targetable(kActorMoraji, false);
_animationState = 8; _animationState = 8;
_animationFrame = 1; _animationFrame = 1;
return true; return true;
case 11:
case kGoalMorajiRunOut:
_animationState = 3; _animationState = 3;
_animationFrame = 0; _animationFrame = 0;
AI_Movement_Track_Flush(kActorMoraji); AI_Movement_Track_Flush(kActorMoraji);
@ -169,43 +173,47 @@ bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append_Run(kActorMoraji, 98, 0); AI_Movement_Track_Append_Run(kActorMoraji, 98, 0);
AI_Movement_Track_Repeat(kActorMoraji); AI_Movement_Track_Repeat(kActorMoraji);
return true; return true;
case 20:
case kGoalMorajiJump:
_animationState = 11; _animationState = 11;
return true; return true;
case 21:
case kGoalMorajiLayDown:
Actor_Retired_Here(kActorMoraji, 60, 16, 0, -1); Actor_Retired_Here(kActorMoraji, 60, 16, 0, -1);
Actor_Set_Targetable(kActorMoraji, 1); Actor_Set_Targetable(kActorMoraji, true);
return true; return true;
case 22:
case kGoalMorajiDie:
_animationFrame = -1; _animationFrame = -1;
_animationState = 13; _animationState = 13;
return true; return true;
case 23:
Actor_Set_Targetable(kActorMoraji, 0); case kGoalMorajiDead:
Actor_Set_Targetable(kActorMoraji, false);
_animationState = 14; _animationState = 14;
Actor_Retired_Here(kActorMoraji, 60, 16, 1, -1); Actor_Retired_Here(kActorMoraji, 60, 16, 1, -1);
return true; return true;
break; break;
case 30:
case kGoalMorajiChooseFate:
if (Player_Query_Current_Scene() == kSceneDR05) { if (Player_Query_Current_Scene() == kSceneDR05) {
Game_Flag_Set(kFlagDR05BombExplosionView); Game_Flag_Set(kFlagDR05ViewExplosion);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR04); Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
} else { } else {
if (Actor_Query_In_Set(kActorMoraji, kSetDR05)) { if (Actor_Query_In_Set(kActorMoraji, kSetDR05)) {
Actor_Set_Goal_Number(kActorMoraji, 99); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished);
} else { } else {
Actor_Set_Goal_Number(kActorMoraji, 20); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiJump);
} }
Game_Flag_Set(kFlagMorajiExploded); Game_Flag_Set(kFlagDR05JustExploded);
} }
return true; return true;
case 99:
case kGoalMorajiPerished:
AI_Movement_Track_Flush(kActorMoraji); AI_Movement_Track_Flush(kActorMoraji);
AI_Movement_Track_Append(kActorMoraji, 41, 0); AI_Movement_Track_Append(kActorMoraji, 41, 0);
AI_Movement_Track_Repeat(kActorMoraji); AI_Movement_Track_Repeat(kActorMoraji);
return true; return true;
default:
break;
} }
return false; return false;
@ -219,7 +227,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
_var2--; _var2--;
} else { } else {
_animationFrame += _var1; _animationFrame += _var1;
if (!Random_Query(0, 10)) { if (Random_Query(0, 10) == 0) {
_var1 = -_var1; _var1 = -_var1;
} }
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) { if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
@ -291,7 +299,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
_animationFrame = 0; _animationFrame = 0;
_animationState = 0; _animationState = 0;
*animation = 733; *animation = 733;
Actor_Set_Goal_Number(kActorMoraji, 19); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiScream);
} }
if (_animationFrame == 6) { if (_animationFrame == 6) {
Ambient_Sounds_Play_Sound(488, 69, 0, 0, 20); Ambient_Sounds_Play_Sound(488, 69, 0, 0, 20);
@ -305,7 +313,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
_animationFrame = 0; _animationFrame = 0;
_animationState = 3; _animationState = 3;
*animation = 732; *animation = 732;
Actor_Set_Goal_Number(kActorMoraji, 11); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiRunOut);
} }
break; break;
@ -320,7 +328,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
*animation = 739; *animation = 739;
_animationFrame++; _animationFrame++;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(739)) { if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(739)) {
Actor_Set_Goal_Number(kActorMoraji, 21); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiLayDown);
_animationFrame = 0; _animationFrame = 0;
_animationState = 12; _animationState = 12;
*animation = 740; *animation = 740;
@ -351,7 +359,7 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
_animationFrame++; _animationFrame++;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(741) - 1) { if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(741) - 1) {
_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1; _animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
Actor_Set_Goal_Number(kActorMoraji, 23); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDead);
} }
break; break;
@ -370,67 +378,67 @@ bool AIScriptMoraji::UpdateAnimation(int *animation, int *frame) {
bool AIScriptMoraji::ChangeAnimationMode(int mode) { bool AIScriptMoraji::ChangeAnimationMode(int mode) {
switch (mode) { switch (mode) {
case 0: case kAnimationModeIdle:
if (_animationState != 12 && Actor_Query_Goal_Number(kActorMoraji) != 11) { if (_animationState != 12
&& Actor_Query_Goal_Number(kActorMoraji) != 11
) {
_animationState = 0; _animationState = 0;
_animationFrame = 0; _animationFrame = 0;
} }
return 1; break;
case 1: case kAnimationModeWalk:
_animationState = 2; _animationState = 2;
_animationFrame = 0; _animationFrame = 0;
return 1; break;
case 2: case kAnimationModeRun:
if (_animationState) { if (_animationState == 0) {
if (_animationState != 3 || _animationState > 3) {
_animationState = 3;
_animationFrame = 0;
}
} else {
_animationState = 1; _animationState = 1;
_animationStateNext = 3; _animationStateNext = 3;
_animationNext = 732; _animationNext = 732;
} else if (_animationState != 3) {
_animationState = 3;
_animationFrame = 0;
} }
break; break;
case 3: case 3:
if (_animationState != 12) { if (_animationState != 12) {
if (_animationState) { if (_animationState == 0) {
_animationState = 5;
_animationFrame = 0;
} else {
_animationState = 1; _animationState = 1;
_animationStateNext = 5; _animationStateNext = 5;
_animationNext = 734; _animationNext = 734;
} else {
_animationState = 5;
_animationFrame = 0;
} }
} }
break; break;
case 12: case 12:
if (_animationState) { if (_animationState == 0) {
_animationState = 6;
_animationFrame = 0;
} else {
_animationState = 1; _animationState = 1;
_animationStateNext = 6; _animationStateNext = 6;
_animationNext = 735; _animationNext = 735;
} else {
_animationState = 6;
_animationFrame = 0;
} }
break; break;
case 13: case 13:
if (_animationState) { if (_animationState == 0) {
_animationState = 7;
_animationFrame = 0;
} else {
_animationState = 1; _animationState = 1;
_animationStateNext = 7; _animationStateNext = 7;
_animationNext = 736; _animationNext = 736;
} else {
_animationState = 7;
_animationFrame = 0;
} }
break; break;
case 48: case kAnimationModeDie:
_animationState = 13; _animationState = 13;
_animationFrame = -1; _animationFrame = -1;
break; break;

View file

@ -178,7 +178,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant1, 39, 0); AI_Movement_Track_Append(kActorMutant1, 39, 0);
AI_Movement_Track_Repeat(kActorMutant1); AI_Movement_Track_Repeat(kActorMutant1);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant1, 70); Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20); Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
} }
@ -352,7 +352,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant1, 40); Actor_Set_Intelligence(kActorMutant1, 40);
Actor_Set_Health(kActorMutant1, 10 * Query_Difficulty_Level() + 30, 10 * Query_Difficulty_Level() + 30); Actor_Set_Health(kActorMutant1, 10 * Query_Difficulty_Level() + 30, 10 * Query_Difficulty_Level() + 30);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant1, 70); Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20); Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
} else { } else {

View file

@ -162,7 +162,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant2, 39, 0); AI_Movement_Track_Append(kActorMutant2, 39, 0);
AI_Movement_Track_Repeat(kActorMutant2); AI_Movement_Track_Repeat(kActorMutant2);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant2, 60); Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30); Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
} }
@ -334,7 +334,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant2, 20); Actor_Set_Intelligence(kActorMutant2, 20);
Actor_Set_Health(71, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50); Actor_Set_Health(71, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant2, 60); Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30); Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
} else { } else {

View file

@ -175,7 +175,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant3, 39, 0); AI_Movement_Track_Append(kActorMutant3, 39, 0);
AI_Movement_Track_Repeat(kActorMutant3); AI_Movement_Track_Repeat(kActorMutant3);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant3, 80); Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20); Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
} }
@ -345,7 +345,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant3, 40); Actor_Set_Intelligence(kActorMutant3, 40);
Actor_Set_Health(kActorMutant3, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50); Actor_Set_Health(kActorMutant3, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
Actor_Set_Combat_Aggressiveness(kActorMutant3, 80); Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20); Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
} else { } else {

View file

@ -52,7 +52,7 @@ bool AIScriptOfficerGrayford::Update() {
} else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400) { } else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400) {
AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Flush(kActorOfficerGrayford);
Actor_Set_Goal_Number(kActorOfficerGrayford, 400); Actor_Set_Goal_Number(kActorOfficerGrayford, 400);
} else if (!Game_Flag_Query(kFlagMcCoyAtDRxx) } else if (!Game_Flag_Query(kFlagMcCoyInDNARow)
&& Actor_Query_Goal_Number(kActorOfficerGrayford) > 102 && Actor_Query_Goal_Number(kActorOfficerGrayford) > 102
&& Actor_Query_Goal_Number(kActorOfficerGrayford) < 110) { && Actor_Query_Goal_Number(kActorOfficerGrayford) < 110) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 110); Actor_Set_Goal_Number(kActorOfficerGrayford, 110);
@ -471,7 +471,7 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true);
if (Game_Flag_Query(713)) { if (Game_Flag_Query(kFlagDR04McCoyShotMoraji)) {
Actor_Set_Goal_Number(kActorMcCoy, 500); Actor_Set_Goal_Number(kActorMcCoy, 500);
} else { } else {
Actor_Says(kActorMcCoy, 960, 15); Actor_Says(kActorMcCoy, 960, 15);

View file

@ -60,9 +60,9 @@ bool AIScriptOfficerLeary::Update() {
return false; return false;
} }
if (!Game_Flag_Query(kFlagMcCoyAtRCxx) if (!Game_Flag_Query(kFlagMcCoyInRunciters)
&& Game_Flag_Query(kFlagChopstickWrapperTaken) && Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)
&& Game_Flag_Query(kFlagChromeDebrisTaken) && Game_Flag_Query(kFlagRC01ChromeDebrisTaken)
&& Player_Query_Current_Scene() != kSceneRC01 && Player_Query_Current_Scene() != kSceneRC01
&& Global_Variable_Query(kVariableChapter) < 3 && Global_Variable_Query(kVariableChapter) < 3
) { ) {
@ -321,7 +321,7 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewB, false, -1); Actor_Clue_Acquire(kActorOfficerLeary, kClueCrowdInterviewB, false, -1);
} }
} }
if (Game_Flag_Query(kFlagMcCoyAtRCxx)) { if (Game_Flag_Query(kFlagMcCoyInRunciters)) {
if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA)
&& Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB) && Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB)
) { ) {
@ -906,7 +906,7 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
return true; return true;
case 0: case 0:
if ( Game_Flag_Query(kFlagOfficerLearyTakingNotes) if ( Game_Flag_Query(kFlagOfficerLearyTakingNotes)
&& !Game_Flag_Query(KFlagMcCoyAndOfficerLearyTalking)) { && !Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyTalking)) {
_animationState = 31; _animationState = 31;
_animationFrame = 0; _animationFrame = 0;
*animation = 604; *animation = 604;

View file

@ -43,11 +43,11 @@ void AIScriptPhotographer::Initialize() {
bool AIScriptPhotographer::Update() { bool AIScriptPhotographer::Update() {
if ( Game_Flag_Query(kFlagTB02ElevatorToTB05) if ( Game_Flag_Query(kFlagTB02ElevatorToTB05)
&& !Game_Flag_Query(kFlagPhotographerToTB06) && !Game_Flag_Query(kFlagTB06Photographer)
) { ) {
Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC); Actor_Put_In_Set(kActorPhotographer, kSetFreeSlotC);
Actor_Set_At_Waypoint(kActorPhotographer, 35, 0); Actor_Set_At_Waypoint(kActorPhotographer, 35, 0);
Game_Flag_Set(kFlagPhotographerToTB06); Game_Flag_Set(kFlagTB06Photographer);
Actor_Set_Goal_Number(kActorPhotographer, 100); Actor_Set_Goal_Number(kActorPhotographer, 100);
return true; return true;

View file

@ -55,7 +55,7 @@ bool AIScriptRunciter::Update() {
if (Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterDefault if (Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterDefault
&& Game_Flag_Query(kFlagRC01PoliceDone) && Game_Flag_Query(kFlagRC01PoliceDone)
) { ) {
Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterHide); Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterGoToFreeSlotGH);
} }
if (Global_Variable_Query(kVariableChapter) == 4 if (Global_Variable_Query(kVariableChapter) == 4
&& Actor_Query_Goal_Number(kActorRunciter) < 300 && Actor_Query_Goal_Number(kActorRunciter) < 300
@ -180,7 +180,7 @@ bool AIScriptRunciter::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_Waypoint(kActorRunciter, 92, 567); Actor_Set_At_Waypoint(kActorRunciter, 92, 567);
return false; return false;
} }
if (newGoalNumber == kGoalRunciterWalkAround) { if (newGoalNumber == kGoalRunciterWalkAroundRC02) {
AI_Movement_Track_Flush(kActorRunciter); AI_Movement_Track_Flush(kActorRunciter);
if (Random_Query(0, 1) == 1) { if (Random_Query(0, 1) == 1) {
if (Random_Query(0, 1) == 0) { if (Random_Query(0, 1) == 0) {
@ -198,7 +198,7 @@ bool AIScriptRunciter::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorRunciter); AI_Movement_Track_Repeat(kActorRunciter);
return true; return true;
} }
if (newGoalNumber == kGoalRunciterHide) { if (newGoalNumber == kGoalRunciterGoToFreeSlotGH) {
AI_Movement_Track_Flush(kActorRunciter); AI_Movement_Track_Flush(kActorRunciter);
AI_Movement_Track_Append(kActorRunciter, 39, 120); AI_Movement_Track_Append(kActorRunciter, 39, 120);
AI_Movement_Track_Append(kActorRunciter, 40, 0); AI_Movement_Track_Append(kActorRunciter, 40, 0);

View file

@ -57,7 +57,7 @@ bool AIScriptSadik::Update() {
Actor_Set_Goal_Number(kActorSadik, 101); Actor_Set_Goal_Number(kActorSadik, 101);
Actor_Set_Targetable(kActorSadik, true); Actor_Set_Targetable(kActorSadik, true);
Game_Flag_Set(391); Game_Flag_Set(391);
Game_Flag_Set(406); Game_Flag_Set(kFlagUnused406);
return true; return true;
} }

View file

@ -56,21 +56,21 @@ bool AIScriptSteele::Update() {
switch (Global_Variable_Query(kVariableChapter)) { switch (Global_Variable_Query(kVariableChapter)) {
case 1: case 1:
if (Game_Flag_Query(kFlagMcCoyAtRCxx) if (Game_Flag_Query(kFlagMcCoyInRunciters)
&& Game_Flag_Query(183) && Game_Flag_Query(183)
) { ) {
Actor_Set_Goal_Number(kActorSteele, 3); Actor_Set_Goal_Number(kActorSteele, 3);
return true; return true;
} }
if (Game_Flag_Query(kFlagMcCoyAtCTxx) if (Game_Flag_Query(kFlagMcCoyInChinaTown)
&& Game_Flag_Query(184) && Game_Flag_Query(184)
) { ) {
Actor_Set_Goal_Number(kActorSteele, 6); Actor_Set_Goal_Number(kActorSteele, 6);
return true; return true;
} }
if (Game_Flag_Query(kFlagMcCoyAtPSxx) if (Game_Flag_Query(kFlagMcCoyInPoliceStation)
&& Game_Flag_Query(185) && Game_Flag_Query(185)
) { ) {
Actor_Set_Goal_Number(kActorSteele, 10); Actor_Set_Goal_Number(kActorSteele, 10);
@ -78,7 +78,7 @@ bool AIScriptSteele::Update() {
} }
if ( Actor_Query_Goal_Number(kActorSteele) == 0 if ( Actor_Query_Goal_Number(kActorSteele) == 0
&& !Game_Flag_Query(kFlagMcCoyAtRCxx) && !Game_Flag_Query(kFlagMcCoyInRunciters)
&& Player_Query_Current_Scene() != kSceneRC01 && Player_Query_Current_Scene() != kSceneRC01
) { ) {
Actor_Set_Goal_Number(kActorSteele, 1); Actor_Set_Goal_Number(kActorSteele, 1);
@ -399,11 +399,11 @@ void AIScriptSteele::ClickedByPlayer() {
void AIScriptSteele::EnteredScene(int sceneId) { void AIScriptSteele::EnteredScene(int sceneId) {
if (Actor_Query_Goal_Number(kActorSteele) == 2) { if (Actor_Query_Goal_Number(kActorSteele) == 2) {
if (!Game_Flag_Query(kFlagChopstickWrapperTaken) if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)
&& Random_Query(1, 3) == 1 && Random_Query(1, 3) == 1
) { ) {
Actor_Clue_Acquire(kActorSteele, kClueChopstickWrapper, true, -1); Actor_Clue_Acquire(kActorSteele, kClueChopstickWrapper, true, -1);
Game_Flag_Set(kFlagChopstickWrapperTaken); Game_Flag_Set(kFlagRC51ChopstickWrapperTaken);
if (Game_Flag_Query(kFlagRC51Discovered)) { if (Game_Flag_Query(kFlagRC51Discovered)) {
Item_Remove_From_World(kItemChopstickWrapper); Item_Remove_From_World(kItemChopstickWrapper);
@ -413,11 +413,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
return; //true; return; //true;
} }
if (!Game_Flag_Query(kFlagCandyTaken) if (!Game_Flag_Query(kFlagRC51CandyTaken)
&& Random_Query(1, 3) == 1 && Random_Query(1, 3) == 1
) { ) {
Actor_Clue_Acquire(kActorSteele, kClueCandy, true, -1); Actor_Clue_Acquire(kActorSteele, kClueCandy, true, -1);
Game_Flag_Set(kFlagCandyTaken); Game_Flag_Set(kFlagRC51CandyTaken);
if (Game_Flag_Query(kFlagRC51Discovered)) { if (Game_Flag_Query(kFlagRC51Discovered)) {
Item_Remove_From_World(kItemCandy); Item_Remove_From_World(kItemCandy);
@ -425,11 +425,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
return; //true; return; //true;
} }
if (!Game_Flag_Query(kFlagToyDogTaken) if (!Game_Flag_Query(kFlagRC51ToyDogTaken)
&& Random_Query(1, 20) == 1 && Random_Query(1, 20) == 1
) { ) {
Actor_Clue_Acquire(kActorSteele, kClueToyDog, true, -1); Actor_Clue_Acquire(kActorSteele, kClueToyDog, true, -1);
Game_Flag_Set(kFlagToyDogTaken); Game_Flag_Set(kFlagRC51ToyDogTaken);
if (Game_Flag_Query(kFlagRC51Discovered)) { if (Game_Flag_Query(kFlagRC51Discovered)) {
Item_Remove_From_World(kItemToyDog); Item_Remove_From_World(kItemToyDog);
@ -440,11 +440,11 @@ void AIScriptSteele::EnteredScene(int sceneId) {
if ( Actor_Query_Goal_Number(kActorSteele) == 5 if ( Actor_Query_Goal_Number(kActorSteele) == 5
&& Actor_Query_In_Set(kActorSteele, kSetCT03_CT04) && Actor_Query_In_Set(kActorSteele, kSetCT03_CT04)
&& Game_Flag_Query(kFlagMcCoyKilledHomeless) && Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& !Game_Flag_Query(kFlagHomelessBodyInDumpster) && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
&& !Game_Flag_Query(kFlagHomelessBodyFound) && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
) { ) {
Game_Flag_Set(kFlagHomelessBodyFound); Game_Flag_Set(kFlagCT04HomelessBodyFound);
return; //true; return; //true;
} }
@ -931,8 +931,8 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 233: case 233:
Game_Flag_Set(kFlagHF01toHF03); Game_Flag_Set(kFlagHF01toHF03);
Game_Flag_Reset(kFlagMcCoyAtNRxx); Game_Flag_Reset(kFlagMcCoyInNightclubRow);
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Actor_Put_In_Set(kActorSteele, kSetHF03); Actor_Put_In_Set(kActorSteele, kSetHF03);
Actor_Set_At_XYZ(kActorSteele, 291.0f, 47.76f, -892.0f, 453); Actor_Set_At_XYZ(kActorSteele, 291.0f, 47.76f, -892.0f, 453);
Set_Enter(kSetHF03, kSceneHF03); Set_Enter(kSetHF03, kSceneHF03);
@ -1265,25 +1265,25 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true; return true;
case 290: case 290:
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, 0, 1, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, false, true, 0);
Actor_Face_Heading(kActorMcCoy, 45, 0); Actor_Face_Heading(kActorMcCoy, 45, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, false, kAnimationModeIdle);
Global_Variable_Set(1, 4); Global_Variable_Set(1, 4);
Scene_Exits_Enable(); Scene_Exits_Enable();
Actor_Set_Health(kActorMcCoy, 50, 50); Actor_Set_Health(kActorMcCoy, 50, 50);
Game_Flag_Set(523); Game_Flag_Set(523);
Game_Flag_Set(343); Game_Flag_Set(kFlagNR01toUG06);
Game_Flag_Set(680); Game_Flag_Set(680);
Chapter_Enter(4, 79, 91); Chapter_Enter(4, kSetUG06, kSceneUG06);
return true; return true;
case 291: case 291:
Game_Flag_Set(722); Game_Flag_Set(722);
Global_Variable_Set(1, 4); Global_Variable_Set(kVariableChapter, 4);
Scene_Exits_Enable(); Scene_Exits_Enable();
Game_Flag_Set(523); Game_Flag_Set(523);
Game_Flag_Set(680); Game_Flag_Set(680);
Chapter_Enter(4, 79, 91); Chapter_Enter(4, kSetUG06, kSceneUG06);
return true; return true;
case 300: case 300:

View file

@ -56,16 +56,16 @@ bool AIScriptTransient::Update() {
} }
if ( Global_Variable_Query(kVariableChapter) == 3 if ( Global_Variable_Query(kVariableChapter) == 3
&& Game_Flag_Query(kFlagMcCoyKilledHomeless) && Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& Game_Flag_Query(kFlagHomelessBodyInDumpster) && Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
&& !Game_Flag_Query(kFlagHomelessBodyFound) && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
&& !Game_Flag_Query(kFlagDumpsterEmptied) && !Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
) { ) {
Game_Flag_Set(kFlagDumpsterEmptied); Game_Flag_Set(kFlagCT04HomelessBodyThrownAway);
} }
if (Global_Variable_Query(kVariableChapter) < 4 if (Global_Variable_Query(kVariableChapter) < 4
&& Game_Flag_Query(kFlagHomelessBodyFound) && Game_Flag_Query(kFlagCT04HomelessBodyFound)
&& Actor_Query_Goal_Number(kActorTransient) != 6 && Actor_Query_Goal_Number(kActorTransient) != 6
&& Actor_Query_Goal_Number(kActorTransient) != 599 && Actor_Query_Goal_Number(kActorTransient) != 599
) { ) {
@ -163,7 +163,7 @@ bool AIScriptTransient::ShotAtAndHit() {
Actor_Set_Goal_Number(kActorTransient, 599); Actor_Set_Goal_Number(kActorTransient, 599);
} }
Game_Flag_Set(kFlagMcCoyKilledHomeless); Game_Flag_Set(kFlagCT04HomelessKilledByMcCoy);
return false; return false;
} }

View file

@ -53,15 +53,17 @@ bool AIScriptZuben::Update() {
Actor_Put_In_Set(kActorZuben, kSetFreeSlotI); Actor_Put_In_Set(kActorZuben, kSetFreeSlotI);
Actor_Set_At_Waypoint(kActorZuben, 41, 0); Actor_Set_At_Waypoint(kActorZuben, 41, 0);
} }
if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault
&& Player_Query_Current_Scene() == kSceneCT01 && Player_Query_Current_Scene() == kSceneCT01
&& !Game_Flag_Query(kFlagZubenCheckOnMcCoy) && !Game_Flag_Query(kFlagCT01ZubenMcCoyCheck)
) { ) {
AI_Countdown_Timer_Reset(kActorZuben, 2); AI_Countdown_Timer_Reset(kActorZuben, 2);
AI_Countdown_Timer_Start(kActorZuben, 2, 30); AI_Countdown_Timer_Start(kActorZuben, 2, 30);
Game_Flag_Set(kFlagZubenCheckOnMcCoy); Game_Flag_Set(kFlagCT01ZubenMcCoyCheck);
return true; return true;
} }
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault
&& Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 48 && Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 48
&& Actor_Query_Is_In_Current_Set(kActorZuben) && Actor_Query_Is_In_Current_Set(kActorZuben)
@ -72,9 +74,10 @@ bool AIScriptZuben::Update() {
Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, true, -1); Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, true, -1);
} }
Game_Flag_Set(kFlagCT01ZubenLeft); Game_Flag_Set(kFlagCT01ZubenLeft);
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT01Leave); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT01WalkToCT02);
return true; return true;
} }
if ( Global_Variable_Query(kVariableChapter) >= 4 if ( Global_Variable_Query(kVariableChapter) >= 4
&& !Game_Flag_Query(kFlagZubenRetired) && !Game_Flag_Query(kFlagZubenRetired)
&& Actor_Query_Goal_Number(kActorZuben) < 200 && Actor_Query_Goal_Number(kActorZuben) < 200
@ -83,6 +86,7 @@ bool AIScriptZuben::Update() {
Actor_Set_Goal_Number(kActorZuben, 200); Actor_Set_Goal_Number(kActorZuben, 200);
return true; return true;
} }
if ( Global_Variable_Query(kVariableChapter) == 5 if ( Global_Variable_Query(kVariableChapter) == 5
&& !Game_Flag_Query(kFlagZubenRetired) && !Game_Flag_Query(kFlagZubenRetired)
&& Actor_Query_Goal_Number(kActorZuben) < 400 && Actor_Query_Goal_Number(kActorZuben) < 400
@ -91,17 +95,19 @@ bool AIScriptZuben::Update() {
Actor_Set_Goal_Number(kActorZuben, 400); Actor_Set_Goal_Number(kActorZuben, 400);
return true; return true;
} }
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06AttackMcCoy if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06AttackMcCoy
&& Player_Query_Current_Scene() == kSceneCT07 && Player_Query_Current_Scene() == kSceneCT07
) { ) {
AI_Countdown_Timer_Reset(kActorZuben, 0); AI_Countdown_Timer_Reset(kActorZuben, 0);
Game_Flag_Set(kFlagWarehouseOpen); Game_Flag_Set(kFlagCT05WarehouseOpen);
Actor_Set_Targetable(kActorZuben, true); Actor_Set_Targetable(kActorZuben, true);
if (Actor_Query_Goal_Number(kActorGordo) == 0) { if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
Actor_Set_Goal_Number(kActorGordo, 1); Actor_Set_Goal_Number(kActorGordo, kGoalGordoLeaveCT01);
} }
return true; return true;
} }
if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck
&& !Game_Flag_Query(kFlagCT02ZubenFled) && !Game_Flag_Query(kFlagCT02ZubenFled)
) { ) {
@ -119,12 +125,12 @@ void AIScriptZuben::TimerExpired(int timer) {
) { ) {
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -1); Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -1);
} }
Game_Flag_Reset(kFlagZubenCheckOnMcCoy); Game_Flag_Reset(kFlagCT01ZubenMcCoyCheck);
// return true; // return true;
} else if (timer == 1) { } else if (timer == 1) {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) { // Zuben fleeing, after 10s if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG) { // Zuben fleeing, after 10s
Music_Stop(10); Music_Stop(10);
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06HideAtFreeSlotA);
AI_Countdown_Timer_Reset(kActorZuben, 1); AI_Countdown_Timer_Reset(kActorZuben, 1);
// return true; // return true;
} }
@ -140,16 +146,16 @@ void AIScriptZuben::TimerExpired(int timer) {
} }
void AIScriptZuben::CompletedMovementTrack() { void AIScriptZuben::CompletedMovementTrack() {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG
&& Game_Flag_Query(kFlagCT02McCoyFell) && Game_Flag_Query(kFlagCT02McCoyFell)
) { ) {
Set_Enter(kSetCT03_CT04, kSceneCT03); Set_Enter(kSetCT03_CT04, kSceneCT03);
} }
if (Actor_Query_Goal_Number(kActorZuben) == 3) { // not set anywhere if (Actor_Query_Goal_Number(kActorZuben) == 3) { // not set anywhere
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07Leave); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07RunToFreeSlotA);
//return true; //return true;
} else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide } else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA
&& Game_Flag_Query(kFlagCT02McCoyFell) && Game_Flag_Query(kFlagCT02McCoyFell)
) { ) {
AI_Countdown_Timer_Reset(kActorZuben, 0); AI_Countdown_Timer_Reset(kActorZuben, 0);
@ -164,7 +170,7 @@ void AIScriptZuben::CompletedMovementTrack() {
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02OpenDoor); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02OpenDoor);
//return true; //return true;
} else { } else {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07Leave) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07RunToFreeSlotA) {
Music_Stop(2); Music_Stop(2);
Sound_Play(574, 40, 100, 100, 50); Sound_Play(574, 40, 100, 100, 50);
Delay(2000); Delay(2000);
@ -264,7 +270,7 @@ void AIScriptZuben::ShotAtAndMissed() {
bool AIScriptZuben::ShotAtAndHit() { bool AIScriptZuben::ShotAtAndHit() {
Game_Flag_Set(kFlagMcCoyShotAtZuben); Game_Flag_Set(kFlagMcCoyShotAtZuben);
if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07Leave if ( Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT07RunToFreeSlotA
&& !Actor_Clue_Query(kActorZuben, kClueMcCoyShotZubenInTheBack) && !Actor_Clue_Query(kActorZuben, kClueMcCoyShotZubenInTheBack)
) { ) {
Actor_Clue_Acquire(kActorZuben, kClueMcCoyShotZubenInTheBack, true, -1); Actor_Clue_Acquire(kActorZuben, kClueMcCoyShotZubenInTheBack, true, -1);
@ -306,14 +312,15 @@ int AIScriptZuben::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) { bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) { switch (newGoalNumber) {
case kGoalZubenCT01Leave: case kGoalZubenCT01WalkToCT02:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append(kActorZuben, 86, 0); AI_Movement_Track_Append(kActorZuben, 86, 0);
AI_Movement_Track_Append(kActorZuben, 106, 0); AI_Movement_Track_Append(kActorZuben, 106, 0);
AI_Movement_Track_Append_With_Facing(kActorZuben, 45, 0, 481); AI_Movement_Track_Append_With_Facing(kActorZuben, 45, 0, 481);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case kGoalZubenCT02Flee:
case kGoalZubenCT02RunToFreeSlotG:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 84, 0); AI_Movement_Track_Append_Run(kActorZuben, 84, 0);
AI_Movement_Track_Append_Run(kActorZuben, 85, 0); AI_Movement_Track_Append_Run(kActorZuben, 85, 0);
@ -324,6 +331,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Countdown_Timer_Start(kActorZuben, 0, 70); AI_Countdown_Timer_Start(kActorZuben, 0, 70);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case kGoalZubenCT07Spared: case kGoalZubenCT07Spared:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
Actor_Face_Actor(kActorZuben, kActorMcCoy, true); Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
@ -343,14 +351,16 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Clue_Acquire(kActorZuben, kClueMcCoyIsABladeRunner, true, -1); Actor_Clue_Acquire(kActorZuben, kClueMcCoyIsABladeRunner, true, -1);
} }
Actor_Clue_Acquire(kActorZuben, kClueMcCoyLetZubenEscape, true, -1); Actor_Clue_Acquire(kActorZuben, kClueMcCoyLetZubenEscape, true, -1);
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07Leave); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT07RunToFreeSlotA);
return false; return false;
case kGoalZubenCT07Leave:
case kGoalZubenCT07RunToFreeSlotA:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 94, 0); AI_Movement_Track_Append_Run(kActorZuben, 94, 0);
AI_Movement_Track_Append_Run(kActorZuben, 33, 0); AI_Movement_Track_Append_Run(kActorZuben, 33, 0);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case kGoalZubenDie: case kGoalZubenDie:
Game_Flag_Set(kFlagZubenRetired); Game_Flag_Set(kFlagZubenRetired);
Game_Flag_Set(kFlagCT01ZubenGone); Game_Flag_Set(kFlagCT01ZubenGone);
@ -364,20 +374,24 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
} }
Actor_Set_Goal_Number(kActorZuben, kGoalZubenDead); Actor_Set_Goal_Number(kActorZuben, kGoalZubenDead);
return false; return false;
case kGoalZubenCT02PushPot: case kGoalZubenCT02PushPot:
_animationFrame = 0; _animationFrame = 0;
_animationState = 26; _animationState = 26;
return false; return false;
case kGoalZubenCT02RunToDoor: case kGoalZubenCT02RunToDoor:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 46, 0); AI_Movement_Track_Append_Run(kActorZuben, 46, 0);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case kGoalZubenCT02OpenDoor: case kGoalZubenCT02OpenDoor:
Actor_Face_Heading(kActorZuben, kActorMcCoy, false); Actor_Face_Heading(kActorZuben, kActorMcCoy, false);
_animationFrame = 0; _animationFrame = 0;
_animationState = 27; _animationState = 27;
return false; return false;
case kGoalZubenCT06JumpDown: case kGoalZubenCT06JumpDown:
AI_Countdown_Timer_Reset(kActorZuben, 0); AI_Countdown_Timer_Reset(kActorZuben, 0);
Actor_Put_In_Set(kActorZuben, kSetCT06); Actor_Put_In_Set(kActorZuben, kSetCT06);
@ -385,6 +399,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
_animationFrame = 0; _animationFrame = 0;
_animationState = 28; _animationState = 28;
return false; return false;
case kGoalZubenCT06AttackMcCoy: case kGoalZubenCT06AttackMcCoy:
Player_Loses_Control(); Player_Loses_Control();
if (!Player_Query_Combat_Mode()) { if (!Player_Query_Combat_Mode()) {
@ -394,7 +409,8 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(kFlagNotUsed142); Game_Flag_Set(kFlagNotUsed142);
Set_Enter(kSetCT07, kSceneCT07); Set_Enter(kSetCT07, kSceneCT07);
return false; return false;
case kGoalZubenCT06Hide:
case kGoalZubenCT06HideAtFreeSlotA:
Actor_Set_Targetable(kActorZuben, true); Actor_Set_Targetable(kActorZuben, true);
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 51, 0); AI_Movement_Track_Append_Run(kActorZuben, 51, 0);
@ -402,6 +418,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorZuben, 33, 1); // Hide Zuben AI_Movement_Track_Append(kActorZuben, 33, 1); // Hide Zuben
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case kGoalZubenCT02PotDodgeCheck: case kGoalZubenCT02PotDodgeCheck:
if (Actor_Query_Goal_Number(kActorMcCoy) != kGoalMcCoyDodge) { if (Actor_Query_Goal_Number(kActorMcCoy) != kGoalMcCoyDodge) {
Player_Loses_Control(); Player_Loses_Control();
@ -411,29 +428,34 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
} }
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToDoor); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToDoor);
return false; return false;
case kGoalZubenMA01AttackMcCoy: case kGoalZubenMA01AttackMcCoy:
Game_Flag_Set(kFlagWarehouseOpen); Game_Flag_Set(kFlagCT05WarehouseOpen);
Actor_Set_Targetable(kActorZuben, true); Actor_Set_Targetable(kActorZuben, true);
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 125, 0); AI_Movement_Track_Append_Run(kActorZuben, 125, 0);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case 22:
case 22: // is never set
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 125, 0); AI_Movement_Track_Append_Run(kActorZuben, 125, 0);
AI_Movement_Track_Append_Run(kActorZuben, 33, 0); AI_Movement_Track_Append_Run(kActorZuben, 33, 0);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case 99: case 99:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
Scene_Exits_Enable(); Scene_Exits_Enable();
Music_Stop(2); Music_Stop(2);
return false; return false;
case 100: case 100:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 33, 3); AI_Movement_Track_Append_Run(kActorZuben, 33, 3);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case 105: case 105:
{ {
int rnd1 = Random_Query(1, 3); int rnd1 = Random_Query(1, 3);
@ -508,11 +530,13 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 106: case 106:
Actor_Set_Goal_Number(kActorZuben, 105); Actor_Set_Goal_Number(kActorZuben, 105);
return true; return true;
case 200: case 200:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 33, 3); AI_Movement_Track_Append_Run(kActorZuben, 33, 3);
AI_Movement_Track_Repeat(kActorZuben); AI_Movement_Track_Repeat(kActorZuben);
return false; return false;
case 205: case 205:
switch (Random_Query(1, 8)) { switch (Random_Query(1, 8)) {
case 1: case 1:
@ -591,9 +615,11 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break; break;
} }
return false; return false;
case 206: case 206:
Actor_Set_Goal_Number(kActorZuben, 205); Actor_Set_Goal_Number(kActorZuben, 205);
return true; return true;
case 400: case 400:
AI_Movement_Track_Flush(kActorZuben); AI_Movement_Track_Flush(kActorZuben);
Actor_Put_In_Set(kActorZuben, kSetFreeSlotA); Actor_Put_In_Set(kActorZuben, kSetFreeSlotA);
@ -950,7 +976,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
Actor_Set_Frame_Rate_FPS(kActorZuben, -2); Actor_Set_Frame_Rate_FPS(kActorZuben, -2);
_animationState = 0; _animationState = 0;
_animationFrame = 0; _animationFrame = 0;
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02Flee); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToFreeSlotG);
} }
break; break;
case 28: case 28:
@ -1164,6 +1190,7 @@ void AIScriptZuben::dialogue() {
Actor_Says(kActorMcCoy, 7310, 16); Actor_Says(kActorMcCoy, 7310, 16);
Actor_Says(kActorZuben, 190, 15); Actor_Says(kActorZuben, 190, 15);
break; break;
case 1500: case 1500:
Actor_Says(kActorMcCoy, 7295, 11); Actor_Says(kActorMcCoy, 7295, 11);
Actor_Says(kActorZuben, 200, 12); Actor_Says(kActorZuben, 200, 12);
@ -1188,6 +1215,7 @@ void AIScriptZuben::dialogue() {
Actor_Clue_Acquire(kActorMcCoy, kClueZubenTalksAboutLucy2, false, kActorZuben); Actor_Clue_Acquire(kActorMcCoy, kClueZubenTalksAboutLucy2, false, kActorZuben);
} }
break; break;
case 1510: case 1510:
Actor_Says(kActorMcCoy, 7300, 13); Actor_Says(kActorMcCoy, 7300, 13);
Actor_Says(kActorZuben, 280, 12); Actor_Says(kActorZuben, 280, 12);
@ -1202,6 +1230,7 @@ void AIScriptZuben::dialogue() {
Actor_Says(kActorZuben, 330, 12); Actor_Says(kActorZuben, 330, 12);
Actor_Clue_Acquire(kActorMcCoy, kClueZubensMotive, false, kActorZuben); Actor_Clue_Acquire(kActorMcCoy, kClueZubensMotive, false, kActorZuben);
break; break;
case 1520: case 1520:
Actor_Says(kActorZuben, 160, 13); Actor_Says(kActorZuben, 160, 13);
Actor_Says(kActorMcCoy, 7305, 15); Actor_Says(kActorMcCoy, 7305, 15);

View file

@ -137,10 +137,10 @@ DECLARE_SCRIPT(Gordo)
int _frameMax; int _frameMax;
int _state; int _state;
void sub_40FD00(); void McCoyTalkWithGordo();
void sub_4103B8(); void sub_4103B8();
void sub_410590(); void dialogueWithGordo2();
void sub_41090C(); void dialogueWithGordo1();
void sub_41117C(); void sub_41117C();
END_SCRIPT END_SCRIPT
@ -185,7 +185,7 @@ DECLARE_SCRIPT(Izo)
int _var4; int _var4;
bool _flag; bool _flag;
void someDialog(); void dialogueWithIzo();
void modifyWaypoints(); void modifyWaypoints();
END_SCRIPT END_SCRIPT

View file

@ -109,49 +109,13 @@ void ESPERScript::SCRIPT_ESPER_DLL_Initialize() {
void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) { void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) {
switch (photo) { switch (photo) {
case 9: case 0:
Actor_Says(kActorAnsweringMachine, 270, 3); Actor_Says(kActorAnsweringMachine, 220, 3);
ESPER_Define_Special_Region(22, 1208, 330, 1218, 340, 1050, 160, 1279, 550, 956, 203, 1278, 497, "KP06ESP1"); ESPER_Define_Special_Region(0, 490, 511, 496, 517, 400, 440, 580, 580, 380, 260, 900, 710, "RC02ESP1");
ESPER_Define_Special_Region(23, 854, 371, 858, 375, 790, 320, 940, 560, 722, 220, 1000, 505, "KP06ESP2"); ESPER_Define_Special_Region(1, 473, 342, 479, 349, 400, 300, 580, 580, 350, 250, 900, 710, "RC02ESP2");
ESPER_Define_Special_Region(24, 615, 325, 648, 365, 440, 220, 820, 959, 326, 140, 948, 474, "KP06ESP3"); ESPER_Define_Special_Region(2, 444, 215, 461, 223, 380, 120, 570, 340, 354, 160, 577, 354, "RC02ESP3");
ESPER_Define_Special_Region(25, 373, 417, 382, 426, 310, 370, 480, 560, 228, 323, 493, 509, "KP06ESP4");
break;
case 8:
Actor_Says(kActorAnsweringMachine, 230, 3);
ESPER_Define_Special_Region(18, 166, 623, 177, 632, 38, 528, 320, 770, 26, 530, 313, 771, "TB06ESP1");
ESPER_Define_Special_Region(19, 156, 356, 164, 360, 60, 280, 250, 460, 14, 251, 257, 459, "TB06ESP2");
ESPER_Define_Special_Region(20, 395, 158, 410, 185, 270, 70, 760, 640, 125, 0, 560, 307, "TB06ESP3");
ESPER_Define_Special_Region(21, 343, 269, 352, 276, 290, 200, 410, 340, 157, 118, 565, 405, "TB06ESP4");
break;
case 7:
Actor_Says(kActorAnsweringMachine, 250, 3);
ESPER_Define_Special_Region(16, 1171, 457, 1184, 466, 1060, 370, 1279, 730, 910, 300, 1279, 678, "HC02ESP3");
ESPER_Define_Special_Region(17, 328, 398, 340, 413, 250, 350, 460, 640, 100, 236, 530, 612, "HC02ESP4");
break;
case 6:
Actor_Says(kActorAnsweringMachine, 250, 3);
ESPER_Define_Special_Region(14, 879, 221, 882, 225, 640, 0, 1000, 512, 265, 146, 1014, 813, "HC02ESP5");
ESPER_Define_Special_Region(15, 660, 550, 678, 572, 560, 480, 850, 910, 265, 146, 1014, 813, "HC02ESP2");
break;
case 5:
Actor_Says(kActorAnsweringMachine, 240, 3);
ESPER_Define_Special_Region(13, 720, 485, 728, 491, 640, 390, 780, 630, 257, 94, 1013, 804, "HC01ESP3");
break;
case 4:
Actor_Says(kActorAnsweringMachine, 240, 3);
ESPER_Define_Special_Region(11, 420, 436, 434, 450, 350, 380, 520, 680, 257, 94, 1013, 804, "HC01ESP1");
ESPER_Define_Special_Region(12, 407, 489, 410, 509, 370, 450, 500, 560, 257, 94, 1013, 804, "HC01ESP2");
break;
case 3:
Actor_Says(kActorAnsweringMachine, 260, 3);
ESPER_Define_Special_Region(10, 893, 298, 901, 306, 770, 230, 980, 500, 340, 216, 942, 747, "NR07ESP1");
ESPER_Define_Special_Region(9, 479, 381, 482, 385, 430, 320, 520, 470, 265, 200, 815, 720, "NR07ESP2");
break;
case 2:
Actor_Says(kActorAnsweringMachine, 260, 3);
ESPER_Define_Special_Region(7, 102, 809, 108, 861, 20, 720, 200, 930, 191, 95, 1085, 870, "NR06ESP1");
ESPER_Define_Special_Region(8, 661, 437, 664, 443, 530, 320, 720, 600, 330, 200, 945, 750, "NR06ESP2");
break; break;
case 1: case 1:
Actor_Says(kActorAnsweringMachine, 220, 3); Actor_Says(kActorAnsweringMachine, 220, 3);
ESPER_Define_Special_Region(3, 560, 210, 580, 220, 450, 130, 680, 540, 0, 0, 1279, 959, "RC02ESP4"); ESPER_Define_Special_Region(3, 560, 210, 580, 220, 450, 130, 680, 540, 0, 0, 1279, 959, "RC02ESP4");
@ -159,12 +123,58 @@ void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) {
ESPER_Define_Special_Region(5, 669, 322, 675, 329, 620, 230, 740, 390, 0, 0, 1279, 959, "RC02ESP6"); ESPER_Define_Special_Region(5, 669, 322, 675, 329, 620, 230, 740, 390, 0, 0, 1279, 959, "RC02ESP6");
ESPER_Define_Special_Region(6, 698, 236, 748, 274, 600, 160, 850, 420, 160, 0, 1279, 750, "RC02ESP7"); ESPER_Define_Special_Region(6, 698, 236, 748, 274, 600, 160, 850, 420, 160, 0, 1279, 750, "RC02ESP7");
break; break;
case 0:
Actor_Says(kActorAnsweringMachine, 220, 3); case 2:
ESPER_Define_Special_Region(0, 490, 511, 496, 517, 400, 440, 580, 580, 380, 260, 900, 710, "RC02ESP1"); Actor_Says(kActorAnsweringMachine, 260, 3);
ESPER_Define_Special_Region(1, 473, 342, 479, 349, 400, 300, 580, 580, 350, 250, 900, 710, "RC02ESP2"); ESPER_Define_Special_Region(7, 102, 809, 108, 861, 20, 720, 200, 930, 191, 95, 1085, 870, "NR06ESP1");
ESPER_Define_Special_Region(2, 444, 215, 461, 223, 380, 120, 570, 340, 354, 160, 577, 354, "RC02ESP3"); ESPER_Define_Special_Region(8, 661, 437, 664, 443, 530, 320, 720, 600, 330, 200, 945, 750, "NR06ESP2");
break; break;
case 3:
Actor_Says(kActorAnsweringMachine, 260, 3);
ESPER_Define_Special_Region(9, 479, 381, 482, 385, 430, 320, 520, 470, 265, 200, 815, 720, "NR07ESP2");
ESPER_Define_Special_Region(10, 893, 298, 901, 306, 770, 230, 980, 500, 340, 216, 942, 747, "NR07ESP1");
break;
case 4:
Actor_Says(kActorAnsweringMachine, 240, 3);
ESPER_Define_Special_Region(11, 420, 436, 434, 450, 350, 380, 520, 680, 257, 94, 1013, 804, "HC01ESP1");
ESPER_Define_Special_Region(12, 407, 489, 410, 509, 370, 450, 500, 560, 257, 94, 1013, 804, "HC01ESP2");
break;
case 5:
Actor_Says(kActorAnsweringMachine, 240, 3);
ESPER_Define_Special_Region(13, 720, 485, 728, 491, 640, 390, 780, 630, 257, 94, 1013, 804, "HC01ESP3");
break;
case 6:
Actor_Says(kActorAnsweringMachine, 250, 3);
ESPER_Define_Special_Region(14, 879, 221, 882, 225, 640, 0, 1000, 512, 265, 146, 1014, 813, "HC02ESP5");
ESPER_Define_Special_Region(15, 660, 550, 678, 572, 560, 480, 850, 910, 265, 146, 1014, 813, "HC02ESP2");
break;
case 7:
Actor_Says(kActorAnsweringMachine, 250, 3);
ESPER_Define_Special_Region(16, 1171, 457, 1184, 466, 1060, 370, 1279, 730, 910, 300, 1279, 678, "HC02ESP3");
ESPER_Define_Special_Region(17, 328, 398, 340, 413, 250, 350, 460, 640, 100, 236, 530, 612, "HC02ESP4");
break;
case 8:
Actor_Says(kActorAnsweringMachine, 230, 3);
ESPER_Define_Special_Region(18, 166, 623, 177, 632, 38, 528, 320, 770, 26, 530, 313, 771, "TB06ESP1");
ESPER_Define_Special_Region(19, 156, 356, 164, 360, 60, 280, 250, 460, 14, 251, 257, 459, "TB06ESP2");
ESPER_Define_Special_Region(20, 395, 158, 410, 185, 270, 70, 760, 640, 125, 0, 560, 307, "TB06ESP3");
ESPER_Define_Special_Region(21, 343, 269, 352, 276, 290, 200, 410, 340, 157, 118, 565, 405, "TB06ESP4");
break;
case 9:
Actor_Says(kActorAnsweringMachine, 270, 3);
ESPER_Define_Special_Region(22, 1208, 330, 1218, 340, 1050, 160, 1279, 550, 956, 203, 1278, 497, "KP06ESP1");
ESPER_Define_Special_Region(23, 854, 371, 858, 375, 790, 320, 940, 560, 722, 220, 1000, 505, "KP06ESP2");
ESPER_Define_Special_Region(24, 615, 325, 648, 365, 440, 220, 820, 959, 326, 140, 948, 474, "KP06ESP3");
ESPER_Define_Special_Region(25, 373, 417, 382, 426, 310, 370, 480, 560, 228, 323, 493, 509, "KP06ESP4");
break;
default: default:
return; return;
} }
@ -172,176 +182,31 @@ void ESPERScript::SCRIPT_ESPER_DLL_Photo_Selected(int photo) {
bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region) { bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region) {
switch (photo) { switch (photo) {
case 9: case 0:
switch (region) { if (region == 0) {
case 22: Actor_Voice_Over(4050, kActorVoiceOver);
Actor_Says(kActorMcCoy, 8705, 3); if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) {
if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbusReflection)) {
Actor_Says(kActorMcCoy, 6945, 3); Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50); Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, true, -1);
} }
break; } else if (region == 1) {
case 23:
Actor_Voice_Over(4240, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueMcCoyAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, true, -1);
}
break;
case 24:
Actor_Voice_Over(4220, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueClovisAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueClovisAtMoonbus, true, -1);
}
break;
case 25:
if (!Actor_Clue_Query(kActorMcCoy, kClueSadikAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueSadikAtMoonbus, true, -1);
}
break;
}
return false;
case 8:
switch (region) {
case 18:
Actor_Says(kActorMcCoy, 8775, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueKingstonKitchenBox2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, true, -1);
}
break;
case 19:
Actor_Voice_Over(4160, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar2, true, -1);
}
break;
case 20:
Actor_Voice_Over(2140, kActorVoiceOver);
Actor_Voice_Over(2150, kActorVoiceOver);
Actor_Voice_Over(2160, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueBombingSuspect, true, -1);
}
break;
case 21:
Actor_Says(kActorMcCoy, 8890, 3);
if (!Actor_Clue_Query(kActorMcCoy, kCluePlasticExplosive)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kCluePlasticExplosive, true, -1);
}
break;
}
return false;
case 7:
if (region == 16) {
Actor_Voice_Over(4080, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueIzo)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueIzo, true, -1);
}
} else if (region == 17) {
Actor_Voice_Over(4210, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueGuzza)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueGuzza, true, -1);
}
}
return false;
case 6:
if (region == 14) {
Actor_Says(kActorMcCoy, 6975, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityCamera, true, -1);
}
} else if (region == 15) {
Actor_Voice_Over(4220, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueIzosFriend)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueIzosFriend, true, -1);
}
}
return false;
case 5:
if (region == 13) {
Actor_Says(kActorMcCoy, 8830, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueStrangeScale2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, true, -1);
}
}
return false;
case 4:
if (region == 11) {
Actor_Voice_Over(4090, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueWomanInAnimoidRow, true, -1);
}
} else if (region == 12) {
Actor_Voice_Over(4180, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueScorpions)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueScorpions, true, -1);
}
}
return false;
case 3:
if (region == 9) {
Actor_Voice_Over(4230, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
}
return true;
} else if (region == 10) {
Actor_Voice_Over(4040, kActorVoiceOver); Actor_Voice_Over(4040, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueLucyWithDektora)) { if (!Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
Actor_Says(kActorMcCoy, 6945, 3); Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50); Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueLucy, true, -1);
} }
return true; } else if (region == 2) {
} Actor_Voice_Over(4060, kActorVoiceOver);
return false; if (!Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)) {
case 2:
if (region == 8) {
Actor_Voice_Over(4260, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueEarlyQAndLucy)) {
Actor_Says(kActorMcCoy, 6945, 3); Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50); Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, true, -1);
}
} else if (region == 7) {
Actor_Voice_Over(4190, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueScorpionbox)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueScorpionbox, true, -1);
} }
} }
return true; return true;
case 1: case 1:
if (region == 3) { if (region == 3) {
Actor_Voice_Over(4080, kActorVoiceOver); Actor_Voice_Over(4080, kActorVoiceOver);
@ -373,30 +238,190 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
} }
} }
return true; return true;
case 0:
if (region == 0) { case 2:
Actor_Voice_Over(4050, kActorVoiceOver); if (region == 8) {
if (!Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) { Actor_Voice_Over(4260, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueEarlyQAndLucy)) {
Actor_Says(kActorMcCoy, 6945, 3); Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50); Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyAnklet, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQAndLucy, true, -1);
} }
} else if (region == 1) { } else if (region == 7) {
Actor_Voice_Over(4040, kActorVoiceOver); Actor_Voice_Over(4190, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueLucy)) { if (!Actor_Clue_Query(kActorMcCoy, kClueScorpionbox)) {
Actor_Says(kActorMcCoy, 6945, 3); Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50); Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueLucy, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueScorpionbox, true, -1);
}
} else if (region == 2) {
Actor_Voice_Over(4060, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueSushiMenu, true, -1);
} }
} }
return true; return true;
case 3:
if (region == 9) {
Actor_Voice_Over(4230, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
}
return true;
} if (region == 10) {
Actor_Voice_Over(4040, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueLucyWithDektora)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueLucyWithDektora, true, -1);
}
return true;
}
return false;
case 4:
if (region == 11) {
Actor_Voice_Over(4090, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueWomanInAnimoidRow)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueWomanInAnimoidRow, true, -1);
}
} else if (region == 12) {
Actor_Voice_Over(4180, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueScorpions)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueScorpions, true, -1);
}
}
return false;
case 5:
if (region == 13) {
Actor_Says(kActorMcCoy, 8830, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueStrangeScale2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale2, true, -1);
}
}
return false;
case 6:
if (region == 14) {
Actor_Says(kActorMcCoy, 6975, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueChinaBarSecurityCamera, true, -1);
}
} else if (region == 15) {
Actor_Voice_Over(4220, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueIzosFriend)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueIzosFriend, true, -1);
}
}
return false;
case 7:
if (region == 16) {
Actor_Voice_Over(4080, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueIzo)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueIzo, true, -1);
}
} else if (region == 17) {
Actor_Voice_Over(4210, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueGuzza)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueGuzza, true, -1);
}
}
return false;
case 8:
switch (region) {
case 18:
Actor_Says(kActorMcCoy, 8775, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueKingstonKitchenBox2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueKingstonKitchenBox2, true, -1);
}
break;
case 19:
Actor_Voice_Over(4160, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueDogCollar2)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueDogCollar2, true, -1);
}
break;
case 20:
Actor_Voice_Over(2140, kActorVoiceOver);
Actor_Voice_Over(2150, kActorVoiceOver);
Actor_Voice_Over(2160, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueBombingSuspect, true, -1);
}
break;
case 21:
Actor_Says(kActorMcCoy, 8890, 3);
if (!Actor_Clue_Query(kActorMcCoy, kCluePlasticExplosive)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kCluePlasticExplosive, true, -1);
}
break;
}
return false;
case 9:
switch (region) {
case 22:
Actor_Says(kActorMcCoy, 8705, 3);
if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbusReflection)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueMoonbusReflection, true, -1);
}
break;
case 23:
Actor_Voice_Over(4240, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueMcCoyAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyAtMoonbus, true, -1);
}
break;
case 24:
Actor_Voice_Over(4220, kActorVoiceOver);
if (!Actor_Clue_Query(kActorMcCoy, kClueClovisAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueClovisAtMoonbus, true, -1);
}
break;
case 25:
if (!Actor_Clue_Query(kActorMcCoy, kClueSadikAtMoonbus)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(417, 50, 0, 0, 50);
Actor_Clue_Acquire(kActorMcCoy, kClueSadikAtMoonbus, true, -1);
}
break;
}
return false;
} }
return false; return false;
} }

View file

@ -110,7 +110,7 @@ void InitScript::Init_Game_Flags() {
Global_Variable_Set(40, 3); Global_Variable_Set(40, 3);
} }
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
} }

View file

@ -143,7 +143,7 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -120.73f, 0.0f, 219.17f, 12, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -120.73f, 0.0f, 219.17f, 12, 1, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorFishDealer, true); Actor_Face_Actor(kActorMcCoy, kActorFishDealer, true);
Actor_Face_Actor(kActorFishDealer, kActorMcCoy, true); Actor_Face_Actor(kActorFishDealer, kActorMcCoy, true);
if (!Game_Flag_Query(kFlagFishDealerTalk)) { if (!Game_Flag_Query(kFlagAR01FishDealerTalk)) {
Actor_Says(kActorMcCoy, 0, 18); Actor_Says(kActorMcCoy, 0, 18);
Actor_Says(kActorFishDealer, 0, 14); Actor_Says(kActorFishDealer, 0, 14);
Actor_Says(kActorFishDealer, 10, 14); Actor_Says(kActorFishDealer, 10, 14);
@ -159,7 +159,7 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {
Actor_Says(kActorFishDealer, 80, 14); Actor_Says(kActorFishDealer, 80, 14);
Actor_Says(kActorFishDealer, 90, 14); Actor_Says(kActorFishDealer, 90, 14);
Actor_Says(kActorMcCoy, 25, 13); Actor_Says(kActorMcCoy, 25, 13);
Game_Flag_Set(kFlagFishDealerTalk); Game_Flag_Set(kFlagAR01FishDealerTalk);
Actor_Set_Goal_Number(kActorFishDealer, 1); Actor_Set_Goal_Number(kActorFishDealer, 1);
} else { } else {
if ( Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1) if ( Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1)
@ -202,8 +202,8 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0, 0.0, -149.0, 0, false, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0, 0.0, -149.0, 0, false, false, 0);
Game_Flag_Set(kFlagAR01toHC01); Game_Flag_Set(kFlagAR01toHC01);
Game_Flag_Set(464); Game_Flag_Set(464);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Set(kFlagMcCoyAtHCxx); Game_Flag_Set(kFlagMcCoyInHawkersCircle);
Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC01); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC01);
Actor_Set_Goal_Number(kActorFishDealer, 3); Actor_Set_Goal_Number(kActorFishDealer, 3);
} }
@ -251,83 +251,83 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
Actor_Voice_Over(4350, kActorVoiceOver); Actor_Voice_Over(4350, kActorVoiceOver);
Game_Flag_Set(kFlagDNARowAvailableTalk); Game_Flag_Set(kFlagDNARowAvailableTalk);
} }
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtHFxx); Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
int spinnerDest = Spinner_Interface_Choose_Dest(kAR01LoopDoorAnim, false); int spinnerDest = Spinner_Interface_Choose_Dest(kAR01LoopDoorAnim, false);
Actor_Face_Heading(kActorMcCoy, 545, false); Actor_Face_Heading(kActorMcCoy, 545, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Reset(kFlagSpinnerAtAR01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Actor_Set_Invisible(kActorMcCoy, false); Actor_Set_Invisible(kActorMcCoy, false);
break; break;
} }
@ -389,7 +389,7 @@ void SceneScriptAR01::PlayerWalkedOut() {
Actor_Set_Invisible(kActorMcCoy, false); Actor_Set_Invisible(kActorMcCoy, false);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
if (!Game_Flag_Query(kFlagMcCoyAtHCxx)) { if (!Game_Flag_Query(kFlagMcCoyInHawkersCircle)) {
Music_Stop(2); Music_Stop(2);
} }
if (!Game_Flag_Query(kFlagAR01toHC01) if (!Game_Flag_Query(kFlagAR01toHC01)

View file

@ -79,11 +79,11 @@ void SceneScriptAR02::InitializeScene() {
void SceneScriptAR02::SceneLoaded() { void SceneScriptAR02::SceneLoaded() {
Obstacle_Object("DF_BOOTH", true); Obstacle_Object("DF_BOOTH", true);
if (!Game_Flag_Query(374)) { if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Item_Add_To_World(kItemScrorpions, 976, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true); Item_Add_To_World(kItemScrorpions, 976, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
} }
if ( Global_Variable_Query(kVariableChapter) == 4 if ( Global_Variable_Query(kVariableChapter) == 4
&& !Game_Flag_Query(374) && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
) { ) {
Game_Flag_Set(kFlagNotUsed0); Game_Flag_Set(kFlagNotUsed0);
Item_Remove_From_World(kItemScrorpions); Item_Remove_From_World(kItemScrorpions);
@ -104,10 +104,10 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true); Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true);
Actor_Face_Actor(kActorInsectDealer, kActorMcCoy, true); Actor_Face_Actor(kActorInsectDealer, kActorMcCoy, true);
if (Global_Variable_Query(kVariableChapter) == 2) { if (Global_Variable_Query(kVariableChapter) == 2) {
if ( Game_Flag_Query(kFlagInsectDealerInterviewed) if ( Game_Flag_Query(kFlagAR02InsectDealerInterviewed)
&& !Game_Flag_Query(kFlagInsectDealerTalk) && !Game_Flag_Query(kFlagAR02InsectDealerTalk)
) { ) {
Game_Flag_Set(kFlagInsectDealerTalk); Game_Flag_Set(kFlagAR02InsectDealerTalk);
Player_Loses_Control(); Player_Loses_Control();
ADQ_Flush(); ADQ_Flush();
ADQ_Add(kActorInsectDealer, 210, 14); ADQ_Add(kActorInsectDealer, 210, 14);
@ -121,7 +121,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
Actor_Says(kActorInsectDealer, 250, 14); Actor_Says(kActorInsectDealer, 250, 14);
Player_Gains_Control(); Player_Gains_Control();
dialogueWithInsectDealer2(); dialogueWithInsectDealer2();
} else if (Game_Flag_Query(kFlagInsectDealerInterviewed)) { } else if (Game_Flag_Query(kFlagAR02InsectDealerInterviewed)) {
Actor_Says(kActorMcCoy, 75, 18); Actor_Says(kActorMcCoy, 75, 18);
Actor_Says(kActorInsectDealer, 60, 12); Actor_Says(kActorInsectDealer, 60, 12);
Actor_Says(kActorInsectDealer, 70, 14); Actor_Says(kActorInsectDealer, 70, 14);
@ -138,7 +138,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
Actor_Says(kActorMcCoy, 210, 15); Actor_Says(kActorMcCoy, 210, 15);
Actor_Says(kActorInsectDealer, 310, 12); Actor_Says(kActorInsectDealer, 310, 12);
Actor_Says(kActorMcCoy, 215, 13); Actor_Says(kActorMcCoy, 215, 13);
if (Game_Flag_Query(374)) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Actor_Says(kActorMcCoy, 220, 14); Actor_Says(kActorMcCoy, 220, 14);
Actor_Says(kActorInsectDealer, 320, 12); Actor_Says(kActorInsectDealer, 320, 12);
Actor_Says(kActorMcCoy, 225, 13); Actor_Says(kActorMcCoy, 225, 13);
@ -167,10 +167,10 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.79f, 0.0f, -1328.89f, 12, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.79f, 0.0f, -1328.89f, 12, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorHasan, true); Actor_Face_Actor(kActorMcCoy, kActorHasan, true);
Actor_Face_Actor(kActorHasan, kActorMcCoy, true); Actor_Face_Actor(kActorHasan, kActorMcCoy, true);
if (!Game_Flag_Query(kFlagHassanTalk)) { if (!Game_Flag_Query(kFlagAR02HassanTalk)) {
Actor_Says(kActorHasan, 0, 14); Actor_Says(kActorHasan, 0, 14);
Actor_Says(kActorMcCoy, 140, 18); Actor_Says(kActorMcCoy, 140, 18);
Game_Flag_Set(kFlagHassanTalk); Game_Flag_Set(kFlagAR02HassanTalk);
return true; return true;
} }
dialogueWithHassan(); dialogueWithHassan();
@ -183,22 +183,22 @@ bool SceneScriptAR02::ClickedOnItem(int itemId, bool a2) {
if (itemId == kItemScrorpions) { if (itemId == kItemScrorpions) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.96f, 0.0f, -1078.45f, 12, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.96f, 0.0f, -1078.45f, 12, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true); Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true);
if (!Game_Flag_Query(kFlagScorpionsChecked)) { if (!Game_Flag_Query(kFlagAR02ScorpionsChecked)) {
Actor_Says(kActorInsectDealer, 0, 14); Actor_Says(kActorInsectDealer, 0, 14);
Actor_Says(kActorMcCoy, 55, 18); Actor_Says(kActorMcCoy, 55, 18);
Actor_Says(kActorInsectDealer, 10, 14); Actor_Says(kActorInsectDealer, 10, 14);
Actor_Says(kActorMcCoy, 60, 18); Actor_Says(kActorMcCoy, 60, 18);
Actor_Says(kActorInsectDealer, 20, 14); Actor_Says(kActorInsectDealer, 20, 14);
Game_Flag_Set(kFlagScorpionsChecked); Game_Flag_Set(kFlagAR02ScorpionsChecked);
} else if ( Game_Flag_Query(kFlagScorpionsChecked) } else if ( Game_Flag_Query(kFlagAR02ScorpionsChecked)
&& !Game_Flag_Query(kFlagStungByScorpion) && !Game_Flag_Query(kFlagAR02StungByScorpion)
) { ) {
Actor_Says(kActorMcCoy, 65, 21); Actor_Says(kActorMcCoy, 65, 21);
Actor_Says(kActorInsectDealer, 30, 14); Actor_Says(kActorInsectDealer, 30, 14);
Actor_Says(kActorInsectDealer, 40, 14); Actor_Says(kActorInsectDealer, 40, 14);
Actor_Says(kActorMcCoy, 70, 18); Actor_Says(kActorMcCoy, 70, 18);
Actor_Says(kActorInsectDealer, 50, 14); Actor_Says(kActorInsectDealer, 50, 14);
Game_Flag_Set(kFlagStungByScorpion); Game_Flag_Set(kFlagAR02StungByScorpion);
} else { } else {
Actor_Says(kActorMcCoy, 8527, 14); Actor_Says(kActorMcCoy, 8527, 14);
} }
@ -222,8 +222,8 @@ bool SceneScriptAR02::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -465.0f, 0.0f, -799.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -465.0f, 0.0f, -799.0f, 0, 1, false, 0)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -560.0f, 0.0f, -799.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -560.0f, 0.0f, -799.0f, 0, 0, false, 0);
Game_Flag_Set(kFlagAR02toRC03); Game_Flag_Set(kFlagAR02toRC03);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Music_Stop(3); Music_Stop(3);
Set_Enter(kSetRC03, kSceneRC03); Set_Enter(kSetRC03, kSceneRC03);
} }
@ -302,7 +302,7 @@ void SceneScriptAR02::dialogueWithInsectDealer1() {
Actor_Says(kActorInsectDealer, 170, 14); Actor_Says(kActorInsectDealer, 170, 14);
Actor_Says(kActorMcCoy, 100, 16); Actor_Says(kActorMcCoy, 100, 16);
Actor_Says(kActorInsectDealer, 180, 13); Actor_Says(kActorInsectDealer, 180, 13);
Game_Flag_Set(kFlagInsectDealerInterviewed); Game_Flag_Set(kFlagAR02InsectDealerInterviewed);
Actor_Clue_Acquire(kActorMcCoy, kCluePeruvianLadyInterview, true, kActorInsectDealer); Actor_Clue_Acquire(kActorMcCoy, kCluePeruvianLadyInterview, true, kActorInsectDealer);
break; break;

View file

@ -32,25 +32,28 @@ void SceneScriptBB01::InitializeScene() {
} else { } else {
Setup_Scene_Information(43.0f, 0.0f, 1058.0f, 0); Setup_Scene_Information(43.0f, 0.0f, 1058.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 0, 0, 72, 299, 3);
Scene_Exit_Add_2D_Exit(0, 0, 0, 72, 299, 3);
Scene_Exit_Add_2D_Exit(1, 151, 218, 322, 290, 3); Scene_Exit_Add_2D_Exit(1, 151, 218, 322, 290, 3);
if (Game_Flag_Query(kFlagSpinnerAtBB01)) { if (Game_Flag_Query(kFlagSpinnerAtBB01)) {
Scene_Exit_Add_2D_Exit(2, 0, 311, 312, 479, 2); Scene_Exit_Add_2D_Exit(2, 0, 311, 312, 479, 2);
} }
Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
Ambient_Sounds_Add_Looping_Sound( 54, 50, 0, 1);
Ambient_Sounds_Add_Looping_Sound(105, 25, -100, 0); Ambient_Sounds_Add_Looping_Sound(105, 25, -100, 0);
Ambient_Sounds_Add_Sound(82, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 82, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(83, 5, 60, 40, 65, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 83, 5, 60, 40, 65, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(84, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 84, 5, 60, 40, 60, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(67, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 67, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(66, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 66, 5, 80, 20, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(378, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(378, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(379, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 5, 120, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
if (Game_Flag_Query(kFlagSpinnerAtBB01) if (Game_Flag_Query(kFlagSpinnerAtBB01)
&& !Game_Flag_Query(kFlagDR02toBB01) && !Game_Flag_Query(kFlagDR02toBB01)
&& !Game_Flag_Query(kFlagBB02toBB01) && !Game_Flag_Query(kFlagBB02toBB01)
@ -95,12 +98,13 @@ bool SceneScriptBB01::ClickedOnExit(int exitId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 9.0f, 818.0f, 0, true, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 9.0f, 818.0f, 0, true, false, 0);
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -233.0f, 9.0f, 846.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -233.0f, 9.0f, 846.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagBB01toDR02); Game_Flag_Set(kFlagBB01toDR02);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR02); Set_Enter(kSetDR01_DR02_DR04, kSceneDR02);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -125.39f, 9.0f, 372.45f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -125.39f, 9.0f, 372.45f, 0, true, false, 0)) {
Game_Flag_Set(kFlagBB01toBB02); Game_Flag_Set(kFlagBB01toBB02);
@ -108,80 +112,81 @@ bool SceneScriptBB01::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 43.0f, 0.0f, 1062.0f, 0, false, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 43.0f, 0.0f, 1062.0f, 0, false, false, 0)) {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
int spinnerDest = Spinner_Interface_Choose_Dest(3, false); int spinnerDest = Spinner_Interface_Choose_Dest(3, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtBB01); Game_Flag_Reset(kFlagSpinnerAtBB01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 3, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, 3, true);
break; break;
} }
@ -199,10 +204,14 @@ void SceneScriptBB01::SceneFrameAdvanced(int frame) {
if (frame == 193) { if (frame == 193) {
Sound_Play(118, 40, 0, 0, 50); Sound_Play(118, 40, 0, 0, 50);
} }
if (frame == 241 || frame == 363) { if (frame == 241
|| frame == 363
) {
Sound_Play(116, 100, -50, -50, 50); Sound_Play(116, 100, -50, -50, 50);
} }
if (frame == 286 || frame == 407) { if (frame == 286
|| frame == 407
) {
Sound_Play(119, 100, -50, -50, 50); Sound_Play(119, 100, -50, -50, 50);
} }
if (frame == 433) { if (frame == 433) {

View file

@ -24,44 +24,54 @@
namespace BladeRunner { namespace BladeRunner {
enum kBB02Loops {
kBB02LoopElevatorComingDown = 0,
kBB02LoopMainElevatorDown = 1,
kBB02LoopElevatorGoingUp = 3,
kBB02LoopMainElevatorUp = 4
};
void SceneScriptBB02::InitializeScene() { void SceneScriptBB02::InitializeScene() {
if (Game_Flag_Query(kFlagBB03toBB02)) { if (Game_Flag_Query(kFlagBB03toBB02)) {
Setup_Scene_Information(179.0f, -415.06f, 274.0f, 904); Setup_Scene_Information(179.0f, -415.06f, 274.0f, 904);
} else if (Game_Flag_Query(333)) { } else if (Game_Flag_Query(kFlagBB04toBB02)) {
Setup_Scene_Information(-12.0f, -415.06f, -27.0f, 264); Setup_Scene_Information(-12.0f, -415.06f, -27.0f, 264);
Scene_Loop_Start_Special(0, 0, 0); Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kBB02LoopElevatorComingDown, false);
} else { } else {
Setup_Scene_Information(98.0f, -415.06f, -593.0f, 530); Setup_Scene_Information(98.0f, -415.06f, -593.0f, 530);
Game_Flag_Reset(kFlagBB01toBB02); Game_Flag_Reset(kFlagBB01toBB02);
} }
Scene_Exit_Add_2D_Exit(0, 313, 137, 353, 173, 0); Scene_Exit_Add_2D_Exit(0, 313, 137, 353, 173, 0);
Scene_Exit_Add_2D_Exit(1, 207, 291, 275, 443, 3); Scene_Exit_Add_2D_Exit(1, 207, 291, 275, 443, 3);
Scene_Exit_Add_2D_Exit(2, 303, 422, 639, 479, 2); Scene_Exit_Add_2D_Exit(2, 303, 422, 639, 479, 2);
Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound( 54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(82, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 82, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(83, 5, 60, 20, 45, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 83, 5, 60, 20, 45, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(84, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 84, 5, 60, 20, 40, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(72, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 72, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(73, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 73, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 74, 5, 80, 14, 16, -100, 100, -101, -101, 0, 0);
if (!Game_Flag_Query(494)) {
Game_Flag_Set(493); if (!Game_Flag_Query(kFlagBB02Entered)) {
Game_Flag_Set(494); Game_Flag_Set(kFlagBB02ElevatorDown);
Game_Flag_Set(kFlagBB02Entered);
} }
if (Game_Flag_Query(493)) { if (Game_Flag_Query(kFlagBB02ElevatorDown)) {
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(kBB02LoopMainElevatorDown);
} else { } else {
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(kBB02LoopMainElevatorUp);
} }
} }
@ -96,24 +106,26 @@ bool SceneScriptBB02::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -415.06f, -27.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -415.06f, -27.0f, 0, 1, false, 0)) {
Player_Loses_Control(); Player_Loses_Control();
if (!Game_Flag_Query(493)) { if (!Game_Flag_Query(kFlagBB02ElevatorDown)) {
Scene_Loop_Start_Special(kSceneLoopModeOnce, 0, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, kBB02LoopElevatorComingDown, true);
} }
Game_Flag_Set(332); Game_Flag_Set(kFlagBB02toBB04);
Game_Flag_Reset(493); Game_Flag_Reset(kFlagBB02ElevatorDown);
Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB04); Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB04);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, false); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB02LoopElevatorGoingUp, false);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 1, false, 0)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 179.0f, -415.06f, 274.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 179.0f, -415.06f, 274.0f, 0, 0, false, 0);
Game_Flag_Set(kFlagBB02toBB03); Game_Flag_Set(kFlagBB02toBB03);
Game_Flag_Reset(493); Game_Flag_Reset(kFlagBB02ElevatorDown);
Set_Enter(kSetBB03, kSceneBB03); Set_Enter(kSetBB03, kSceneBB03);
} }
return true; return true;
@ -141,10 +153,10 @@ void SceneScriptBB02::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB03toBB02)) { if (Game_Flag_Query(kFlagBB03toBB02)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 0, false, 0);
Game_Flag_Reset(kFlagBB03toBB02); Game_Flag_Reset(kFlagBB03toBB02);
} else if (Game_Flag_Query(333)) { } else if (Game_Flag_Query(kFlagBB04toBB02)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, 0, false, 0);
Player_Gains_Control(); Player_Gains_Control();
Game_Flag_Reset(333); Game_Flag_Reset(kFlagBB04toBB02);
} }
} }

View file

@ -33,32 +33,34 @@ void SceneScriptBB03::InitializeScene() {
if (Game_Flag_Query(kFlagBB05toBB03)) { if (Game_Flag_Query(kFlagBB05toBB03)) {
Setup_Scene_Information(204.0f, 60.16f, -164.0f, 740); Setup_Scene_Information(204.0f, 60.16f, -164.0f, 740);
} }
Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 167, 372, 439, 479, 2); Scene_Exit_Add_2D_Exit(1, 167, 372, 439, 479, 2);
Scene_Exit_Add_2D_Exit(2, 451, 115, 547, 320, 1); Scene_Exit_Add_2D_Exit(2, 451, 115, 547, 320, 1);
Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound( 54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(105, 34, 100, 1); Ambient_Sounds_Add_Looping_Sound(105, 34, 100, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptBB03::SceneLoaded() { void SceneScriptBB03::SceneLoaded() {
@ -84,8 +86,8 @@ bool SceneScriptBB03::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB03::ClickedOnExit(int exitId) { bool SceneScriptBB03::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, -64.0f, 0, true, false, 0)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, 0.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 176.0f, 60.16f, 0.0f, 0, false, false, 0);
Game_Flag_Set(kFlagBB03toBB04); Game_Flag_Set(kFlagBB03toBB04);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
@ -93,8 +95,9 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.0f, 60.16f, 0.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.0f, 60.16f, 0.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagBB03toBB02); Game_Flag_Set(kFlagBB03toBB02);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
@ -102,19 +105,20 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 60.16f, -164.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 60.16f, -164.0f, 0, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) < 4) { if (Global_Variable_Query(kVariableChapter) < 4) {
if (Actor_Query_Goal_Number(kActorSebastian) == 200) { if (Actor_Query_Goal_Number(kActorSebastian) == 200) {
Actor_Says(kActorSebastian, 70, 3); Actor_Says(kActorSebastian, 70, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 7010, 13); Actor_Says(kActorMcCoy, 7010, 13);
Actor_Says(kActorSebastian, 80, 3); Actor_Says(kActorSebastian, 80, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 7015, 12); Actor_Says(kActorMcCoy, 7015, 12);
Actor_Says(kActorSebastian, 90, 3); Actor_Says(kActorSebastian, 90, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 7020, 14); Actor_Says(kActorMcCoy, 7020, 14);
Actor_Says(kActorSebastian, 100, 3); Actor_Says(kActorSebastian, 100, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 7025, 15); Actor_Says(kActorMcCoy, 7025, 15);
Actor_Says(kActorSebastian, 110, 3); Actor_Says(kActorSebastian, 110, kAnimationModeTalk);
Actor_Set_Targetable(kActorBryant, false); Actor_Set_Targetable(kActorBryant, false);
Actor_Set_Targetable(kActorGeneralDoll, false); Actor_Set_Targetable(kActorGeneralDoll, false);
} }
@ -123,7 +127,7 @@ bool SceneScriptBB03::ClickedOnExit(int exitId) {
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Set_Enter(kSetBB05, kSceneBB05); Set_Enter(kSetBB05, kSceneBB05);
} else { } else {
Actor_Says(kActorMcCoy, 8522, 3); Actor_Says(kActorMcCoy, 8522, kAnimationModeTalk);
} }
} }
return true; return true;

View file

@ -31,31 +31,33 @@ void SceneScriptBB04::InitializeScene() {
} else { } else {
Setup_Scene_Information(-15.0f, -25.17f, 45.0f, 691); Setup_Scene_Information(-15.0f, -25.17f, 45.0f, 691);
} }
Scene_Exit_Add_2D_Exit(0, 218, 102, 360, 254, 1); Scene_Exit_Add_2D_Exit(0, 218, 102, 360, 254, 1);
Scene_Exit_Add_2D_Exit(1, 0, 334, 639, 479, 2); Scene_Exit_Add_2D_Exit(1, 0, 334, 639, 479, 2);
Ambient_Sounds_Add_Looping_Sound(54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound( 54, 20, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(105, 44, -100, 1); Ambient_Sounds_Add_Looping_Sound(105, 44, -100, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 72, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 73, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 74, 5, 80, 20, 20, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptBB04::SceneLoaded() { void SceneScriptBB04::SceneLoaded() {
@ -80,19 +82,20 @@ bool SceneScriptBB04::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB04::ClickedOnExit(int exitId) { bool SceneScriptBB04::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, true, false, 0)) {
Player_Loses_Control(); Player_Loses_Control();
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -15.0f, -25.17f, 45.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -15.0f, -25.17f, 45.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(333); Game_Flag_Set(kFlagBB04toBB02);
Game_Flag_Set(493); Game_Flag_Set(493);
Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB02); Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB02);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -107.0f, -26.6f, 397.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -107.0f, -26.6f, 397.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB04toBB03); Game_Flag_Set(kFlagBB04toBB03);
@ -114,10 +117,10 @@ void SceneScriptBB04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptBB04::PlayerWalkedIn() { void SceneScriptBB04::PlayerWalkedIn() {
if (Game_Flag_Query(332)) { if (Game_Flag_Query(kFlagBB02toBB04)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, false, false, 0);
Player_Gains_Control(); Player_Gains_Control();
Game_Flag_Reset(332); Game_Flag_Reset(kFlagBB02toBB04);
} }
} }

View file

@ -26,39 +26,42 @@ namespace BladeRunner {
void SceneScriptBB05::InitializeScene() { void SceneScriptBB05::InitializeScene() {
if (Game_Flag_Query(kFlagBB06toBB05)) { if (Game_Flag_Query(kFlagBB06toBB05)) {
Setup_Scene_Information(95.0f, -60.31f, 331.0f, 0); Setup_Scene_Information( 95.0f, -60.31f, 331.0f, 0);
} else if (Game_Flag_Query(kFlagBB12toBB05)) { } else if (Game_Flag_Query(kFlagBB12toBB05)) {
Setup_Scene_Information(87.0f, -60.34f, -96.0f, 0); Setup_Scene_Information( 87.0f, -60.34f, -96.0f, 0);
} else if (Game_Flag_Query(kFlagBB07toBB05)) { } else if (Game_Flag_Query(kFlagBB07toBB05)) {
Setup_Scene_Information(271.0f, -60.31f, 203.0f, 0); Setup_Scene_Information( 271.0f, -60.31f, 203.0f, 0);
} else { } else {
Setup_Scene_Information(-212.0f, -60.31f, 131.0f, 0); Setup_Scene_Information(-212.0f, -60.31f, 131.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 92, 125, 187, 317, 3);
Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(0, 92, 125, 187, 317, 3);
Scene_Exit_Add_2D_Exit(2, 589, 0, 639, 479, 1); Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
Scene_Exit_Add_2D_Exit(2, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(3, 481, 113, 573, 307, 0); Scene_Exit_Add_2D_Exit(3, 481, 113, 573, 307, 0);
Ambient_Sounds_Add_Looping_Sound(54, 12, 0, 1);
Ambient_Sounds_Add_Looping_Sound( 54, 12, 0, 1);
Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1); Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
Ambient_Sounds_Add_Looping_Sound(105, 14, 0, 1); Ambient_Sounds_Add_Looping_Sound(105, 14, 0, 1);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 90, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 91, 5, 50, 17, 17, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(72, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 72, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(73, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 73, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 74, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
if (!Game_Flag_Query(495)) { if (!Game_Flag_Query(495)) {
Overlay_Play("BB05OVER", 0, 0, 0, 0); Overlay_Play("BB05OVER", 0, false, false, 0);
Game_Flag_Set(495); Game_Flag_Set(495);
} }
} }
@ -97,7 +100,7 @@ bool SceneScriptBB05::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB05::ClickedOnExit(int exitId) { bool SceneScriptBB05::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -212.0f, -60.31f, 131.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -212.0f, -60.31f, 131.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB05toBB03); Game_Flag_Set(kFlagBB05toBB03);
@ -105,8 +108,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 331.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 331.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB05toBB06); Game_Flag_Set(kFlagBB05toBB06);
@ -114,8 +118,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 271.0f, -60.31f, 203.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 271.0f, -60.31f, 203.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB05toBB07); Game_Flag_Set(kFlagBB05toBB07);
@ -123,8 +128,9 @@ bool SceneScriptBB05::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.0f, -60.34f, -108.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.0f, -60.34f, -108.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB05toBB12); Game_Flag_Set(kFlagBB05toBB12);
@ -147,18 +153,19 @@ void SceneScriptBB05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptBB05::PlayerWalkedIn() { void SceneScriptBB05::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB06toBB05)) { if (Game_Flag_Query(kFlagBB06toBB05)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 303.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 303.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB06toBB05); Game_Flag_Reset(kFlagBB06toBB05);
} else if (Game_Flag_Query(kFlagBB07toBB05)) { } else if (Game_Flag_Query(kFlagBB07toBB05)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 231.0f, -60.31f, 203.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 231.0f, -60.31f, 203.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB07toBB05); Game_Flag_Reset(kFlagBB07toBB05);
} else if (Game_Flag_Query(kFlagBB12toBB05)) { } else if (Game_Flag_Query(kFlagBB12toBB05)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 111.0f, -60.31f, -24.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 111.0f, -60.31f, -24.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB12toBB05); Game_Flag_Reset(kFlagBB12toBB05);
} else { } else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB03toBB05); Game_Flag_Reset(kFlagBB03toBB05);
} }
if (Actor_Query_Goal_Number(kActorSebastian) == 200) { if (Actor_Query_Goal_Number(kActorSebastian) == 200) {
Actor_Face_Actor(kActorSebastian, kActorMcCoy, true); Actor_Face_Actor(kActorSebastian, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorSebastian, true); Actor_Face_Actor(kActorMcCoy, kActorSebastian, true);
@ -182,12 +189,12 @@ void SceneScriptBB05::PlayerWalkedIn() {
} else { } else {
Actor_Put_In_Set(kActorGeneralDoll, kSetBB05); Actor_Put_In_Set(kActorGeneralDoll, kSetBB05);
Actor_Set_At_Waypoint(kActorGeneralDoll, 134, 0); Actor_Set_At_Waypoint(kActorGeneralDoll, 134, 0);
Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 135, 0, 0, false); Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 135, 0, false, false);
Actor_Says(kActorGeneralDoll, 0, 3); Actor_Says(kActorGeneralDoll, 0, kAnimationModeTalk);
Actor_Face_Actor(kActorMcCoy, kActorGeneralDoll, true); Actor_Face_Actor(kActorMcCoy, kActorGeneralDoll, true);
Actor_Face_Actor(kActorSebastian, kActorGeneralDoll, true); Actor_Face_Actor(kActorSebastian, kActorGeneralDoll, true);
Actor_Says(kActorSebastian, 220, 13); Actor_Says(kActorSebastian, 220, 13);
Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 134, 0, 0, false); Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 134, 0, false, false);
Actor_Face_Actor(kActorSebastian, kActorMcCoy, true); Actor_Face_Actor(kActorSebastian, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorSebastian, true); Actor_Face_Actor(kActorMcCoy, kActorSebastian, true);
Actor_Says(kActorSebastian, 230, 15); Actor_Says(kActorSebastian, 230, 15);

View file

@ -25,49 +25,54 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptBB06::InitializeScene() { void SceneScriptBB06::InitializeScene() {
if (Game_Flag_Query(394)) { if (Game_Flag_Query(kFlagBB51toBB06a)) {
Setup_Scene_Information(76.0f, 0.0f, 79.0f, 622); Setup_Scene_Information( 76.0f, 0.0f, 79.0f, 622);
} else if (Game_Flag_Query(395)) { } else if (Game_Flag_Query(kFlagBB51toBB06b)) {
Setup_Scene_Information(55.0f, 0.0f, -96.0f, 761); Setup_Scene_Information( 55.0f, 0.0f, -96.0f, 761);
} else if (Game_Flag_Query(362)) { } else if (Game_Flag_Query(kFlagBB07toBB06)) {
Setup_Scene_Information(-115.0f, 0.0f, -103.0f, 375); Setup_Scene_Information(-115.0f, 0.0f, -103.0f, 375);
Game_Flag_Reset(362); Game_Flag_Reset(kFlagBB07toBB06);
} else { } else {
Setup_Scene_Information(-37.0f, 0.0f, 178.0f, 0); Setup_Scene_Information(-37.0f, 0.0f, 178.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 0, 43, 14, 478, 3);
Scene_Exit_Add_2D_Exit(1, 425, 0, 639, 361, 0); Scene_Exit_Add_2D_Exit(0, 0, 43, 14, 478, 3);
Scene_Exit_Add_2D_Exit(1, 425, 0, 639, 361, 0);
Scene_Exit_Add_2D_Exit(3, 195, 164, 239, 280, 3); Scene_Exit_Add_2D_Exit(3, 195, 164, 239, 280, 3);
Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1); Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(394) || Game_Flag_Query(395)) {
Scene_Loop_Start_Special(0, 0, 0); if (Game_Flag_Query(kFlagBB51toBB06a)
|| Game_Flag_Query(kFlagBB51toBB06b)
) {
Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
Game_Flag_Reset(394); Game_Flag_Reset(kFlagBB51toBB06a);
Game_Flag_Reset(395); Game_Flag_Reset(kFlagBB51toBB06b);
} else { } else {
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
} }
if (Game_Flag_Query(410)) { if (Game_Flag_Query(410)) {
Overlay_Play("BB06OVER", 1, 1, 0, 0); Overlay_Play("BB06OVER", 1, true, false, 0);
} }
} }
void SceneScriptBB06::SceneLoaded() { void SceneScriptBB06::SceneLoaded() {
Obstacle_Object("V2CHESSTBL01", true); Obstacle_Object("V2CHESSTBL01", true);
Clickable_Object("BOX31"); Clickable_Object("BOX31");
Item_Add_To_World(77, 931, 2, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true); Item_Add_To_World(77, 931, kSetBB02_BB04_BB06_BB51, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
} }
bool SceneScriptBB06::MouseClick(int x, int y) { bool SceneScriptBB06::MouseClick(int x, int y) {
@ -96,7 +101,7 @@ bool SceneScriptBB06::ClickedOnActor(int actorId) {
bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) { bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) {
if (itemId == 77) { if (itemId == 77) {
if (Player_Query_Combat_Mode()) { if (Player_Query_Combat_Mode()) {
Overlay_Play("BB06OVER", 1, 1, 1, 0); Overlay_Play("BB06OVER", 1, true, true, 0);
Game_Flag_Set(410); Game_Flag_Set(410);
Item_Remove_From_World(77); Item_Remove_From_World(77);
return true; return true;
@ -107,7 +112,7 @@ bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB06::ClickedOnExit(int exitId) { bool SceneScriptBB06::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -37.0f, 0.0f, 178.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -37.0f, 0.0f, 178.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB06toBB05); Game_Flag_Set(kFlagBB06toBB05);
@ -115,20 +120,22 @@ bool SceneScriptBB06::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 101.0f, 0.0f, -25.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 101.0f, 0.0f, -25.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(393); Game_Flag_Set(kFlagBB06toBB51);
Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB51); Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB51);
} }
return true; return true;
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -115.0f, 0.0f, -103.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -115.0f, 0.0f, -103.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(363); Game_Flag_Set(kFlagBB06toBB07);
Set_Enter(kSetBB06_BB07, kSceneBB07); Set_Enter(kSetBB06_BB07, kSceneBB07);
} }
return true; return true;

View file

@ -25,33 +25,36 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptBB07::InitializeScene() { void SceneScriptBB07::InitializeScene() {
if (Game_Flag_Query(365)) { if (Game_Flag_Query(kFlagBB12toBB07)) {
Setup_Scene_Information(-655.0f, 252.59f, -1136.0f, 323); Setup_Scene_Information(-655.0f, 252.59f, -1136.0f, 323);
} else if (Game_Flag_Query(363)) { } else if (Game_Flag_Query(kFlagBB06toBB07)) {
Setup_Scene_Information(-551.0f, 252.59f, -1004.0f, 29); Setup_Scene_Information(-551.0f, 252.59f, -1004.0f, 29);
Game_Flag_Reset(363); Game_Flag_Reset(kFlagBB06toBB07);
} else { } else {
Setup_Scene_Information(-652.0f, 252.59f, -1018.0f, 268); Setup_Scene_Information(-652.0f, 252.59f, -1018.0f, 268);
} }
Scene_Exit_Add_2D_Exit(0, 0, 16, 51, 426, 3);
Scene_Exit_Add_2D_Exit(0, 0, 16, 51, 426, 3);
Scene_Exit_Add_2D_Exit(1, 124, 101, 172, 305, 3); Scene_Exit_Add_2D_Exit(1, 124, 101, 172, 305, 3);
Scene_Exit_Add_2D_Exit(2, 282, 408, 476, 479, 2); Scene_Exit_Add_2D_Exit(2, 282, 408, 476, 479, 2);
Scene_2D_Region_Add(0, 308, 283, 354, 308); Scene_2D_Region_Add(0, 308, 283, 354, 308);
Ambient_Sounds_Add_Looping_Sound(332, 44, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 44, 0, 1);
Ambient_Sounds_Add_Looping_Sound(331, 24, 0, 1); Ambient_Sounds_Add_Looping_Sound(331, 24, 0, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Overlay_Play("BB07OVER", 0, 1, 0, 0);
Overlay_Play("BB07OVER", 0, true, false, 0);
} }
void SceneScriptBB07::SceneLoaded() { void SceneScriptBB07::SceneLoaded() {
@ -120,7 +123,7 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Overlay_Remove("BB07OVER"); Overlay_Remove("BB07OVER");
Game_Flag_Set(364); Game_Flag_Set(kFlagBB07toBB12);
Set_Enter(kSetBB12, kSceneBB12); Set_Enter(kSetBB12, kSceneBB12);
} }
return true; return true;
@ -130,7 +133,7 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Overlay_Remove("BB07OVER"); Overlay_Remove("BB07OVER");
Game_Flag_Set(362); Game_Flag_Set(kFlagBB07toBB06);
Set_Enter(kSetBB06_BB07, kSceneBB06); Set_Enter(kSetBB06_BB07, kSceneBB06);
} }
return true; return true;
@ -169,9 +172,9 @@ void SceneScriptBB07::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -594.0f, 252.59f, -1018.0f, 6, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -594.0f, 252.59f, -1018.0f, 6, 0, false, 0);
Game_Flag_Reset(kFlagBB05toBB07); Game_Flag_Reset(kFlagBB05toBB07);
} }
if (Game_Flag_Query(365)) { if (Game_Flag_Query(kFlagBB12toBB07)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -602.0f, 252.59f, -1124.0f, 6, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -602.0f, 252.59f, -1124.0f, 6, 0, false, 0);
Game_Flag_Reset(365); Game_Flag_Reset(kFlagBB12toBB07);
} }
} }

View file

@ -25,7 +25,7 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptBB12::InitializeScene() { void SceneScriptBB12::InitializeScene() {
if (Game_Flag_Query(364)) { if (Game_Flag_Query(kFlagBB07toBB12)) {
Setup_Scene_Information(138.0f, 0.0f, 104.0f, 760); Setup_Scene_Information(138.0f, 0.0f, 104.0f, 760);
} else if (Game_Flag_Query(506)) { } else if (Game_Flag_Query(506)) {
Setup_Scene_Information(-129.0f, 0.0f, 64.0f, 307); Setup_Scene_Information(-129.0f, 0.0f, 64.0f, 307);
@ -92,7 +92,7 @@ bool SceneScriptBB12::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 138.0f, 0.0f, 104.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 138.0f, 0.0f, 104.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(365); Game_Flag_Set(kFlagBB12toBB07);
Set_Enter(kSetBB07, kSceneBB07); Set_Enter(kSetBB07, kSceneBB07);
} }
return true; return true;
@ -126,9 +126,9 @@ void SceneScriptBB12::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptBB12::PlayerWalkedIn() { void SceneScriptBB12::PlayerWalkedIn() {
if (Game_Flag_Query(364)) { if (Game_Flag_Query(kFlagBB07toBB12)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 114.0f, 0.0f, 104.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 114.0f, 0.0f, 104.0f, 0, 0, false, 0);
Game_Flag_Reset(364); Game_Flag_Reset(kFlagBB07toBB12);
} else if (Game_Flag_Query(506)) { } else if (Game_Flag_Query(506)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -101.0f, 0.0f, 64.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -101.0f, 0.0f, 64.0f, 0, 0, false, 0);
Game_Flag_Reset(506); Game_Flag_Reset(506);

View file

@ -26,7 +26,7 @@ namespace BladeRunner {
void SceneScriptBB51::InitializeScene() { void SceneScriptBB51::InitializeScene() {
Setup_Scene_Information(101.0f, 0.0f, -25.0f, 152); Setup_Scene_Information(101.0f, 0.0f, -25.0f, 152);
Game_Flag_Reset(393); Game_Flag_Reset(kFlagBB06toBB51);
Scene_Exit_Add_2D_Exit(0, 615, 0, 639, 479, 1); Scene_Exit_Add_2D_Exit(0, 615, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 0, 323, 241, 479, 2); Scene_Exit_Add_2D_Exit(1, 0, 323, 241, 479, 2);
Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1); Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
@ -81,19 +81,19 @@ bool SceneScriptBB51::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB51::ClickedOnExit(int exitId) { bool SceneScriptBB51::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 76.0f, 0.0f, 79.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 76.0f, 0.0f, 79.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(394); Game_Flag_Set(kFlagBB51toBB06a);
Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06); Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 55.0f, 0.0f, -96.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 55.0f, 0.0f, -96.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(395); Game_Flag_Set(kFlagBB51toBB06b);
Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06); Set_Enter(kSetBB02_BB04_BB06_BB51, kSceneBB06);
} }
return true; return true;

View file

@ -72,7 +72,7 @@ void SceneScriptCT01::InitializeScene() {
if (Actor_Clue_Query(kActorMcCoy, kClueZubenRunsAway)) { if (Actor_Clue_Query(kActorMcCoy, kClueZubenRunsAway)) {
Scene_Exit_Add_2D_Exit(kCT01ExitCT03, 571, 233, 639, 367, 1); Scene_Exit_Add_2D_Exit(kCT01ExitCT03, 571, 233, 639, 367, 1);
} }
if (Game_Flag_Query(kFlagWarehouseOpen)) { if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
Scene_Exit_Add_2D_Exit(kCT01ExitCT12, 506, 400, 639, 479, 2); Scene_Exit_Add_2D_Exit(kCT01ExitCT12, 506, 400, 639, 479, 2);
} }
if (Game_Flag_Query(kFlagSpinnerAtCT01)) { if (Game_Flag_Query(kFlagSpinnerAtCT01)) {
@ -188,19 +188,17 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
} }
if (actorId == kActorGordo) { if (actorId == kActorGordo) {
if (Actor_Query_Goal_Number(kActorGordo) == 0) { if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -338.1f, -6.5f, 419.65f, 6, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -338.1f, -6.5f, 419.65f, 6, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorGordo, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true);
if (!Game_Flag_Query(kFlagCT01McCoyTalkedToGordo)) { if (!Game_Flag_Query(kFlagCT01GordoTalk)) {
Actor_Says(kActorMcCoy, 335, 18); Actor_Says(kActorMcCoy, 335, 18);
Actor_Says(kActorGordo, 20, 30); Actor_Says(kActorGordo, 20, 30);
Game_Flag_Set(kFlagCT01McCoyTalkedToGordo); Game_Flag_Set(kFlagCT01GordoTalk);
Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, true, kActorMcCoy); Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, true, kActorMcCoy);
Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, true, kActorMcCoy); Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, true, kActorMcCoy);
Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -1); Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -1);
} else if (Actor_Query_Goal_Number(kActorGordo) != 0) { } else if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoDefault) {
Actor_Says(kActorMcCoy, 365, 14);
} else {
Actor_Says(kActorMcCoy, 340, 13); Actor_Says(kActorMcCoy, 340, 13);
Actor_Says(kActorMcCoy, 345, 11); Actor_Says(kActorMcCoy, 345, 11);
Actor_Says(kActorGordo, 30, 30); Actor_Says(kActorGordo, 30, 30);
@ -208,6 +206,8 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
Actor_Says(kActorGordo, 40, 30); Actor_Says(kActorGordo, 40, 30);
Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -5); Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -5);
Player_Loses_Control(); Player_Loses_Control();
} else {
Actor_Says(kActorMcCoy, 365, 14);
} }
if (Actor_Query_Is_In_Current_Set(kActorZuben)) { if (Actor_Query_Is_In_Current_Set(kActorZuben)) {
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2); Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
@ -257,19 +257,19 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, true, false, 0)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0);
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
int spinnerDest = Spinner_Interface_Choose_Dest(-1, false); int spinnerDest = Spinner_Interface_Choose_Dest(-1, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
@ -277,7 +277,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
@ -285,7 +285,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
@ -293,7 +293,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
@ -301,7 +301,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
@ -309,7 +309,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
@ -317,7 +317,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
@ -325,7 +325,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
@ -333,7 +333,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagSpinnerAtCT01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
@ -341,7 +341,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Player_Loses_Control(); Player_Loses_Control();
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0);
@ -433,7 +433,7 @@ void SceneScriptCT01::PlayerWalkedOut() {
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
} }
Music_Stop(5); Music_Stop(5);
if (!Game_Flag_Query(kFlagMcCoyAtCTxx) && Global_Variable_Query(kVariableChapter) == 1) { if (!Game_Flag_Query(kFlagMcCoyInChinaTown) && Global_Variable_Query(kVariableChapter) == 1) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Outtake_Play(kOuttakeTowards3, true, -1); Outtake_Play(kOuttakeTowards3, true, -1);
@ -544,7 +544,7 @@ void SceneScriptCT01::dialogueWithHowieLee() {
if (Query_Difficulty_Level() != 0) { if (Query_Difficulty_Level() != 0) {
Global_Variable_Decrement(kVariableChinyen, 10); Global_Variable_Decrement(kVariableChinyen, 10);
} }
Game_Flag_Set(kFlagBoughtHowieLeeFood); Game_Flag_Set(kFlagCT01BoughtHowieLeeFood);
} else { } else {
Actor_Says(kActorHowieLee, 130, 15); Actor_Says(kActorHowieLee, 130, 15);
} }

View file

@ -194,7 +194,7 @@ void SceneScriptCT02::dialogueWithZuben() {
} }
bool SceneScriptCT02::ClickedOnActor(int actorId) { bool SceneScriptCT02::ClickedOnActor(int actorId) {
if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01Leave) { if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01WalkToCT02) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -255.02f, -145.11f, 212.42f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -255.02f, -145.11f, 212.42f, 0, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorZuben, true); Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
Actor_Face_Actor(kActorZuben, kActorMcCoy, true); Actor_Face_Actor(kActorZuben, kActorMcCoy, true);

View file

@ -116,8 +116,8 @@ void SceneScriptCT03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptCT03::PlayerWalkedIn() { void SceneScriptCT03::PlayerWalkedIn() {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToFreeSlotG) {
Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide); Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06HideAtFreeSlotA);
} }
} }

View file

@ -73,18 +73,18 @@ bool SceneScriptCT04::MouseClick(int x, int y) {
bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) { bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
if (objectName) { // this can be only "DUMPSTER" if (objectName) { // this can be only "DUMPSTER"
if (!Game_Flag_Query(kFlagHomelessTalkedTo) if (!Game_Flag_Query(kFlagCT04HomelessTalk)
&& !Game_Flag_Query(kFlagMcCoyKilledHomeless) && !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault && Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault
) { ) {
Game_Flag_Set(kFlagHomelessTalkedTo); Game_Flag_Set(kFlagCT04HomelessTalk);
Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave); Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
} }
if ( Game_Flag_Query(kFlagMcCoyKilledHomeless) if ( Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& !Game_Flag_Query(kFlagHomelessBodyInDumpster) && !Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
&& !Game_Flag_Query(kFlagHomelessBodyFound) && !Game_Flag_Query(kFlagCT04HomelessBodyFound)
&& !Game_Flag_Query(kFlagDumpsterEmptied) && !Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
&& Global_Variable_Query(kVariableChapter) == 1 && Global_Variable_Query(kVariableChapter) == 1
) { ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -147.41f, -621.3f, 724.57f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -147.41f, -621.3f, 724.57f, 0, true, false, 0)) {
@ -96,34 +96,34 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Voice_Over(320, kActorVoiceOver); Actor_Voice_Over(320, kActorVoiceOver);
Actor_Voice_Over(330, kActorVoiceOver); Actor_Voice_Over(330, kActorVoiceOver);
Actor_Voice_Over(340, kActorVoiceOver); Actor_Voice_Over(340, kActorVoiceOver);
Game_Flag_Set(kFlagHomelessBodyInDumpster); Game_Flag_Set(kFlagCT04HomelessBodyInDumpster);
Game_Flag_Set(kFlagHomelessBodyInDumpsterNotChecked); Game_Flag_Set(kFlagCT04HomelessBodyInDumpsterNotChecked);
} }
return false; return false;
} }
if (Game_Flag_Query(kFlagHomelessBodyInDumpster)) { if (Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)) {
if (Game_Flag_Query(kFlagDumpsterEmptied)) { if (Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)) {
Actor_Voice_Over(270, kActorVoiceOver); Actor_Voice_Over(270, kActorVoiceOver);
Actor_Voice_Over(280, kActorVoiceOver); Actor_Voice_Over(280, kActorVoiceOver);
} else if (Game_Flag_Query(kFlagHomelessBodyFound)) { } else if (Game_Flag_Query(kFlagCT04HomelessBodyFound)) {
Actor_Voice_Over(250, kActorVoiceOver); Actor_Voice_Over(250, kActorVoiceOver);
Actor_Voice_Over(260, kActorVoiceOver); Actor_Voice_Over(260, kActorVoiceOver);
} else { } else {
Actor_Voice_Over(230, kActorVoiceOver); Actor_Voice_Over(230, kActorVoiceOver);
Actor_Voice_Over(240, kActorVoiceOver); Actor_Voice_Over(240, kActorVoiceOver);
Game_Flag_Reset(kFlagHomelessBodyInDumpsterNotChecked); Game_Flag_Reset(kFlagCT04HomelessBodyInDumpsterNotChecked);
} }
return true; return true;
} }
if (!Game_Flag_Query(kFlagLicensePlaceFound)) { if (!Game_Flag_Query(kFlagCT04LicensePlaceFound)) {
if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 75, 0, true, false)) { if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 75, 0, true, false)) {
Actor_Face_Heading(kActorMcCoy, 707, false); Actor_Face_Heading(kActorMcCoy, 707, false);
Actor_Change_Animation_Mode(kActorMcCoy, 38); Actor_Change_Animation_Mode(kActorMcCoy, 38);
Actor_Clue_Acquire(kActorMcCoy, kClueLicensePlate, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueLicensePlate, true, -1);
Item_Pickup_Spin_Effect(952, 392, 225); Item_Pickup_Spin_Effect(952, 392, 225);
Game_Flag_Set(kFlagLicensePlaceFound); Game_Flag_Set(kFlagCT04LicensePlaceFound);
return true; return true;
} }
} }
@ -173,7 +173,7 @@ void SceneScriptCT04::dialogueWithHomeless() {
bool SceneScriptCT04::ClickedOnActor(int actorId) { bool SceneScriptCT04::ClickedOnActor(int actorId) {
if (actorId == kActorTransient) { if (actorId == kActorTransient) {
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
Actor_Voice_Over(290, kActorVoiceOver); Actor_Voice_Over(290, kActorVoiceOver);
Actor_Voice_Over(300, kActorVoiceOver); Actor_Voice_Over(300, kActorVoiceOver);
@ -183,7 +183,7 @@ bool SceneScriptCT04::ClickedOnActor(int actorId) {
Actor_Set_Targetable(kActorTransient, false); Actor_Set_Targetable(kActorTransient, false);
if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
Actor_Face_Actor(kActorMcCoy, kActorTransient, true); Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
if (!Game_Flag_Query(kFlagHomelessTalkedTo)) { if (!Game_Flag_Query(kFlagCT04HomelessTalk)) {
if (Game_Flag_Query(kFlagZubenRetired)) { if (Game_Flag_Query(kFlagZubenRetired)) {
Actor_Says(kActorMcCoy, 435, kAnimationModeTalk); Actor_Says(kActorMcCoy, 435, kAnimationModeTalk);
Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave); Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
@ -194,7 +194,7 @@ bool SceneScriptCT04::ClickedOnActor(int actorId) {
dialogueWithHomeless(); dialogueWithHomeless();
Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave); Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
} }
Game_Flag_Set(kFlagHomelessTalkedTo); Game_Flag_Set(kFlagCT04HomelessTalk);
} else { } else {
Actor_Face_Actor(kActorMcCoy, kActorTransient, true); Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
Actor_Says(kActorMcCoy, 435, kAnimationModeTalk); Actor_Says(kActorMcCoy, 435, kAnimationModeTalk);
@ -240,8 +240,8 @@ bool SceneScriptCT04::ClickedOn2DRegion(int region) {
} }
void SceneScriptCT04::SceneFrameAdvanced(int frame) { void SceneScriptCT04::SceneFrameAdvanced(int frame) {
if (Game_Flag_Query(325)) { if (Game_Flag_Query(kFlagCT04BodyDumped)) {
Game_Flag_Reset(325); Game_Flag_Reset(kFlagCT04BodyDumped);
Sound_Play(180, 100, 80, 80, 50); Sound_Play(180, 100, 80, 80, 50);
} }
} }

View file

@ -33,7 +33,7 @@ void SceneScriptCT05::InitializeScene() {
} else { } else {
Setup_Scene_Information(-375.0f, -109.91f, 750.0f, 600); Setup_Scene_Information(-375.0f, -109.91f, 750.0f, 600);
} }
if (Game_Flag_Query(kFlagWarehouseOpen)) { if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
Scene_Exit_Add_2D_Exit(0, 228, 205, 293, 300, 0); Scene_Exit_Add_2D_Exit(0, 228, 205, 293, 300, 0);
} }
Scene_Exit_Add_2D_Exit(1, 320, 458, 639, 479, 2); Scene_Exit_Add_2D_Exit(1, 320, 458, 639, 479, 2);
@ -44,7 +44,7 @@ void SceneScriptCT05::InitializeScene() {
Ambient_Sounds_Add_Sound( 90, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 90, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 91, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 91, 5, 20, 8, 10, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(205, 5, 30, 18, 30, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(205, 5, 30, 18, 30, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(kFlagWarehouseOpen)) { if (Game_Flag_Query(kFlagCT05WarehouseOpen)) {
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
} else { } else {
Scene_Loop_Set_Default(0); Scene_Loop_Set_Default(0);
@ -217,6 +217,7 @@ void SceneScriptCT05::PlayerWalkedIn() {
} }
Player_Gains_Control(); Player_Gains_Control();
} }
if (Game_Flag_Query(kFlagCT06toCT05)) { if (Game_Flag_Query(kFlagCT06toCT05)) {
Footstep_Sound_Override_On(2); Footstep_Sound_Override_On(2);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
@ -224,10 +225,10 @@ void SceneScriptCT05::PlayerWalkedIn() {
Loop_Actor_Travel_Stairs(kActorMcCoy, 10, false, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 10, false, kAnimationModeIdle);
Game_Flag_Reset(kFlagCT06toCT05); Game_Flag_Reset(kFlagCT06toCT05);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
if (Actor_Query_Goal_Number(kActorGordo) == 2 if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoLeftCT01
&& Game_Flag_Query(kFlagZubenPhoto) && Game_Flag_Query(kFlagCT06ZubenPhoto)
) { ) {
Actor_Set_Goal_Number(kActorGordo, 3); Actor_Set_Goal_Number(kActorGordo, kGoalGordoWalkThroughCT05);
} }
} }
} }

View file

@ -51,7 +51,7 @@ void SceneScriptCT06::InitializeScene() {
Ambient_Sounds_Add_Sound(379, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 70, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 70, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
Ambient_Sounds_Add_Sound(196, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(196, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(197, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(198, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
@ -67,7 +67,7 @@ void SceneScriptCT06::SceneLoaded() {
Unobstacle_Object("INSULPIP01", true); Unobstacle_Object("INSULPIP01", true);
Unobstacle_Object("CB BOX04", true); Unobstacle_Object("CB BOX04", true);
Unclickable_Object("DOOR"); Unclickable_Object("DOOR");
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
Preload(3); Preload(3);
Preload(4); Preload(4);
Preload(389); Preload(389);
@ -90,7 +90,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
if (actorId == kActorZuben) { if (actorId == kActorZuben) {
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, true, false); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, true, false);
Actor_Face_Actor(kActorMcCoy, kActorZuben, true); Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
if (!Game_Flag_Query(kFlagZubenPhoto)) { if (!Game_Flag_Query(kFlagCT06ZubenPhoto)) {
Actor_Clue_Acquire(kActorMcCoy, kClueZuben, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueZuben, true, -1);
Item_Pickup_Spin_Effect(984, 340, 369); Item_Pickup_Spin_Effect(984, 340, 369);
Actor_Voice_Over(350, kActorVoiceOver); Actor_Voice_Over(350, kActorVoiceOver);
@ -102,7 +102,7 @@ bool SceneScriptCT06::ClickedOnActor(int actorId) {
Actor_Voice_Over(400, kActorVoiceOver); Actor_Voice_Over(400, kActorVoiceOver);
Actor_Voice_Over(410, kActorVoiceOver); Actor_Voice_Over(410, kActorVoiceOver);
} }
Game_Flag_Set(kFlagZubenPhoto); Game_Flag_Set(kFlagCT06ZubenPhoto);
return true; return true;
} }
Actor_Says(kActorMcCoy, 8570, 13); Actor_Says(kActorMcCoy, 8570, 13);
@ -127,7 +127,7 @@ bool SceneScriptCT06::ClickedOnExit(int exitId) {
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06HideAtFreeSlotA) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 203.91f, -58.02f, 0.47f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 203.91f, -58.02f, 0.47f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_Sound(196, true); Ambient_Sounds_Remove_Sound(196, true);
Ambient_Sounds_Remove_Sound(197, true); Ambient_Sounds_Remove_Sound(197, true);

View file

@ -25,26 +25,29 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptCT11::InitializeScene() { void SceneScriptCT11::InitializeScene() {
if (Game_Flag_Query(91)) { if (Game_Flag_Query(kFlagCT12toCT11)) {
Setup_Scene_Information(-378.0f, 9.68f, -55.0f, 440); Setup_Scene_Information(-378.0f, 9.68f, -55.0f, 440);
} else if (Game_Flag_Query(558)) { } else if (Game_Flag_Query(kFlagDR01toCT11)) {
Setup_Scene_Information(315.0f, 0.0f, 628.0f, 0); Setup_Scene_Information( 315.0f, 0.0f, 628.0f, 0);
} else { } else {
Setup_Scene_Information(152.0f, 9.68f, -8.0f, 0); Setup_Scene_Information( 152.0f, 9.68f, -8.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 257, 240, 364, 330, 1); Scene_Exit_Add_2D_Exit(0, 257, 240, 364, 330, 1);
Scene_Exit_Add_2D_Exit(1, 97, 0, 155, 324, 0); Scene_Exit_Add_2D_Exit(1, 97, 0, 155, 324, 0);
Scene_Exit_Add_2D_Exit(2, 0, 0, 20, 479, 3); Scene_Exit_Add_2D_Exit(2, 0, 0, 20, 479, 3);
Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1); Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
Ambient_Sounds_Add_Sound(67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
if (Global_Variable_Query(kVariableChapter) <= 3) {
Scene_Loop_Set_Default(0); if (Global_Variable_Query(kVariableChapter) > 3) {
} else {
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
} }
} }
@ -99,25 +102,27 @@ bool SceneScriptCT11::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptCT11::ClickedOnExit(int exitId) { bool SceneScriptCT11::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 121.0f, 9.68f, -42.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 121.0f, 9.68f, -42.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagCT11toCT09); Game_Flag_Set(kFlagCT11toCT09);
Set_Enter(kSetCT09, kSceneCT09); Set_Enter(kSetCT09, kSceneCT09);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -300.0f, 9.68f, 66.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -300.0f, 9.68f, 66.0f, 0, true, false, 0)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, 9.68f, -70.0f, 0, 1, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, 9.68f, -70.0f, 0, true, false, 0);
Game_Flag_Set(kFlagCT11toCT12); Game_Flag_Set(kFlagCT11toCT12);
Set_Enter(kSetCT01_CT12, kSceneCT12); Set_Enter(kSetCT01_CT12, kSceneCT12);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 290.0f, 0.0f, 635.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 290.0f, 0.0f, 635.0f, 0, true, false, 0)) {
Game_Flag_Set(531); Game_Flag_Set(kFlagCT11toDR01);
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
} }
return true; return true;
@ -127,7 +132,7 @@ bool SceneScriptCT11::ClickedOnExit(int exitId) {
bool SceneScriptCT11::ClickedOn2DRegion(int region) { bool SceneScriptCT11::ClickedOn2DRegion(int region) {
if (region == 0 && Game_Flag_Query(725)) { if (region == 0 && Game_Flag_Query(725)) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 47, false); Actor_Face_Heading(kActorMcCoy, 47, false);
Item_Remove_From_World(115); Item_Remove_From_World(115);
Actor_Clue_Acquire(kActorMcCoy, kClueLichenDogWrapper, false, -1); Actor_Clue_Acquire(kActorMcCoy, kClueLichenDogWrapper, false, -1);
@ -141,37 +146,40 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
} }
return true; return true;
} }
if (region == 1) { if (region == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 47, false); Actor_Face_Heading(kActorMcCoy, 47, false);
int temp = 0; int cluesFound = 0;
if (Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) { if (Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) {
temp = 1; ++cluesFound;
} }
if (Actor_Clue_Query(kActorMcCoy, kCluePaintTransfer)) { if (Actor_Clue_Query(kActorMcCoy, kCluePaintTransfer)) {
++temp; ++cluesFound;
} }
if (Actor_Clue_Query(kActorMcCoy, kClueLabPaintTransfer)) { if (Actor_Clue_Query(kActorMcCoy, kClueLabPaintTransfer)) {
++temp; ++cluesFound;
} }
if (Actor_Clue_Query(kActorMcCoy, kClueLicensePlate)) { if (Actor_Clue_Query(kActorMcCoy, kClueLicensePlate)) {
temp += 2; cluesFound += 2;
} }
if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)) { if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake)) {
temp += 2; cluesFound += 2;
} }
if (Actor_Clue_Query(kActorMcCoy, kCluePartialLicenseNumber)) { if (Actor_Clue_Query(kActorMcCoy, kCluePartialLicenseNumber)) {
temp += 2; cluesFound += 2;
} }
if (temp <= 2 || Actor_Clue_Query(kActorMcCoy, kClueCar)) { if ( cluesFound > 2
Actor_Says(kActorMcCoy, 8525, 12); && !Actor_Clue_Query(kActorMcCoy, kClueCar)
} else { ) {
Actor_Voice_Over(510, kActorVoiceOver); Actor_Voice_Over(510, kActorVoiceOver);
Actor_Voice_Over(520, kActorVoiceOver); Actor_Voice_Over(520, kActorVoiceOver);
Actor_Voice_Over(530, kActorVoiceOver); Actor_Voice_Over(530, kActorVoiceOver);
Actor_Voice_Over(540, kActorVoiceOver); Actor_Voice_Over(540, kActorVoiceOver);
Actor_Clue_Acquire(kActorMcCoy, kClueCar, false, -1); Actor_Clue_Acquire(kActorMcCoy, kClueCar, false, -1);
Scene_2D_Region_Remove(1); Scene_2D_Region_Remove(1);
} else {
Actor_Says(kActorMcCoy, 8525, 12);
} }
} }
return true; return true;
@ -186,16 +194,16 @@ void SceneScriptCT11::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptCT11::PlayerWalkedIn() { void SceneScriptCT11::PlayerWalkedIn() {
if (Game_Flag_Query(91)) { if (Game_Flag_Query(kFlagCT12toCT11)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0f, 9.68f, 32.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0f, 9.68f, 32.0f, 0, false, false, 0);
Game_Flag_Reset(91); Game_Flag_Reset(kFlagCT12toCT11);
} else if (Game_Flag_Query(558)) { } else if (Game_Flag_Query(kFlagDR01toCT11)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 329.0f, 0.0f, 617.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 329.0f, 0.0f, 617.0f, 0, false, false, 0);
Game_Flag_Reset(558); Game_Flag_Reset(kFlagDR01toCT11);
} else { } else {
Player_Loses_Control(); Player_Loses_Control();
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 125.0f, 9.68f, 74.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 125.0f, 9.68f, 74.0f, 0, false, false, 0);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
Player_Gains_Control(); Player_Gains_Control();
Game_Flag_Reset(kFlagCT09toCT11); Game_Flag_Reset(kFlagCT09toCT11);

View file

@ -64,7 +64,7 @@ void SceneScriptCT12::InitializeScene() {
) { ) {
Actor_Put_In_Set(kActorGaff, kSetCT01_CT12); Actor_Put_In_Set(kActorGaff, kSetCT01_CT12);
Actor_Set_At_XYZ(kActorGaff, -534.0f, -6.5f, 952.0f, 367); Actor_Set_At_XYZ(kActorGaff, -534.0f, -6.5f, 952.0f, 367);
Game_Flag_Set(kFlagGaffSpinnerCT12); Game_Flag_Set(kFlagCT12GaffSpinner);
} }
if (Game_Flag_Query(kFlagCT01toCT12) if (Game_Flag_Query(kFlagCT01toCT12)
&& Game_Flag_Query(kFlagSpinnerAtCT01) && Game_Flag_Query(kFlagSpinnerAtCT01)
@ -87,12 +87,12 @@ void SceneScriptCT12::InitializeScene() {
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
Game_Flag_Reset(kFlagCT01toCT12); Game_Flag_Reset(kFlagCT01toCT12);
} else if (Game_Flag_Query(kFlagCT05toCT12) } else if (Game_Flag_Query(kFlagCT05toCT12)
&& Game_Flag_Query(kFlagGaffSpinnerCT12) && Game_Flag_Query(kFlagCT12GaffSpinner)
) { ) {
Game_Flag_Reset(kFlagCT05toCT12); Game_Flag_Reset(kFlagCT05toCT12);
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} else if ( Game_Flag_Query(kFlagCT05toCT12) } else if ( Game_Flag_Query(kFlagCT05toCT12)
&& !Game_Flag_Query(kFlagGaffSpinnerCT12) && !Game_Flag_Query(kFlagCT12GaffSpinner)
) { ) {
Game_Flag_Reset(kFlagCT05toCT12); Game_Flag_Reset(kFlagCT05toCT12);
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
@ -288,8 +288,8 @@ void SceneScriptCT12::PlayerWalkedIn() {
void SceneScriptCT12::PlayerWalkedOut() { void SceneScriptCT12::PlayerWalkedOut() {
Game_Flag_Reset(kFlagGenericWalkerWaiting); Game_Flag_Reset(kFlagGenericWalkerWaiting);
if (Game_Flag_Query(kFlagCT12ToUG09)) { if (Game_Flag_Query(kFlagCT12ToUG09)) {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Set(kFlagMcCoyAtUGxx); Game_Flag_Set(kFlagMcCoyInUnderground);
} }
} }

View file

@ -24,54 +24,71 @@
namespace BladeRunner { namespace BladeRunner {
enum kDR01Loops {
kDR01LoopInshotWithCrowd = 0,
kDR01LoopWithCrowd = 1,
kDR01LoopDoorAnimWithCrowd = 3,
kDR01LoopOutshotWithCrowd = 4,
kDR01LoopInshotNoCrowd = 5,
kDR01LoopNoCrowd = 6,
kDR01LoopDoorAnimNoCrowd = 8,
kDR01LoopOutshotNoCrowd = 9,
kDR01LoopNoCrowdNoSpinner = 10
};
void SceneScriptDR01::InitializeScene() { void SceneScriptDR01::InitializeScene() {
if (Game_Flag_Query(kFlagDR02toDR01)) { if (Game_Flag_Query(kFlagDR02toDR01)) {
Setup_Scene_Information(-835.0f, -0.04f, -118.0f, 664); Setup_Scene_Information( -835.0f, -0.04f, -118.0f, 664);
} else if (Game_Flag_Query(kFlagDR04toDR01)) { } else if (Game_Flag_Query(kFlagDR04toDR01)) {
Setup_Scene_Information(-711.0f, -0.04f, 70.0f, 307); Setup_Scene_Information( -711.0f, -0.04f, 70.0f, 307);
} else if (Game_Flag_Query(531)) { } else if (Game_Flag_Query(kFlagCT11toDR01)) {
Setup_Scene_Information(-1765.28f, -0.04f, -23.82f, 269); Setup_Scene_Information(-1765.28f, -0.04f, -23.82f, 269);
} else { } else {
Setup_Scene_Information(-386.0f, -0.04f, -82.0f, 792); Setup_Scene_Information( -386.0f, -0.04f, -82.0f, 792);
} }
Scene_Exit_Add_2D_Exit(0, 240, 60, 450, 250, 0); Scene_Exit_Add_2D_Exit(0, 240, 60, 450, 250, 0);
Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
if (Game_Flag_Query(kFlagSpinnerAtDR01) && Global_Variable_Query(kVariableChapter) < 4) { if (Game_Flag_Query(kFlagSpinnerAtDR01)
&& Global_Variable_Query(kVariableChapter) < 4
) {
Scene_Exit_Add_2D_Exit(2, 610, 0, 639, 479, 1); Scene_Exit_Add_2D_Exit(2, 610, 0, 639, 479, 1);
} }
if (Global_Variable_Query(kVariableChapter) >= 3) { if (Global_Variable_Query(kVariableChapter) >= 3) {
Scene_Exit_Add_2D_Exit(3, 0, 45, 142, 201, 0); Scene_Exit_Add_2D_Exit(3, 0, 45, 142, 201, 0);
} }
Ambient_Sounds_Remove_All_Non_Looping_Sounds(0); Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1); Ambient_Sounds_Add_Looping_Sound( 54, 50, 0, 1);
Ambient_Sounds_Add_Looping_Sound(219, 12, 85, 1); Ambient_Sounds_Add_Looping_Sound(219, 12, 85, 1);
Ambient_Sounds_Add_Looping_Sound(98, 14, 85, 1); Ambient_Sounds_Add_Looping_Sound( 98, 14, 85, 1);
Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Sound(67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 67, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 66, 5, 80, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(kFlagDR05BombExploded) if (Game_Flag_Query(kFlagDR05BombExploded)
&& Game_Flag_Query(kFlagDR04toDR01) && Game_Flag_Query(kFlagDR04toDR01)
) { ) {
Scene_Loop_Start_Special(0, 3, 0); Scene_Loop_Start_Special(0, 3, false);
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} else if (!Game_Flag_Query(kFlagDR05BombExploded) } else if (!Game_Flag_Query(kFlagDR05BombExploded)
&& Game_Flag_Query(kFlagDR04toDR01) && Game_Flag_Query(kFlagDR04toDR01)
) { ) {
Scene_Loop_Start_Special(0, 2, 0); Scene_Loop_Start_Special(0, 2, false);
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} else if (Game_Flag_Query(kFlagDR02toDR01)) { } else if (Game_Flag_Query(kFlagDR02toDR01)) {
Scene_Loop_Start_Special(0, 1, 0); Scene_Loop_Start_Special(0, 1, false);
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} else if (Game_Flag_Query(531)) { } else if (Game_Flag_Query(kFlagCT11toDR01)) {
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} else { } else {
Scene_Loop_Start_Special(0, 0, 0); Scene_Loop_Start_Special(0, 0, false);
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
} }
} }
@ -110,7 +127,7 @@ bool SceneScriptDR01::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptDR01::ClickedOnExit(int exitId) { bool SceneScriptDR01::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, true, false, 0)) {
Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false); Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false);
Ambient_Sounds_Adjust_Looping_Sound(112, 10, -100, 1); Ambient_Sounds_Adjust_Looping_Sound(112, 10, -100, 1);
Game_Flag_Set(kFlagDR01toDR02); Game_Flag_Set(kFlagDR01toDR02);
@ -118,83 +135,85 @@ bool SceneScriptDR01::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -711.0f, -0.04f, 70.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -711.0f, -0.04f, 70.0f, 0, true, false, 0)) {
Async_Actor_Walk_To_XYZ(kActorMcCoy, -796.0f, -0.04f, 166.0f, 0, false); Async_Actor_Walk_To_XYZ(kActorMcCoy, -796.0f, -0.04f, 166.0f, 0, false);
Game_Flag_Set(kFlagDR01toDR04); Game_Flag_Set(kFlagDR01toDR04);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR04); Set_Enter(kSetDR01_DR02_DR04, kSceneDR04);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -372.0f, -0.04f, -82.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -372.0f, -0.04f, -82.0f, 0, true, false, 0)) {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
int spinnerDest = Spinner_Interface_Choose_Dest(-1, false); int spinnerDest = Spinner_Interface_Choose_Dest(-1, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtDR01); Game_Flag_Reset(kFlagSpinnerAtDR01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
break; break;
default: default:
Player_Loses_Control(); Player_Loses_Control();
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, true, 0);
Player_Gains_Control(); Player_Gains_Control();
break; break;
@ -211,9 +230,9 @@ bool SceneScriptDR01::ClickedOnExit(int exitId) {
v7 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1236.4f, -0.04f, -13.91f, 0, 1, false, 0); v7 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1236.4f, -0.04f, -13.91f, 0, 1, false, 0);
} }
if (!v7) { if (!v7) {
Game_Flag_Set(558); Game_Flag_Set(kFlagDR01toCT11);
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Set_Enter(kSetCT11, kSceneCT11); Set_Enter(kSetCT11, kSceneCT11);
} }
return true; return true;
@ -240,7 +259,7 @@ void SceneScriptDR01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptDR01::PlayerWalkedIn() { void SceneScriptDR01::PlayerWalkedIn() {
if (Game_Flag_Query(531)) { if (Game_Flag_Query(kFlagCT11toDR01)) {
Async_Actor_Walk_To_XYZ(kActorMcCoy, -757.15f, -0.04f, 24.64f, 0, false); Async_Actor_Walk_To_XYZ(kActorMcCoy, -757.15f, -0.04f, 24.64f, 0, false);
} else if (!Game_Flag_Query(kFlagDR02toDR01) } else if (!Game_Flag_Query(kFlagDR02toDR01)
&& !Game_Flag_Query(kFlagDR04toDR01) && !Game_Flag_Query(kFlagDR04toDR01)
@ -251,13 +270,13 @@ void SceneScriptDR01::PlayerWalkedIn() {
} }
Game_Flag_Reset(kFlagDR02toDR01); Game_Flag_Reset(kFlagDR02toDR01);
Game_Flag_Reset(kFlagDR04toDR01); Game_Flag_Reset(kFlagDR04toDR01);
Game_Flag_Reset(531); Game_Flag_Reset(kFlagCT11toDR01);
} }
void SceneScriptDR01::PlayerWalkedOut() { void SceneScriptDR01::PlayerWalkedOut() {
if (!Game_Flag_Query(kFlagDR01toDR04) if (!Game_Flag_Query(kFlagDR01toDR04)
&& !Game_Flag_Query(kFlagDR01toDR02) && !Game_Flag_Query(kFlagDR01toDR02)
&& !Game_Flag_Query(558) && !Game_Flag_Query(kFlagDR01toCT11)
) { ) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);

View file

@ -26,19 +26,21 @@ namespace BladeRunner {
void SceneScriptDR02::InitializeScene() { void SceneScriptDR02::InitializeScene() {
if (Game_Flag_Query(kFlagDR03toDR02)) { if (Game_Flag_Query(kFlagDR03toDR02)) {
Setup_Scene_Information(-1162.0f, 7.18f, -322.0f, 552); Setup_Scene_Information(-1162.0f, 7.18f, -322.0f, 552);
} else if (Game_Flag_Query(kFlagDR01toDR02)) { } else if (Game_Flag_Query(kFlagDR01toDR02)) {
Setup_Scene_Information(-835.0f, -0.04f, -118.0f, 193); Setup_Scene_Information( -835.0f, -0.04f, -118.0f, 193);
} else if (Game_Flag_Query(kFlagBB01toDR02)) { } else if (Game_Flag_Query(kFlagBB01toDR02)) {
Setup_Scene_Information(-1258.0f, 7.18f, -314.0f, 400); Setup_Scene_Information(-1258.0f, 7.18f, -314.0f, 400);
} else { } else {
Setup_Scene_Information(168.78f, 0.16f, -775.72f, 193); Setup_Scene_Information( 168.78f, 0.16f, -775.72f, 193);
} }
Scene_Exit_Add_2D_Exit(0, 605, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(0, 605, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 222, 176, 279, 314, 0); Scene_Exit_Add_2D_Exit(1, 222, 176, 279, 314, 0);
if (Game_Flag_Query(326)) { if (Game_Flag_Query(kFlagBB01Available)) {
Scene_Exit_Add_2D_Exit(2, 95, 0, 148, 292, 0); Scene_Exit_Add_2D_Exit(2, 95, 0, 148, 292, 0);
} }
Ambient_Sounds_Remove_All_Non_Looping_Sounds(0); Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
Ambient_Sounds_Remove_All_Looping_Sounds(0); Ambient_Sounds_Remove_All_Looping_Sounds(0);
Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1); Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
@ -47,8 +49,9 @@ void SceneScriptDR02::InitializeScene() {
Ambient_Sounds_Add_Sound(378, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(378, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(379, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 2, 50, 33, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(67, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 67, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(66, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 66, 5, 100, 16, 25, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(kFlagDR01toDR02)) { if (Game_Flag_Query(kFlagDR01toDR02)) {
Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false); Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
@ -126,6 +129,7 @@ bool SceneScriptDR02::ClickedOnExit(int exitId) {
Ambient_Sounds_Adjust_Looping_Sound(98, 14, -101, 1); Ambient_Sounds_Adjust_Looping_Sound(98, 14, -101, 1);
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1162.0f, 7.18f, -322.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1162.0f, 7.18f, -322.0f, 0, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) > 2) { if (Global_Variable_Query(kVariableChapter) > 2) {
@ -137,11 +141,12 @@ bool SceneScriptDR02::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1258.0f, 7.18f, -314.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1258.0f, 7.18f, -314.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagDR02toBB01); Game_Flag_Set(kFlagDR02toBB01);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
} }
return true; return true;

View file

@ -29,8 +29,11 @@ void SceneScriptDR03::InitializeScene() {
Game_Flag_Reset(kFlagDR02toDR03); Game_Flag_Reset(kFlagDR02toDR03);
Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297); Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297);
} }
Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297); Setup_Scene_Information(330.31f, 4.27f, -910.91f, 297);
Scene_Exit_Add_2D_Exit(0, 377, 122, 445, 266, 0); Scene_Exit_Add_2D_Exit(0, 377, 122, 445, 266, 0);
if (Global_Variable_Query(kVariableChapter) == 3) { if (Global_Variable_Query(kVariableChapter) == 3) {
Actor_Put_In_Set(kActorChew, kSetDR03); Actor_Put_In_Set(kActorChew, kSetDR03);
Actor_Set_At_XYZ(kActorChew, 431.21f, 4.27f, -776.26f, 0); Actor_Set_At_XYZ(kActorChew, 431.21f, 4.27f, -776.26f, 0);
@ -38,10 +41,11 @@ void SceneScriptDR03::InitializeScene() {
Actor_Put_In_Set(kActorChew, kSetDR03); Actor_Put_In_Set(kActorChew, kSetDR03);
Actor_Set_At_XYZ(kActorChew, 360.77f, 4.4f, -806.67f, 126); Actor_Set_At_XYZ(kActorChew, 360.77f, 4.4f, -806.67f, 126);
} }
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Ambient_Sounds_Add_Looping_Sound(110, 7, 0, 1); Ambient_Sounds_Add_Looping_Sound(110, 7, 0, 1);
Ambient_Sounds_Add_Looping_Sound(109, 50, 0, 1); Ambient_Sounds_Add_Looping_Sound(109, 50, 0, 1);
Ambient_Sounds_Add_Looping_Sound(95, 20, 70, 1); Ambient_Sounds_Add_Looping_Sound( 95, 20, 70, 1);
} }
void SceneScriptDR03::SceneLoaded() { void SceneScriptDR03::SceneLoaded() {
@ -62,6 +66,7 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
if (actorId == kActorChew) { if (actorId == kActorChew) {
Actor_Face_Actor(kActorMcCoy, kActorChew, true); Actor_Face_Actor(kActorMcCoy, kActorChew, true);
Actor_Face_Actor(kActorChew, kActorMcCoy, true); Actor_Face_Actor(kActorChew, kActorMcCoy, true);
if (!Game_Flag_Query(kFlagDR03ChewTalk1)) { if (!Game_Flag_Query(kFlagDR03ChewTalk1)) {
Actor_Says(kActorMcCoy, 755, 18); Actor_Says(kActorMcCoy, 755, 18);
Actor_Says(kActorChew, 10, 14); Actor_Says(kActorChew, 10, 14);
@ -72,52 +77,62 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) {
Game_Flag_Set(kFlagDR03ChewTalk1); Game_Flag_Set(kFlagDR03ChewTalk1);
return true; return true;
} }
if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
if (Game_Flag_Query(kFlagMorajiExploded) if (!Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
&& Game_Flag_Query(kFlagDR03ChewTalk1)) { Actor_Says(kActorMcCoy, 770, 12);
Actor_Says(kActorMcCoy, 815, 18); Actor_Says(kActorChew, 110, 12);
Actor_Says(kActorChew, 60, 14); Actor_Says(kActorChew, 120, 13);
Actor_Says(kActorChew, 70, 14); Actor_Says(kActorMcCoy, 835, 13);
Actor_Says(kActorChew, 80, 14); Actor_Says(kActorChew, 130, 14);
Actor_Says(kActorMcCoy, 820, 18); Actor_Says(kActorMcCoy, 840, 16);
Actor_Says(kActorChew, 90, 14); Actor_Says(kActorChew, 140, 15);
Actor_Says(kActorMcCoy, 825, 18); if (!Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
Actor_Says(kActorChew, 100, 14); Actor_Says(kActorChew, 150, 13);
Game_Flag_Reset(kFlagMorajiExploded); Actor_Says(kActorMcCoy, 845, 17);
Game_Flag_Set(505); Actor_Says(kActorChew, 170, 18);
return true; Actor_Says(kActorChew, 180, 16);
} Actor_Says(kActorMcCoy, 850, 15);
if ((Actor_Clue_Query(kActorMcCoy, kClueDNATyrell) || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage) || Actor_Clue_Query(kActorMcCoy, kClueEnvelope) || Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) Actor_Says(kActorChew, 190, 14);
&& Game_Flag_Query(505)) { Actor_Says(kActorChew, 200, 13);
sub_401B18(); Actor_Says(kActorMcCoy, 855, 18);
} else { Actor_Says(kActorChew, 210, 12);
Actor_Says(kActorMcCoy, 810, 18);
Actor_Says(kActorChew, 40, 14);
Actor_Says(kActorChew, 50, 14);
} }
Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
return true; return true;
} }
Actor_Says(kActorMcCoy, 770, 12);
Actor_Says(kActorChew, 110, 12); if (Game_Flag_Query(kFlagDR05JustExploded)
Actor_Says(kActorChew, 120, 13); && Game_Flag_Query(kFlagDR03ChewTalk1)
Actor_Says(kActorMcCoy, 835, 13); ) {
Actor_Says(kActorChew, 130, 14); Actor_Says(kActorMcCoy, 815, 18);
Actor_Says(kActorMcCoy, 840, 16); Actor_Says(kActorChew, 60, 14);
Actor_Says(kActorChew, 140, 15); Actor_Says(kActorChew, 70, 14);
if (!Game_Flag_Query(505)) { Actor_Says(kActorChew, 80, 14);
Actor_Says(kActorChew, 150, 13); Actor_Says(kActorMcCoy, 820, 18);
Actor_Says(kActorMcCoy, 845, 17); Actor_Says(kActorChew, 90, 14);
Actor_Says(kActorChew, 170, 18); Actor_Says(kActorMcCoy, 825, 18);
Actor_Says(kActorChew, 180, 16); Actor_Says(kActorChew, 100, 14);
Actor_Says(kActorMcCoy, 850, 15); Game_Flag_Reset(kFlagDR05JustExploded);
Actor_Says(kActorChew, 190, 14); Game_Flag_Set(kFlagDR03ChewTalkExplosion);
Actor_Says(kActorChew, 200, 13); return true;
Actor_Says(kActorMcCoy, 855, 18); }
Actor_Says(kActorChew, 210, 12);
if ((Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
|| Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)
|| Actor_Clue_Query(kActorMcCoy, kClueEnvelope)
|| Actor_Clue_Query(kActorMcCoy, kClueChewInterview)
)
&& Game_Flag_Query(kFlagDR03ChewTalkExplosion)
) {
dialogueWithChew();
} else {
Actor_Says(kActorMcCoy, 810, 18);
Actor_Says(kActorChew, 40, 14);
Actor_Says(kActorChew, 50, 14);
} }
Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
return true; return true;
} }
return false; return false;
} }
@ -141,7 +156,21 @@ bool SceneScriptDR03::ClickedOn2DRegion(int region) {
} }
void SceneScriptDR03::SceneFrameAdvanced(int frame) { void SceneScriptDR03::SceneFrameAdvanced(int frame) {
if (frame == 1 || frame == 4 || frame == 8 || frame == 10 || frame == 19 || frame == 21 || frame == 22 || frame == 23 || frame == 30 || frame == 31 || frame == 32 || frame == 33 || frame == 46 || frame == 49) { if (frame == 1
|| frame == 4
|| frame == 8
|| frame == 10
|| frame == 19
|| frame == 21
|| frame == 22
|| frame == 23
|| frame == 30
|| frame == 31
|| frame == 32
|| frame == 33
|| frame == 46
|| frame == 49
) {
if (Random_Query(0, 1)) { if (Random_Query(0, 1)) {
Sound_Play(97, Random_Query(20, 33), 80, 80, 50); Sound_Play(97, Random_Query(20, 33), 80, 80, 50);
} else { } else {
@ -174,31 +203,36 @@ void SceneScriptDR03::PlayerWalkedOut() {
void SceneScriptDR03::DialogueQueueFlushed(int a1) { void SceneScriptDR03::DialogueQueueFlushed(int a1) {
} }
void SceneScriptDR03::sub_401B18() { void SceneScriptDR03::dialogueWithChew() {
Dialogue_Menu_Clear_List(); Dialogue_Menu_Clear_List();
if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview) || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage) || Actor_Clue_Query(kActorMcCoy, kClueMorajiInterview)) { if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)
DM_Add_To_List_Never_Repeat_Once_Selected(650, 5, 5, 5); || Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)
|| Actor_Clue_Query(kActorMcCoy, kClueMorajiInterview)
) {
DM_Add_To_List_Never_Repeat_Once_Selected(650, 5, 5, 5); // TWINS
} }
if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) { if (Actor_Clue_Query(kActorMcCoy, kClueChewInterview)) {
DM_Add_To_List_Never_Repeat_Once_Selected(660, 5, 5, 5); DM_Add_To_List_Never_Repeat_Once_Selected(660, 5, 5, 5); // MORAJI
} }
if (Actor_Clue_Query(kActorMcCoy, kClueTyrellInterview)) { if (Actor_Clue_Query(kActorMcCoy, kClueTyrellInterview)) {
DM_Add_To_List_Never_Repeat_Once_Selected(670, 6, 5, 2); DM_Add_To_List_Never_Repeat_Once_Selected(670, 6, 5, 2); // TYRELL
} }
if (Game_Flag_Query(505)) { if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
if (Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)) { if (Actor_Clue_Query(kActorMcCoy, kClueAnsweringMachineMessage)) {
DM_Add_To_List_Never_Repeat_Once_Selected(680, 8, 8, 8); DM_Add_To_List_Never_Repeat_Once_Selected(680, 8, 8, 8); // SEBASTIAN
} }
if (Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) { if (Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
DM_Add_To_List_Never_Repeat_Once_Selected(1270, 2, 5, 7); DM_Add_To_List_Never_Repeat_Once_Selected(1270, 2, 5, 7); // LANCE'S ENVELOPE
} }
} }
Dialogue_Menu_Add_DONE_To_List(690); Dialogue_Menu_Add_DONE_To_List(690); // DONE
Dialogue_Menu_Appear(320, 240); Dialogue_Menu_Appear(320, 240);
int answer = Dialogue_Menu_Query_Input(); int answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear(); Dialogue_Menu_Disappear();
switch (answer) { switch (answer) {
case 640: case 640: // EISENDULLER
Actor_Says(kActorMcCoy, 770, 12); Actor_Says(kActorMcCoy, 770, 12);
Actor_Says(kActorChew, 110, 12); Actor_Says(kActorChew, 110, 12);
Actor_Says(kActorChew, 120, 13); Actor_Says(kActorChew, 120, 13);
@ -206,7 +240,7 @@ void SceneScriptDR03::sub_401B18() {
Actor_Says(kActorChew, 130, 14); Actor_Says(kActorChew, 130, 14);
Actor_Says(kActorMcCoy, 840, 16); Actor_Says(kActorMcCoy, 840, 16);
Actor_Says(kActorChew, 140, 15); Actor_Says(kActorChew, 140, 15);
if (!Game_Flag_Query(505)) { if (!Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
Actor_Says(kActorChew, 150, 13); Actor_Says(kActorChew, 150, 13);
Actor_Says(kActorMcCoy, 845, 17); Actor_Says(kActorMcCoy, 845, 17);
Actor_Says(kActorChew, 170, 18); Actor_Says(kActorChew, 170, 18);
@ -219,7 +253,8 @@ void SceneScriptDR03::sub_401B18() {
} }
Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew); Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
break; break;
case 650:
case 650: // TWINS
Actor_Says(kActorMcCoy, 775, 11); Actor_Says(kActorMcCoy, 775, 11);
Actor_Says(kActorChew, 220, 14); Actor_Says(kActorChew, 220, 14);
Actor_Says(kActorMcCoy, 860, 11); Actor_Says(kActorMcCoy, 860, 11);
@ -228,9 +263,10 @@ void SceneScriptDR03::sub_401B18() {
Actor_Says(kActorChew, 240, 14); Actor_Says(kActorChew, 240, 14);
Actor_Says(kActorChew, 250, 14); Actor_Says(kActorChew, 250, 14);
break; break;
case 660:
case 660: // MORAJI
Actor_Says(kActorMcCoy, 780, 13); Actor_Says(kActorMcCoy, 780, 13);
if (Game_Flag_Query(505)) { if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
Actor_Says(kActorChew, 260, 14); Actor_Says(kActorChew, 260, 14);
Actor_Says(kActorChew, 270, 13); Actor_Says(kActorChew, 270, 13);
Actor_Says(kActorChew, 280, 12); Actor_Says(kActorChew, 280, 12);
@ -240,34 +276,41 @@ void SceneScriptDR03::sub_401B18() {
Actor_Says(kActorChew, 280, 12); Actor_Says(kActorChew, 280, 12);
Actor_Says(kActorMcCoy, 870, 18); Actor_Says(kActorMcCoy, 870, 18);
Actor_Says(kActorChew, 290, 15); Actor_Says(kActorChew, 290, 15);
if (!Game_Flag_Query(kFlagMorajiExploded)) { if (!Game_Flag_Query(kFlagDR05JustExploded)) {
Actor_Says(kActorChew, 300, 12); Actor_Says(kActorChew, 300, 12);
} }
} }
Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew); Actor_Clue_Acquire(kActorMcCoy, kClueChewInterview, true, kActorChew);
break; break;
case 670:
case 670: // TYRELL
Actor_Says(kActorMcCoy, 765, 12); Actor_Says(kActorMcCoy, 765, 12);
Actor_Says(kActorMcCoy, 790, 13); Actor_Says(kActorMcCoy, 790, 13);
Actor_Says(kActorChew, 310, 12); Actor_Says(kActorChew, 310, 12);
Actor_Says(kActorChew, 320, 3); Actor_Says(kActorChew, 320, 3);
break; break;
case 680:
case 680: // SEBASTIAN
Actor_Says(kActorMcCoy, 795, 3); Actor_Says(kActorMcCoy, 795, 3);
if (Game_Flag_Query(505) == 1) { if (Game_Flag_Query(kFlagDR03ChewTalkExplosion)) {
Actor_Says(kActorChew, 330, 12); Actor_Says(kActorChew, 330, 12);
Actor_Says(kActorChew, 340, 15); Actor_Says(kActorChew, 340, 15);
Actor_Says(kActorMcCoy, 875, 16); Actor_Says(kActorMcCoy, 875, 16);
Actor_Says(kActorChew, 350, 12); Actor_Says(kActorChew, 350, 12);
Actor_Says(kActorChew, 360, 15); Actor_Says(kActorChew, 360, 15);
Game_Flag_Set(326); Game_Flag_Set(kFlagBB01Available);
} else { } else {
Actor_Says(kActorChew, 320, 13); Actor_Says(kActorChew, 320, 13);
Actor_Says(kActorChew, 150, 14); Actor_Says(kActorChew, 150, 14);
Game_Flag_Set(326); Game_Flag_Set(kFlagBB01Available);
} }
break; break;
case 1270:
case 690: // DONE
Actor_Says(kActorMcCoy, 805, 3);
break;
case 1270: // LANCE'S ENVELOPE
Actor_Says(kActorMcCoy, 800, 16); Actor_Says(kActorMcCoy, 800, 16);
Actor_Says(kActorChew, 370, 3); Actor_Says(kActorChew, 370, 3);
Actor_Says(kActorMcCoy, 880, 15); Actor_Says(kActorMcCoy, 880, 15);
@ -280,9 +323,6 @@ void SceneScriptDR03::sub_401B18() {
Actor_Says(kActorChew, 420, 13); Actor_Says(kActorChew, 420, 13);
Actor_Says(kActorChew, 430, 12); Actor_Says(kActorChew, 430, 12);
break; break;
case 690:
Actor_Says(kActorMcCoy, 805, 3);
break;
} }
} }

View file

@ -24,44 +24,55 @@
namespace BladeRunner { namespace BladeRunner {
enum kDR04Loops {
kDR04LoopPanFromDR01PostExplosion = 0,
kDR04LoopMainPostExplosion = 1,
kDR04LoopPanFromDR01PreExplosion = 3,
kDR04LoopMainPreExplosion = 4,
kDR04LoopDR04Explosion = 6
};
void SceneScriptDR04::InitializeScene() { void SceneScriptDR04::InitializeScene() {
if (Game_Flag_Query(kFlagDR05BombExplosionView)) { if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
Setup_Scene_Information(0.0f, 0.0f, 0.0f, 0); Setup_Scene_Information( 0.0f, 0.0f, 0.0f, 0);
} else if (Game_Flag_Query(kFlagDR01toDR04)) { } else if (Game_Flag_Query(kFlagDR01toDR04)) {
Setup_Scene_Information(-711.0f, -0.04f, 70.0f, 472); Setup_Scene_Information( -711.0f, -0.04f, 70.0f, 472);
} else if (Game_Flag_Query(kFlagDR05toDR04)) { } else if (Game_Flag_Query(kFlagDR05toDR04)) {
Setup_Scene_Information(-1067.0f, 7.18f, 421.0f, 125); Setup_Scene_Information(-1067.0f, 7.18f, 421.0f, 125);
} else if (Game_Flag_Query(kFlagDR06toDR04)) { } else if (Game_Flag_Query(kFlagDR06toDR04)) {
Setup_Scene_Information(-897.75f, 134.45f, 569.75f, 512); Setup_Scene_Information(-897.75f, 134.45f, 569.75f, 512);
} else { } else {
Setup_Scene_Information(-810.0f, -0.04f, 242.0f, 125); Setup_Scene_Information( -810.0f, -0.04f, 242.0f, 125);
} }
Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 443, 264, 488, 353, 0); Scene_Exit_Add_2D_Exit(1, 443, 264, 488, 353, 0);
Scene_Exit_Add_2D_Exit(2, 222, 110, 269, 207, 0); Scene_Exit_Add_2D_Exit(2, 222, 110, 269, 207, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(0); Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
Ambient_Sounds_Add_Looping_Sound(54, 50, 1, 1); Ambient_Sounds_Add_Looping_Sound( 54, 50, 1, 1);
Ambient_Sounds_Add_Looping_Sound(288, 55, -100, 1); Ambient_Sounds_Add_Looping_Sound(288, 55, -100, 1);
Ambient_Sounds_Add_Looping_Sound(217, 28, -100, 100); Ambient_Sounds_Add_Looping_Sound(217, 28, -100, 100);
Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Sound(67, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 67, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(66, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 66, 40, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(378, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 5, 80, 50, 100, 0, 0, -101, -101, 0, 0);
if (Game_Flag_Query(kFlagDR05BombExploded)) { if (Game_Flag_Query(kFlagDR05BombExploded)) {
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
} else { } else {
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(kDR04LoopMainPreExplosion);
} }
if (Game_Flag_Query(kFlagDR01toDR04)) { if (Game_Flag_Query(kFlagDR01toDR04)) {
if (Game_Flag_Query(kFlagDR05BombExploded)) { if (Game_Flag_Query(kFlagDR05BombExploded)) {
Scene_Loop_Start_Special(0, 0, 0); Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR04LoopPanFromDR01PostExplosion, false);
} else { } else {
Scene_Loop_Start_Special(0, 3, 0); Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR04LoopPanFromDR01PreExplosion, false);
} }
} }
} }
@ -95,26 +106,26 @@ bool SceneScriptDR04::ClickedOnActor(int actorId) {
if ( actorId == kActorMoraji if ( actorId == kActorMoraji
&& !Player_Query_Combat_Mode() && !Player_Query_Combat_Mode()
) { ) {
if (Actor_Query_Goal_Number(kActorMoraji) == 21) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 109, 0, true, true)) { if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 109, 0, true, true)) {
Actor_Face_Actor(kActorMcCoy, kActorMoraji, true); Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
Actor_Says(kActorMcCoy, 945, 13); Actor_Says(kActorMcCoy, 945, 13);
Actor_Says(kActorMoraji, 0, 3); Actor_Says(kActorMoraji, 0, kAnimationModeTalk);
Actor_Says(kActorMoraji, 10, 3); Actor_Says(kActorMoraji, 10, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 950, 13); Actor_Says(kActorMcCoy, 950, 13);
Actor_Says(kActorMoraji, 20, 3); Actor_Says(kActorMoraji, 20, kAnimationModeTalk);
Actor_Says(kActorMoraji, 30, 3); Actor_Says(kActorMoraji, 30, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 955, 13); Actor_Says(kActorMcCoy, 955, 13);
Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, 3); Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, kAnimationModeTalk);
Actor_Says(kActorMoraji, 50, 3); Actor_Says(kActorMoraji, 50, kAnimationModeTalk);
Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, true, kActorMoraji); Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, true, kActorMoraji);
Actor_Set_Goal_Number(kActorMoraji, 22); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
Actor_Set_Goal_Number(kActorOfficerGrayford, 101); Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
return true; return true;
} }
} }
if (Actor_Query_Goal_Number(kActorMoraji) == 23) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDead) {
if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, true, false)) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, true, false)) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 106); Actor_Set_Goal_Number(kActorOfficerGrayford, 106);
return true; return true;
@ -129,37 +140,40 @@ bool SceneScriptDR04::ClickedOnItem(int itemId, bool a2) {
} }
bool SceneScriptDR04::ClickedOnExit(int exitId) { bool SceneScriptDR04::ClickedOnExit(int exitId) {
if (Actor_Query_Goal_Number(kActorMoraji) == 21) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) {
Actor_Force_Stop_Walking(kActorMcCoy); Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Set_Goal_Number(kActorMoraji, 22); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie);
Actor_Set_Goal_Number(kActorOfficerGrayford, 101); Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
return true; return true;
} }
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -761.0f, -0.04f, 97.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -761.0f, -0.04f, 97.0f, 0, true, false, 0)) {
Async_Actor_Walk_To_XYZ(kActorMcCoy, -683.0f, -0.04f, 43.0f, 0, false); Async_Actor_Walk_To_XYZ(kActorMcCoy, -683.0f, -0.04f, 43.0f, 0, false);
Game_Flag_Set(kFlagDR04toDR01); Game_Flag_Set(kFlagDR04toDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagNotUsed232); Game_Flag_Set(kFlagNotUsed232);
Game_Flag_Set(kFlagDR04toDR05); Game_Flag_Set(kFlagDR04toDR05);
Set_Enter(kSetDR05, kSceneDR05); Set_Enter(kSetDR05, kSceneDR05);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 6.98f, 560.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 6.98f, 560.0f, 0, true, false, 0)) {
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
Actor_Face_Heading(kActorMcCoy, 512, false); Actor_Face_Heading(kActorMcCoy, 512, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
Game_Flag_Set(kFlagDR04toDR06); Game_Flag_Set(kFlagDR04toDR06);
@ -174,58 +188,61 @@ bool SceneScriptDR04::ClickedOn2DRegion(int region) {
return false; return false;
} }
bool SceneScriptDR04::sub_401160() { bool SceneScriptDR04::farEnoughFromExplosion() {
float x, y, z; float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
return (x + 1089.94f) * (x + 1089.94f) + (z - 443.49f) * (z - 443.49f) >= (360.0f * 360.0f); return (x + 1089.94f) * (x + 1089.94f) + (z - 443.49f) * (z - 443.49f) >= (360.0f * 360.0f);
} }
void SceneScriptDR04::SceneFrameAdvanced(int frame) { void SceneScriptDR04::SceneFrameAdvanced(int frame) {
if (Game_Flag_Query(kFlagDR05BombExplosionView)) { if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
Game_Flag_Reset(kFlagDR05BombExplosionView); Game_Flag_Reset(kFlagDR05ViewExplosion);
Game_Flag_Reset(kFlagDR05BombWillExplode); Game_Flag_Reset(kFlagDR05BombWillExplode);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true);
Music_Stop(4); Music_Stop(4);
Actor_Set_Goal_Number(kActorMoraji, 99); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished);
} else { } else {
if (Game_Flag_Query(kFlagDR05BombWillExplode)) { if (Game_Flag_Query(kFlagDR05BombWillExplode)) {
Game_Flag_Reset(kFlagDR05BombWillExplode); Game_Flag_Reset(kFlagDR05BombWillExplode);
Game_Flag_Set(kFlagDR05BombExploded); Game_Flag_Set(kFlagDR05BombExploded);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true);
Item_Remove_From_World(78); Item_Remove_From_World(kItemBomb);
} }
switch (frame) { switch (frame) {
case 193: case 193:
Sound_Play(301, 100, 0, 100, 50); Sound_Play(301, 100, 0, 100, 50);
Actor_Set_Goal_Number(kActorMoraji, 30); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
Player_Loses_Control(); Player_Loses_Control();
Actor_Force_Stop_Walking(kActorMcCoy); Actor_Force_Stop_Walking(kActorMcCoy);
if (sub_401160()) { if (farEnoughFromExplosion()) {
if (Player_Query_Combat_Mode()) { if (Player_Query_Combat_Mode()) {
Actor_Change_Animation_Mode(kActorMcCoy, 22); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatHit);
} else { } else {
Actor_Change_Animation_Mode(kActorMcCoy, 21); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeHit);
} }
} else { } else {
Sound_Play_Speech_Line(kActorMcCoy, 9905, 100, 0, 99); Sound_Play_Speech_Line(kActorMcCoy, 9905, 100, 0, 99);
Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1);
} }
Player_Gains_Control(); Player_Gains_Control();
break; break;
case 235: case 235:
if (Actor_Query_Goal_Number(kActorMoraji) != 20 if (Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiJump
&& Actor_Query_Goal_Number(kActorMoraji) != 21 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown
&& Actor_Query_Goal_Number(kActorMoraji) != 99 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished
) { ) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 101); Actor_Set_Goal_Number(kActorOfficerGrayford, 101);
} }
Scene_Exits_Enable(); Scene_Exits_Enable();
break; break;
case 237: case 237:
Overlay_Play("DR04OVER", 0, 1, 1, 0); Overlay_Play("DR04OVER", 0, true, true, 0);
break; break;
} }
} }
@ -235,7 +252,7 @@ void SceneScriptDR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptDR04::PlayerWalkedIn() { void SceneScriptDR04::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagDR05BombExplosionView)) { if (Game_Flag_Query(kFlagDR05ViewExplosion)) {
Player_Loses_Control(); Player_Loses_Control();
Delay(4000); Delay(4000);
Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1); Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
@ -250,11 +267,11 @@ void SceneScriptDR04::PlayerWalkedIn() {
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
Actor_Face_Heading(kActorMcCoy, 512, false); Actor_Face_Heading(kActorMcCoy, 512, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 71.64f, 647.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 71.64f, 647.0f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -774.85f, 7.18f, 386.67f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -774.85f, 7.18f, 386.67f, 0, false, false, 0);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }

View file

@ -24,18 +24,27 @@
namespace BladeRunner { namespace BladeRunner {
enum kDR05Loops {
kDR05LoopMain = 0,
kDR05LoopMainDestroyed = 2
};
void SceneScriptDR05::InitializeScene() { void SceneScriptDR05::InitializeScene() {
Setup_Scene_Information(-22.0f, 0.3f, 221.0f, 0); Setup_Scene_Information(-22.0f, 0.3f, 221.0f, 0);
Game_Flag_Reset(kFlagDR04toDR05); Game_Flag_Reset(kFlagDR04toDR05);
Scene_Exit_Add_2D_Exit(0, 0, 38, 80, 467, 3); Scene_Exit_Add_2D_Exit(0, 0, 38, 80, 467, 3);
Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1); Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1);
if (!Game_Flag_Query(kFlagDR05BombExploded)) { if (!Game_Flag_Query(kFlagDR05BombExploded)) {
Overlay_Play("DR05OVER", 0, 1, 0, 0); Overlay_Play("DR05OVER", 0, true, false, 0);
} }
if (Game_Flag_Query(kFlagDR05BombExploded)) { if (Game_Flag_Query(kFlagDR05BombExploded)) {
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(kDR05LoopMainDestroyed);
} else { } else {
Scene_Loop_Set_Default(0); Scene_Loop_Set_Default(kDR05LoopMain);
} }
} }
@ -44,10 +53,11 @@ void SceneScriptDR05::SceneLoaded() {
Unobstacle_Object("BOX06", true); Unobstacle_Object("BOX06", true);
Unobstacle_Object("BOX183", true); Unobstacle_Object("BOX183", true);
Clickable_Object("T2 DOORWAY"); Clickable_Object("T2 DOORWAY");
if (!Game_Flag_Query(kFlagDR05BombExploded)) { if (!Game_Flag_Query(kFlagDR05BombExploded)) {
Item_Add_To_World(78, 932, 35, -1.57f, 31.33f, 75.21f, 540, 16, 16, true, true, false, true); Item_Add_To_World(kItemBomb, 932, kSetDR05, -1.57f, 31.33f, 75.21f, 540, 16, 16, true, true, false, true);
if (Actor_Query_Goal_Number(kActorMoraji) == 0) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault) {
Item_Add_To_World(122, 931, 35, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true); Item_Add_To_World(kItemChain, 931, kSetDR05, 37.35f, 1.59f, 46.72f, 0, 20, 20, true, true, false, true);
} }
} }
} }
@ -58,19 +68,20 @@ bool SceneScriptDR05::MouseClick(int x, int y) {
bool SceneScriptDR05::ClickedOn3DObject(const char *objectName, bool a2) { bool SceneScriptDR05::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("T2 DOORWAY", objectName)) { if (Object_Query_Click("T2 DOORWAY", objectName)) {
if (Game_Flag_Query(kFlagNotUsed276) if (!Game_Flag_Query(kFlagNotUsed276)
|| Actor_Query_Goal_Number(kActorMoraji) != 0 && Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
) { ) {
Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
Actor_Says(kActorMcCoy, 1020, 14);
Actor_Says(kActorMoraji, 90, 13);
} else {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 57.61f, 0.3f, 69.27f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 57.61f, 0.3f, 69.27f, 0, true, false, 0)) {
Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true); Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
Actor_Says(kActorMcCoy, 8522, 13); Actor_Says(kActorMcCoy, 8522, 13);
Actor_Says(kActorMcCoy, 8521, 14); Actor_Says(kActorMcCoy, 8521, 14);
} }
} else {
Actor_Face_Object(kActorMcCoy, "T2 DOORWAY", true);
Actor_Says(kActorMcCoy, 1020, 14);
Actor_Says(kActorMoraji, 90, 13);
} }
return true; return true;
} }
return false; return false;
@ -81,30 +92,31 @@ bool SceneScriptDR05::ClickedOnActor(int actorId) {
} }
bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) { bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
if (itemId == 78) { if (itemId == kItemBomb) {
if (Player_Query_Combat_Mode()) { if (Player_Query_Combat_Mode()) {
Game_Flag_Set(kFlagDR05BombWillExplode); Game_Flag_Set(kFlagDR05BombWillExplode);
Actor_Set_Goal_Number(kActorMoraji, 30); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
} else if (!Game_Flag_Query(kFlagDR05BombExploded) } else if (!Game_Flag_Query(kFlagDR05BombExploded)
&& !Loop_Actor_Walk_To_Item(kActorMcCoy, 78, 24, 1, true) && !Loop_Actor_Walk_To_Item(kActorMcCoy, kItemBomb, 24, true, true)
&& Actor_Query_Goal_Number(kActorMoraji) != 11 && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiRunOut
) { ) {
if (!Actor_Query_Goal_Number(kActorMoraji)) { if (!Actor_Query_Goal_Number(kActorMoraji)) {
Actor_Says_With_Pause(kActorMcCoy, 1015, 0.1f, 12); Actor_Says_With_Pause(kActorMcCoy, 1015, 0.1f, 12);
Actor_Says(kActorMoraji, 70, 13); Actor_Says(kActorMoraji, 70, 13);
} }
Actor_Set_Goal_Number(kActorMoraji, 30); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
} }
//return true; //bug? //return true; //bug?
} }
if (itemId == 122
if (itemId == kItemChain
&& Player_Query_Combat_Mode() && Player_Query_Combat_Mode()
&& Actor_Query_Goal_Number(kActorMoraji) == 0 && Actor_Query_Goal_Number(kActorMoraji) == kGoalOfficerLearyDefault
) { ) {
Overlay_Play("DR05OVER", 1, 0, 1, 0); Overlay_Play("DR05OVER", 1, false, true, 0);
Item_Remove_From_World(122); Item_Remove_From_World(kItemChain);
Game_Flag_Set(kFlagDR05ChainShot); Game_Flag_Set(kFlagDR05ChainShot);
Actor_Set_Goal_Number(kActorMoraji, 10); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiFreed);
Music_Play(18, 71, 0, 0, -1, 0, 2); Music_Play(18, 71, 0, 0, -1, 0, 2);
return true; return true;
} }
@ -131,11 +143,12 @@ void SceneScriptDR05::SceneFrameAdvanced(int frame) {
if (frame == 49) { if (frame == 49) {
Sound_Play(148, Random_Query(50, 50), 80, 80, 50); Sound_Play(148, Random_Query(50, 50), 80, 80, 50);
} }
if (Game_Flag_Query(kFlagDR05BombWillExplode)) { if (Game_Flag_Query(kFlagDR05BombWillExplode)) {
Item_Remove_From_World(78); Item_Remove_From_World(kItemBomb);
Game_Flag_Reset(kFlagDR05BombWillExplode); Game_Flag_Reset(kFlagDR05BombWillExplode);
Game_Flag_Set(kFlagDR05BombExploded); Game_Flag_Set(kFlagDR05BombExploded);
Actor_Set_Goal_Number(kActorMoraji, 30); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
} }
} }
@ -147,11 +160,11 @@ void SceneScriptDR05::PlayerWalkedIn() {
&& !Game_Flag_Query(kFlagDR05ChainShot) && !Game_Flag_Query(kFlagDR05ChainShot)
&& Game_Flag_Query(kFlagDR05BombExploded) && Game_Flag_Query(kFlagDR05BombExploded)
) { ) {
Item_Remove_From_World(122); Item_Remove_From_World(kItemChain);
} }
if (Game_Flag_Query(kFlagDR05BombExploded)) { if (Game_Flag_Query(kFlagDR05BombExploded)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, false, false, 0);
if (!Game_Flag_Query(kFlagDR05ExplodedEntered)) { if (!Game_Flag_Query(kFlagDR05ExplodedEntered)) {
Game_Flag_Set(kFlagDR05ExplodedEntered); Game_Flag_Set(kFlagDR05ExplodedEntered);
if (Game_Flag_Query(kFlagSadikIsReplicant)) { if (Game_Flag_Query(kFlagSadikIsReplicant)) {
@ -170,18 +183,18 @@ void SceneScriptDR05::PlayerWalkedIn() {
} }
} }
} else { } else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, 0, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 0.3f, 133.0f, 0, false, true, 0);
} }
if (!Game_Flag_Query(kFlagDR05MorajiTalk) if (!Game_Flag_Query(kFlagDR05MorajiTalk)
&& !Actor_Query_Goal_Number(kActorMoraji) && Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDefault
) { ) {
Actor_Face_Actor(kActorMcCoy, kActorMoraji, true); Actor_Face_Actor(kActorMcCoy, kActorMoraji, true);
Actor_Says(kActorMcCoy, 1010, 13); Actor_Says(kActorMcCoy, 1010, 13);
Actor_Face_Item(kActorMcCoy, 78, true); Actor_Face_Item(kActorMcCoy, kItemBomb, true);
Player_Set_Combat_Mode(true); Player_Set_Combat_Mode(true);
Actor_Says(kActorMoraji, 60, 12); Actor_Says(kActorMoraji, 60, 12);
Actor_Change_Animation_Mode(kActorMcCoy, 0); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
Game_Flag_Set(kFlagDR05MorajiTalk); Game_Flag_Set(kFlagDR05MorajiTalk);
//return true; //return true;
} }
@ -191,8 +204,12 @@ void SceneScriptDR05::PlayerWalkedIn() {
void SceneScriptDR05::PlayerWalkedOut() { void SceneScriptDR05::PlayerWalkedOut() {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
if (Actor_Query_Goal_Number(kActorMoraji) == 10 || Actor_Query_Goal_Number(kActorMoraji) == 18 || Actor_Query_Goal_Number(kActorMoraji) == 19) {
Actor_Set_Goal_Number(kActorMoraji, 11); if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiFreed
|| Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiGetUp
|| Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiScream
) {
Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiRunOut);
//return true; //return true;
} }
//return false; //return false;

View file

@ -26,27 +26,30 @@ namespace BladeRunner {
void SceneScriptDR06::InitializeScene() { void SceneScriptDR06::InitializeScene() {
if (Game_Flag_Query(kFlagDR04toDR06)) { if (Game_Flag_Query(kFlagDR04toDR06)) {
Setup_Scene_Information(-733.57f, 136.6f, -968.64f, 0); Setup_Scene_Information(-733.57f, 136.6f, -968.64f, 0);
} else { } else {
Setup_Scene_Information(-707.57f, 136.6f, -1132.64f, 472); Setup_Scene_Information(-707.57f, 136.6f, -1132.64f, 472);
} }
Scene_Exit_Add_2D_Exit(0, 601, 11, 639, 479, 1); Scene_Exit_Add_2D_Exit(0, 601, 11, 639, 479, 1);
if (Global_Variable_Query(kVariableChapter) > 3 if (Global_Variable_Query(kVariableChapter) > 3
&& Game_Flag_Query(715) && Game_Flag_Query(715)
) { ) {
Scene_Exit_Add_2D_Exit(1, 0, 272, 46, 477, 2); Scene_Exit_Add_2D_Exit(1, 0, 272, 46, 477, 2);
} }
Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1); Ambient_Sounds_Add_Looping_Sound(383, 25, 0, 1);
Ambient_Sounds_Add_Sound(73, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(73, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(74, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(kFlagDR06JesterActive)) { if (Game_Flag_Query(kFlagDR06JesterActive)) {
Overlay_Play("DR06over", 1, 1, 0, 0); Overlay_Play("DR06over", 1, true, false, 0);
Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0); Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
} else { } else {
Overlay_Play("DR06over", 0, 1, 0, 0); Overlay_Play("DR06over", 0, true, false, 0);
} }
if (Game_Flag_Query(548)) { if (Game_Flag_Query(kFlagDR06MannequinHeadOpen)) {
Overlay_Play("DR06ovr2", 0, 1, 0, 0); Overlay_Play("DR06ovr2", 0, true, false, 0);
} }
} }
@ -72,11 +75,11 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -743.0f, 136.6f, -1091.0f, 0, true, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -743.0f, 136.6f, -1091.0f, 0, true, false, 0);
Actor_Face_Object(kActorMcCoy, "BOX16", true); Actor_Face_Object(kActorMcCoy, "BOX16", true);
if (!Game_Flag_Query(kFlagDR06JesterActive)) { if (!Game_Flag_Query(kFlagDR06JesterActive)) {
Overlay_Play("DR06over", 1, 1, 1, 0); Overlay_Play("DR06over", 1, true, true, 0);
Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0); Ambient_Sounds_Add_Looping_Sound(300, 47, -75, 0);
Game_Flag_Set(kFlagDR06JesterActive); Game_Flag_Set(kFlagDR06JesterActive);
} else { } else {
Overlay_Play("DR06over", 0, 1, 1, 0); Overlay_Play("DR06over", 0, true, true, 0);
Ambient_Sounds_Remove_Looping_Sound(300, false); Ambient_Sounds_Remove_Looping_Sound(300, false);
Game_Flag_Reset(kFlagDR06JesterActive); Game_Flag_Reset(kFlagDR06JesterActive);
} }
@ -144,13 +147,13 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("X2_TORSO04HIRES", objectName)) { if (Object_Query_Click("X2_TORSO04HIRES", objectName)) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -700.0f, 136.6f, -1133.0f, 4, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -700.0f, 136.6f, -1133.0f, 4, true, false, 0)) {
Actor_Face_Object(kActorMcCoy, "x2_TORSO04HIRES", true); Actor_Face_Object(kActorMcCoy, "x2_TORSO04HIRES", true);
if (Global_Variable_Query(39) > 12) { if (Global_Variable_Query(kVariableDR06MannequinHeadOpened) > 12) {
return true; return true;
} }
if (!Game_Flag_Query(548)) { if (!Game_Flag_Query(kFlagDR06MannequinHeadOpen)) {
Overlay_Play("DR06ovr2", 0, 1, 0, 0); Overlay_Play("DR06ovr2", 0, 1, 0, 0);
Game_Flag_Set(548); Game_Flag_Set(kFlagDR06MannequinHeadOpen);
Sound_Play(160, 100, 0, 0, 50); Sound_Play(160, 100, 0, 0, 50);
if (!Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) { if (!Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
Actor_Voice_Over(850, kActorVoiceOver); Actor_Voice_Over(850, kActorVoiceOver);
@ -160,17 +163,17 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Voice_Over(880, kActorVoiceOver); Actor_Voice_Over(880, kActorVoiceOver);
Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, true, kActorLance); Actor_Clue_Acquire(kActorMcCoy, kClueEnvelope, true, kActorLance);
if (Query_Difficulty_Level() != 0) { if (Query_Difficulty_Level() != 0) {
Global_Variable_Increment(2, 200); Global_Variable_Increment(kVariableChinyen, 200);
} }
} }
} else { } else {
Overlay_Remove("DR06ovr2"); Overlay_Remove("DR06ovr2");
Game_Flag_Reset(548); Game_Flag_Reset(kFlagDR06MannequinHeadOpen);
Sound_Play(161, 100, 0, 0, 50); Sound_Play(161, 100, 0, 0, 50);
} }
Global_Variable_Increment(39, 1); Global_Variable_Increment(kVariableDR06MannequinHeadOpened, 1);
if (Global_Variable_Query(39) > 12) { if (Global_Variable_Query(kVariableDR06MannequinHeadOpened) > 12) {
Sound_Play(204, 100, 0, 0, 50); Sound_Play(204, 100, 0, 0, 50);
Unclickable_Object("X2_TORSO04HIRES"); Unclickable_Object("X2_TORSO04HIRES");
} }

View file

@ -99,8 +99,8 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) {
) )
) { ) {
AI_Movement_Track_Pause(kActorIzo); AI_Movement_Track_Pause(kActorIzo);
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 624.43f, 0.14f, 83.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 624.43f, 0.14f, 83.0f, 0, true, false, 0)) {
if (!Game_Flag_Query(kFlagIzoTalk1)) { if (!Game_Flag_Query(kFlagHC01IzoTalk1)) {
Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
Actor_Says_With_Pause(kActorIzo, 10, 0.2f, 13); Actor_Says_With_Pause(kActorIzo, 10, 0.2f, 13);
Actor_Face_Actor(kActorMcCoy, kActorIzo, true); Actor_Face_Actor(kActorMcCoy, kActorIzo, true);
@ -114,7 +114,7 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) {
Actor_Says_With_Pause(kActorIzo, 70, 1.0f, 13); Actor_Says_With_Pause(kActorIzo, 70, 1.0f, 13);
Actor_Says_With_Pause(kActorMcCoy, 1045, 0.6f, 14); Actor_Says_With_Pause(kActorMcCoy, 1045, 0.6f, 14);
Actor_Says(kActorIzo, 80, 18); Actor_Says(kActorIzo, 80, 18);
Game_Flag_Set(kFlagIzoTalk1); Game_Flag_Set(kFlagHC01IzoTalk1);
} else { } else {
Actor_Face_Actor(kActorMcCoy, kActorIzo, true); Actor_Face_Actor(kActorMcCoy, kActorIzo, true);
Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Face_Actor(kActorIzo, kActorMcCoy, true);
@ -134,7 +134,7 @@ bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) {
Item_Pickup_Spin_Effect(984, 377, 397); Item_Pickup_Spin_Effect(984, 377, 397);
Delay(1500); Delay(1500);
Item_Pickup_Spin_Effect(984, 330, 384); Item_Pickup_Spin_Effect(984, 330, 384);
if (Game_Flag_Query(374)) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo); Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
} else { } else {
Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo); Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
@ -151,8 +151,8 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) {
Music_Adjust(12, 0, 2); Music_Adjust(12, 0, 2);
Game_Flag_Set(kFlagHC01toAR01); Game_Flag_Set(kFlagHC01toAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
Game_Flag_Reset(kFlagMcCoyAtHCxx); Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
} }
return true; return true;
} }
@ -197,7 +197,7 @@ void SceneScriptHC01::SceneFrameAdvanced(int frame) {
} }
if (frame == 80) { if (frame == 80) {
Ambient_Sounds_Play_Sound(316, 40, 100, 100, 0); Ambient_Sounds_Play_Sound(316, 40, 100, 100, 0);
Item_Add_To_World(kItemHC03Lock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true); Item_Add_To_World(kItemGreenPawnLock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true);
} }
} }
@ -227,12 +227,12 @@ void SceneScriptHC01::DialogueQueueFlushed(int a1) {
} }
void SceneScriptHC01::dialogueWithIzo() { void SceneScriptHC01::dialogueWithIzo() {
if (!Game_Flag_Query(kFlagIzoTalk2)) { if (!Game_Flag_Query(kFlagHC01IzoTalk2)) {
Actor_Says(kActorMcCoy, 1055, 13); Actor_Says(kActorMcCoy, 1055, 13);
Actor_Says(kActorIzo, 130, 13); Actor_Says(kActorIzo, 130, 13);
Actor_Says_With_Pause(kActorMcCoy, 1060, 0.2f, 13); Actor_Says_With_Pause(kActorMcCoy, 1060, 0.2f, 13);
Actor_Says(kActorIzo, 140, 13); Actor_Says(kActorIzo, 140, 13);
Game_Flag_Set(kFlagIzoTalk2); Game_Flag_Set(kFlagHC01IzoTalk2);
} }
Dialogue_Menu_Clear_List(); Dialogue_Menu_Clear_List();

View file

@ -89,7 +89,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
if (actorId == kActorHawkersBarkeep) { if (actorId == kActorHawkersBarkeep) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -150.51f, 0.14f, 62.74f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -150.51f, 0.14f, 62.74f, 0, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorHawkersBarkeep, true); Actor_Face_Actor(kActorMcCoy, kActorHawkersBarkeep, true);
if (!Game_Flag_Query(kFlagHawkersBarkeepIntroduction)) { if (!Game_Flag_Query(kFlagHC02HawkersBarkeepIntroduction)) {
Actor_Says(kActorMcCoy, 1225, 13); Actor_Says(kActorMcCoy, 1225, 13);
Actor_Says_With_Pause(kActorHawkersBarkeep, 0, 0.0f, 13); Actor_Says_With_Pause(kActorHawkersBarkeep, 0, 0.0f, 13);
Actor_Says(kActorHawkersBarkeep, 10, 16); Actor_Says(kActorHawkersBarkeep, 10, 16);
@ -99,7 +99,7 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
Actor_Change_Animation_Mode(kActorMcCoy, 75); Actor_Change_Animation_Mode(kActorMcCoy, 75);
Delay(1500); Delay(1500);
Global_Variable_Increment(kVariableMcCoyDrinks, 1); Global_Variable_Increment(kVariableMcCoyDrinks, 1);
Game_Flag_Set(kFlagHawkersBarkeepIntroduction); Game_Flag_Set(kFlagHC02HawkersBarkeepIntroduction);
} else if ( Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera) } else if ( Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityCamera)
&& !Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityDisc) && !Actor_Clue_Query(kActorMcCoy, kClueChinaBarSecurityDisc)
) { ) {
@ -110,8 +110,8 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
Item_Pickup_Spin_Effect(975, 229, 215); Item_Pickup_Spin_Effect(975, 229, 215);
} else if ( Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1) } else if ( Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview1)
&& !Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe) && !Actor_Clue_Query(kActorMcCoy, kClueFlaskOfAbsinthe)
&& (Global_Variable_Query(kVariableChinyen) > 20 && (Global_Variable_Query(kVariableChinyen) > 20
|| Query_Difficulty_Level() == 0 || Query_Difficulty_Level() == 0
) )
) { ) {
Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, true, kActorHawkersBarkeep); Actor_Clue_Acquire(kActorMcCoy, kClueFlaskOfAbsinthe, true, kActorHawkersBarkeep);
@ -132,12 +132,12 @@ bool SceneScriptHC02::ClickedOnActor(int actorId) {
Actor_Says(kActorMcCoy, 1245, 13); Actor_Says(kActorMcCoy, 1245, 13);
} else { } else {
if ( Actor_Clue_Query(kActorMcCoy, kClueMaggieBracelet) if ( Actor_Clue_Query(kActorMcCoy, kClueMaggieBracelet)
&& !Game_Flag_Query(kFlagHawkersBarkeepBraceletTalk) && !Game_Flag_Query(kFlagHC02HawkersBarkeepBraceletTalk)
) { ) {
Actor_Says(kActorHawkersBarkeep, 80, 16); Actor_Says(kActorHawkersBarkeep, 80, 16);
Actor_Says(kActorMcCoy, 1265, 13); Actor_Says(kActorMcCoy, 1265, 13);
Actor_Says(kActorHawkersBarkeep, 90, 13); Actor_Says(kActorHawkersBarkeep, 90, 13);
Game_Flag_Set(kFlagHawkersBarkeepBraceletTalk); Game_Flag_Set(kFlagHC02HawkersBarkeepBraceletTalk);
} }
if (Global_Variable_Query(kVariableChinyen) > 5 if (Global_Variable_Query(kVariableChinyen) > 5
|| Query_Difficulty_Level() == 0 || Query_Difficulty_Level() == 0

View file

@ -46,7 +46,7 @@ void SceneScriptHC03::InitializeScene() {
if (Game_Flag_Query(kFlagHC03CageOpen) if (Game_Flag_Query(kFlagHC03CageOpen)
|| Global_Variable_Query(kVariableChapter) > 3 || Global_Variable_Query(kVariableChapter) > 3
) { ) {
Item_Remove_From_World(kItemHC03Lock); Item_Remove_From_World(kItemGreenPawnLock);
Game_Flag_Set(kFlagHC03CageOpen); Game_Flag_Set(kFlagHC03CageOpen);
Scene_Exit_Add_2D_Exit(1, 400, 275, 515, 375, 2); Scene_Exit_Add_2D_Exit(1, 400, 275, 515, 375, 2);
} }
@ -115,12 +115,12 @@ bool SceneScriptHC03::ClickedOnActor(int actorId) {
} }
bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) { bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) {
if (itemId == kItemHC03Lock) { if (itemId == kItemGreenPawnLock) {
if (combatMode) { if (combatMode) {
Scene_Loop_Set_Default(kHC03LoopMainCageOpen); Scene_Loop_Set_Default(kHC03LoopMainCageOpen);
Scene_Loop_Start_Special(kSceneLoopModeOnce, kHC03LoopCageDoorOpening, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, kHC03LoopCageDoorOpening, true);
Game_Flag_Set(kFlagHC03CageOpen); Game_Flag_Set(kFlagHC03CageOpen);
Item_Remove_From_World(kItemHC03Lock); Item_Remove_From_World(kItemGreenPawnLock);
Unobstacle_Object("GPscisGate", true); Unobstacle_Object("GPscisGate", true);
} else { } else {
Actor_Says(kActorMcCoy, 8522, 12); Actor_Says(kActorMcCoy, 8522, 12);
@ -135,7 +135,7 @@ bool SceneScriptHC03::ClickedOnItem(int itemId, bool combatMode) {
Item_Pickup_Spin_Effect(984, 78, 435); Item_Pickup_Spin_Effect(984, 78, 435);
Delay(1500); Delay(1500);
Item_Pickup_Spin_Effect(984, 58, 435); Item_Pickup_Spin_Effect(984, 58, 435);
if (Game_Flag_Query(374)) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo); Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy1, true, kActorIzo);
} else { } else {
Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo); Actor_Clue_Acquire(kActorMcCoy, kCluePhotoOfMcCoy2, true, kActorIzo);
@ -163,8 +163,8 @@ bool SceneScriptHC03::ClickedOnExit(int exitId) {
Game_Flag_Set(kFlagHC03TrapDoorOpen); Game_Flag_Set(kFlagHC03TrapDoorOpen);
} else { } else {
Game_Flag_Set(kFlagHC03toUG02); Game_Flag_Set(kFlagHC03toUG02);
Game_Flag_Reset(kFlagMcCoyAtHCxx); Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
Game_Flag_Set(kFlagMcCoyAtUGxx); Game_Flag_Set(kFlagMcCoyInUnderground);
Game_Flag_Set(kFlagHC03TrapDoorOpen); Game_Flag_Set(kFlagHC03TrapDoorOpen);
Music_Stop(2); Music_Stop(2);
Set_Enter(kSetUG02, kSceneUG02); Set_Enter(kSetUG02, kSceneUG02);

View file

@ -87,11 +87,11 @@ bool SceneScriptHC04::ClickedOnActor(int actorId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -155.0f, 0.0f, -475.0f, 12, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -155.0f, 0.0f, -475.0f, 12, true, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorIsabella, true); Actor_Face_Actor(kActorMcCoy, kActorIsabella, true);
Actor_Face_Actor(kActorIsabella, kActorMcCoy, true); Actor_Face_Actor(kActorIsabella, kActorMcCoy, true);
if (!Game_Flag_Query(kFlagIsabellaIntroduced)) { if (!Game_Flag_Query(kFlagHC04IsabellaTalk)) {
Actor_Says(kActorIsabella, 0, kAnimationModeTalk); Actor_Says(kActorIsabella, 0, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 1280, kAnimationModeTalk); Actor_Says(kActorMcCoy, 1280, kAnimationModeTalk);
Actor_Says(kActorIsabella, 20, kAnimationModeTalk); Actor_Says(kActorIsabella, 20, kAnimationModeTalk);
Game_Flag_Set(kFlagIsabellaIntroduced); Game_Flag_Set(kFlagHC04IsabellaTalk);
return true; return true;
} else { } else {
dialogueWithIsabella(); dialogueWithIsabella();
@ -111,8 +111,8 @@ bool SceneScriptHC04::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.14f, -639.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.14f, -639.0f, 0, true, false, 0)) {
Music_Stop(2); Music_Stop(2);
Game_Flag_Set(kFlagHC04toRC03); Game_Flag_Set(kFlagHC04toRC03);
Game_Flag_Reset(kFlagMcCoyAtHCxx); Game_Flag_Reset(kFlagMcCoyInHawkersCircle);
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Set_Enter(kSetRC03, kSceneRC03); Set_Enter(kSetRC03, kSceneRC03);
} }
return true; return true;

View file

@ -191,79 +191,79 @@ bool SceneScriptHF01::ClickedOnExit(int exitId) {
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -260.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -260.0f, 0, true, false, 0)) {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtHFxx); Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
int spinnerDest = Spinner_Interface_Choose_Dest(3, false); int spinnerDest = Spinner_Interface_Choose_Dest(3, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -300.0f, 0, true, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 0.0f, -300.0f, 0, true, false, 0);
break; break;
} }

View file

@ -27,7 +27,7 @@ namespace BladeRunner {
void SceneScriptHF05::InitializeScene() { void SceneScriptHF05::InitializeScene() {
if (Game_Flag_Query(530)) { if (Game_Flag_Query(530)) {
Setup_Scene_Information(257.0f, 40.63f, 402.0f, 1000); Setup_Scene_Information(257.0f, 40.63f, 402.0f, 1000);
} else if (Game_Flag_Query(358)) { } else if (Game_Flag_Query(kFlagHF07toHF05)) {
Setup_Scene_Information(330.0f, 40.63f, -107.0f, 603); Setup_Scene_Information(330.0f, 40.63f, -107.0f, 603);
} else { } else {
Setup_Scene_Information(483.0f, 40.63f, -189.0f, 600); Setup_Scene_Information(483.0f, 40.63f, -189.0f, 600);
@ -162,13 +162,13 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
if (!Game_Flag_Query(684)) { if (!Game_Flag_Query(684)) {
int affectionTowardsActor = getAffectionTowardsActor(); int affectionTowardsActor = getAffectionTowardsActor();
if (Game_Flag_Query(663) if (Game_Flag_Query(663)
&& Game_Flag_Query(368) && Game_Flag_Query(368)
&& affectionTowardsActor != -1 && affectionTowardsActor != -1
) { ) {
Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true); Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
Actor_Says(kActorMcCoy, 1810, 16); Actor_Says(kActorMcCoy, 1810, 16);
} }
Game_Flag_Set(359); Game_Flag_Set(kFlagHF05toHF07);
Set_Enter(kSetHF07, kSceneHF07); Set_Enter(kSetHF07, kSceneHF07);
} }
} }
@ -255,7 +255,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
Async_Actor_Walk_To_Waypoint(affectionTowardsActor, 437, 36, 0); Async_Actor_Walk_To_Waypoint(affectionTowardsActor, 437, 36, 0);
} else if (Game_Flag_Query(530)) { } else if (Game_Flag_Query(530)) {
Actor_Set_At_XYZ(affectionTowardsActor, 288.0f, 40.63f, 410.0f, 909); Actor_Set_At_XYZ(affectionTowardsActor, 288.0f, 40.63f, 410.0f, 909);
} else if (Game_Flag_Query(358)) { } else if (Game_Flag_Query(kFlagHF07toHF05)) {
Actor_Set_At_XYZ(affectionTowardsActor, 298.0f, 40.63f, -107.0f, 512); Actor_Set_At_XYZ(affectionTowardsActor, 298.0f, 40.63f, -107.0f, 512);
} else { } else {
Actor_Set_At_XYZ(affectionTowardsActor, 284.0f, 40.63f, 286.0f, 0); Actor_Set_At_XYZ(affectionTowardsActor, 284.0f, 40.63f, 286.0f, 0);
@ -281,7 +281,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
} }
} else if (Game_Flag_Query(kFlagHF01toHF05)) { } else if (Game_Flag_Query(kFlagHF01toHF05)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, 0, false, 0);
} else if (Game_Flag_Query(358)) { } else if (Game_Flag_Query(kFlagHF07toHF05)) {
Actor_Set_At_XYZ(kActorMcCoy, 346.0f, 4.63f, -151.0f, 603); Actor_Set_At_XYZ(kActorMcCoy, 346.0f, 4.63f, -151.0f, 603);
Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
} }
@ -298,7 +298,7 @@ void SceneScriptHF05::PlayerWalkedIn() {
} }
Game_Flag_Reset(kFlagHF01toHF05); Game_Flag_Reset(kFlagHF01toHF05);
Game_Flag_Reset(530); Game_Flag_Reset(530);
Game_Flag_Reset(358); Game_Flag_Reset(kFlagHF07toHF05);
//return false; //return false;
} }

View file

@ -25,7 +25,7 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptHF07::InitializeScene() { void SceneScriptHF07::InitializeScene() {
if (Game_Flag_Query(361) ) { if (Game_Flag_Query(kFlagUG06toHF07) ) {
Setup_Scene_Information(-84.0f, 58.43f, -105.0f, 524); Setup_Scene_Information(-84.0f, 58.43f, -105.0f, 524);
} else { } else {
Setup_Scene_Information(298.0f, 58.43f, -71.0f, 700); Setup_Scene_Information(298.0f, 58.43f, -71.0f, 700);
@ -74,7 +74,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
Async_Actor_Walk_To_XYZ(kActorLucy, 235.0f, 58.43f, -100.0f, 0, false); Async_Actor_Walk_To_XYZ(kActorLucy, 235.0f, 58.43f, -100.0f, 0, false);
} }
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 318.0f, 71.43f, -102.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 318.0f, 71.43f, -102.0f, 0, 1, false, 0)) {
Game_Flag_Set(358); Game_Flag_Set(kFlagHF07toHF05);
if (!Game_Flag_Query(662)) { if (!Game_Flag_Query(662)) {
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
@ -96,7 +96,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -84.0f, 58.43f, -105.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -84.0f, 58.43f, -105.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(360); Game_Flag_Set(kFlagHF07toUG06);
Set_Enter(kSetUG05, kSceneUG05); Set_Enter(kSetUG05, kSceneUG05);
} }
return true; return true;
@ -119,20 +119,20 @@ void SceneScriptHF07::PlayerWalkedIn() {
int actorId = getAffectionTowardsActor(); int actorId = getAffectionTowardsActor();
if (Game_Flag_Query(662) && actorId != -1) { if (Game_Flag_Query(662) && actorId != -1) {
Actor_Put_In_Set(actorId, kSetHF07); Actor_Put_In_Set(actorId, kSetHF07);
if (Game_Flag_Query(361)) { if (Game_Flag_Query(kFlagUG06toHF07)) {
Actor_Set_At_XYZ(actorId, -73.0f, 58.43f, -7.0f, 224); Actor_Set_At_XYZ(actorId, -73.0f, 58.43f, -7.0f, 224);
} else { } else {
Actor_Set_At_XYZ(actorId, 235.0f, 58.43f, -100.0f, 512); Actor_Set_At_XYZ(actorId, 235.0f, 58.43f, -100.0f, 512);
} }
} }
} else if (Game_Flag_Query(359)) { } else if (Game_Flag_Query(kFlagHF05toHF07)) {
Actor_Set_At_XYZ(kActorMcCoy, 267.72f, 329.43f, -86.75f, 940); Actor_Set_At_XYZ(kActorMcCoy, 267.72f, 329.43f, -86.75f, 940);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 30, false, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 30, false, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }
Game_Flag_Reset(359); Game_Flag_Reset(kFlagHF05toHF07);
Game_Flag_Reset(361); Game_Flag_Reset(kFlagUG06toHF07);
} }
void SceneScriptHF07::PlayerWalkedOut() { void SceneScriptHF07::PlayerWalkedOut() {

View file

@ -118,74 +118,74 @@ bool SceneScriptMA01::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 381.0f, 0.0f, 54.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 381.0f, 0.0f, 54.0f, 0, 1, false, 0)) {
Player_Loses_Control(); Player_Loses_Control();
Actor_Face_Heading(kActorMcCoy, 736, false); Actor_Face_Heading(kActorMcCoy, 736, false);
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
int spinnerDest = Spinner_Interface_Choose_Dest(kMA01LoopOutDoorAnim, false); int spinnerDest = Spinner_Interface_Choose_Dest(kMA01LoopOutDoorAnim, false);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA01LoopOutshotRoof, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtMA01); Game_Flag_Reset(kFlagSpinnerAtMA01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
@ -194,7 +194,7 @@ bool SceneScriptMA01::ClickedOnExit(int exitId) {
default: default:
Actor_Set_Invisible(kActorMcCoy, false); Actor_Set_Invisible(kActorMcCoy, false);
Actor_Face_Heading(kActorMcCoy, 736, false); Actor_Face_Heading(kActorMcCoy, 736, false);
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
break; break;
} }
} }

View file

@ -246,10 +246,14 @@ void SceneScriptMA02::selectNextTvNews() {
if (Global_Variable_Query(kVariableChapter) >= 3) { if (Global_Variable_Query(kVariableChapter) >= 3) {
arr[i++] = 2; arr[i++] = 2;
} }
if (Global_Variable_Query(kVariableChapter) >= 2 && Global_Variable_Query(kVariableChapter) <= 4) { if (Global_Variable_Query(kVariableChapter) >= 2
&& Global_Variable_Query(kVariableChapter) <= 4
) {
arr[i++] = 3; arr[i++] = 3;
} }
if (Game_Flag_Query(kFlagHomelessBodyFound) && Game_Flag_Query(kFlagHomelessBodyInDumpster)) { if (Game_Flag_Query(kFlagCT04HomelessBodyFound)
&& Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)
) {
arr[i++] = 4; arr[i++] = 4;
} }
Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]); Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]);

View file

@ -50,7 +50,7 @@ void SceneScriptMA04::InitializeScene() {
} }
} else if (Game_Flag_Query(kFlagMA02ToMA04)) { } else if (Game_Flag_Query(kFlagMA02ToMA04)) {
Setup_Scene_Information(-7099.0f, 954.0f, 1866.0f, 502); Setup_Scene_Information(-7099.0f, 954.0f, 1866.0f, 502);
} else if (Game_Flag_Query(kFlagMcCoySleeping)) { } else if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
Setup_Scene_Information(-7107.0f, 954.0f, 1742.0f, 502); Setup_Scene_Information(-7107.0f, 954.0f, 1742.0f, 502);
Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA04LoopWakeup, false); Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA04LoopWakeup, false);
} else { } else {
@ -189,7 +189,7 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
Music_Play(2, 52, 0, 3, -1, 0, 0); Music_Play(2, 52, 0, 3, -1, 0, 0);
return false; return false;
} }
if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagPhoneMessageFromClovis)) { if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagMA04PhoneMessageFromClovis)) {
Sound_Play(123, 100, 0, 0, 50); Sound_Play(123, 100, 0, 0, 50);
Overlay_Remove("MA04OVER"); Overlay_Remove("MA04OVER");
Delay(500); Delay(500);
@ -202,10 +202,10 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
} }
Actor_Says(kActorMcCoy, 2445, 13); Actor_Says(kActorMcCoy, 2445, 13);
Sound_Play(123, 100, 0, 0, 50); Sound_Play(123, 100, 0, 0, 50);
Game_Flag_Set(kFlagPhoneMessageFromClovis); Game_Flag_Set(kFlagMA04PhoneMessageFromClovis);
return true; return true;
} }
if (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagPhoneMessageFromLucy)) { if (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagMA04PhoneMessageFromLucy)) {
Sound_Play(123, 100, 0, 0, 50); Sound_Play(123, 100, 0, 0, 50);
Overlay_Remove("MA04OVER"); Overlay_Remove("MA04OVER");
Delay(500); Delay(500);
@ -218,7 +218,7 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
} }
Actor_Says(kActorMcCoy, 2445, 13); Actor_Says(kActorMcCoy, 2445, 13);
Sound_Play(123, 100, 0, 0, 50); Sound_Play(123, 100, 0, 0, 50);
Game_Flag_Set(kFlagPhoneMessageFromLucy); Game_Flag_Set(kFlagMA04PhoneMessageFromLucy);
return true; return true;
} }
Actor_Says(kActorMcCoy, 2670, 13); Actor_Says(kActorMcCoy, 2670, 13);
@ -240,7 +240,7 @@ void SceneScriptMA04::SceneFrameAdvanced(int frame) {
} else { } else {
Set_Fade_Density(0.0f); Set_Fade_Density(0.0f);
} }
if (frame == 121 && (Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && !Game_Flag_Query(kFlagGuzzaTalkZubenRetired)) { if (frame == 121 && (Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenRetired)) {
Sound_Play(403, 50, 0, 0, 50); Sound_Play(403, 50, 0, 0, 50);
} }
} }
@ -249,20 +249,20 @@ void SceneScriptMA04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptMA04::PlayerWalkedIn() { void SceneScriptMA04::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagMcCoySleeping)) { if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
Player_Gains_Control(); Player_Gains_Control();
} }
if (isPhoneMessageWaiting() || isPhoneRinging()) { if (isPhoneMessageWaiting() || isPhoneRinging()) {
Overlay_Play("MA04OVER", 0, 1, 0, 0); Overlay_Play("MA04OVER", 0, 1, 0, 0);
} }
if (Game_Flag_Query(kFlagMcCoySleeping)) { if (Game_Flag_Query(kFlagMA04McCoySleeping)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7139.0f, 954.0f, 1746.0f, 0, true, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7139.0f, 954.0f, 1746.0f, 0, true, false, 0);
} else if (Game_Flag_Query(kFlagMA02ToMA04)) { } else if (Game_Flag_Query(kFlagMA02ToMA04)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7143.0f, 954.0f, 1868.0f, 0, true, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -7143.0f, 954.0f, 1868.0f, 0, true, false, 0);
} }
Game_Flag_Reset(kFlagMA02ToMA04); Game_Flag_Reset(kFlagMA02ToMA04);
Game_Flag_Reset(kFlagMA05toMA04); Game_Flag_Reset(kFlagMA05toMA04);
Game_Flag_Reset(kFlagMcCoySleeping); Game_Flag_Reset(kFlagMA04McCoySleeping);
if (Game_Flag_Query(kFlagChapter1Ended)) { if (Game_Flag_Query(kFlagChapter1Ended)) {
if (Global_Variable_Query(kVariableChapter) == 2 && !Actor_Clue_Query(kActorMcCoy, kCluePhoneCallGuzza)) { if (Global_Variable_Query(kVariableChapter) == 2 && !Actor_Clue_Query(kActorMcCoy, kCluePhoneCallGuzza)) {
Sound_Play(403, 100, 0, 0, 50); Sound_Play(403, 100, 0, 0, 50);
@ -286,8 +286,8 @@ void SceneScriptMA04::PlayerWalkedIn() {
Actor_Clue_Acquire(kActorMcCoy, kCluePhoneCallGuzza, false, kActorGuzza); Actor_Clue_Acquire(kActorMcCoy, kCluePhoneCallGuzza, false, kActorGuzza);
Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationTyrellBuilding, true); Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationTyrellBuilding, true);
Game_Flag_Set(kFlagRC01PoliceDone); Game_Flag_Set(kFlagRC01PoliceDone);
if (!Game_Flag_Query(kFlagChromeDebrisTaken)) { if (!Game_Flag_Query(kFlagRC01ChromeDebrisTaken)) {
Game_Flag_Set(kFlagChromeDebrisTaken); Game_Flag_Set(kFlagRC01ChromeDebrisTaken);
Item_Remove_From_World(kItemChromeDebris); Item_Remove_From_World(kItemChromeDebris);
} }
Actor_Set_Goal_Number(kActorOfficerLeary, 99); Actor_Set_Goal_Number(kActorOfficerLeary, 99);
@ -338,8 +338,8 @@ bool SceneScriptMA04::isPhoneRinging() {
} }
bool SceneScriptMA04::isPhoneMessageWaiting() { bool SceneScriptMA04::isPhoneMessageWaiting() {
return (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagPhoneMessageFromClovis)) return (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredZuben) && !Game_Flag_Query(kFlagMA04PhoneMessageFromClovis))
|| (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagPhoneMessageFromLucy)); || (Actor_Clue_Query(kActorLucy, kClueMcCoyLetZubenEscape) && !Game_Flag_Query(kFlagMA04PhoneMessageFromLucy));
} }
void SceneScriptMA04::phoneCallWithDektora() { void SceneScriptMA04::phoneCallWithDektora() {
@ -562,7 +562,7 @@ void SceneScriptMA04::sleep() {
Overlay_Remove("MA04OVER"); Overlay_Remove("MA04OVER");
} }
Player_Loses_Control(); Player_Loses_Control();
Game_Flag_Set(kFlagMcCoySleeping); Game_Flag_Set(kFlagMA04McCoySleeping);
if ((Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && Global_Variable_Query(kVariableChapter) == 1) { if ((Game_Flag_Query(kFlagZubenRetired) || Game_Flag_Query(kFlagZubenSpared)) && Global_Variable_Query(kVariableChapter) == 1) {
if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDead) { if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDead) {
Actor_Put_In_Set(kActorZuben, kSetFreeSlotA); Actor_Put_In_Set(kActorZuben, kSetFreeSlotA);

View file

@ -25,22 +25,24 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptMA07::InitializeScene() { void SceneScriptMA07::InitializeScene() {
if (Game_Flag_Query(356)) { if (Game_Flag_Query(kFlagUG19toMA07)) {
Setup_Scene_Information(6.75f, -172.43f, 356.0f, 997); Setup_Scene_Information( 6.75f, -172.43f, 356.0f, 997);
Game_Flag_Reset(356); Game_Flag_Reset(kFlagUG19toMA07);
Game_Flag_Set(665); Game_Flag_Set(665);
} else if (Game_Flag_Query(673)) { } else if (Game_Flag_Query(kFlagPS14toMA07)) {
Setup_Scene_Information(-312.0f, -162.8f, 180.0f, 0); Setup_Scene_Information(-312.0f, -162.8f, 180.0f, 0);
} else { } else {
Setup_Scene_Information(104.0f, -162.16f, 56.0f, 519); Setup_Scene_Information( 104.0f, -162.16f, 56.0f, 519);
} }
Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1); Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
if (Global_Variable_Query(kVariableChapter) > 1) { if (Global_Variable_Query(kVariableChapter) > 1) {
Scene_Exit_Add_2D_Exit(1, 0, 200, 50, 479, 3); Scene_Exit_Add_2D_Exit(1, 0, 200, 50, 479, 3);
} }
@ -72,8 +74,10 @@ bool SceneScriptMA07::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptMA07::ClickedOnExit(int exitId) { bool SceneScriptMA07::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 104.0f, -162.0f, 56.0f, 12, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 104.0f, -162.0f, 56.0f, 12, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671)) { if (Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(671)
) {
Actor_Set_Goal_Number(kActorMcCoy, 400); Actor_Set_Goal_Number(kActorMcCoy, 400);
} else { } else {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@ -84,22 +88,24 @@ bool SceneScriptMA07::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, -162.8f, 185.08f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -400.0f, -162.8f, 185.08f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(672); Game_Flag_Set(kFlagMA07toPS14);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Set_Enter(kSetPS14, kScenePS14); Set_Enter(kSetPS14, kScenePS14);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 8.0f, -172.43f, 356.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 8.0f, -172.43f, 356.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(357); Game_Flag_Set(kFlagMA07toUG19);
Set_Enter(kSetUG19, kSceneUG19); Set_Enter(kSetUG19, kSceneUG19);
} }
return true; return true;
@ -121,9 +127,9 @@ void SceneScriptMA07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptMA07::PlayerWalkedIn() { void SceneScriptMA07::PlayerWalkedIn() {
if (Game_Flag_Query(673)) { if (Game_Flag_Query(kFlagPS14toMA07)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -268.0f, -162.8f, 188.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -268.0f, -162.8f, 188.0f, 0, false, false, 0);
Game_Flag_Reset(673); Game_Flag_Reset(kFlagPS14toMA07);
} }
if (Actor_Query_Goal_Number(kActorRachael) == 300) { if (Actor_Query_Goal_Number(kActorRachael) == 300) {
Actor_Set_Goal_Number(kActorRachael, 305); Actor_Set_Goal_Number(kActorRachael, 305);
@ -131,7 +137,10 @@ void SceneScriptMA07::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagMA06toMA07)) { if (Game_Flag_Query(kFlagMA06toMA07)) {
Game_Flag_Reset(kFlagMA06toMA07); Game_Flag_Reset(kFlagMA06toMA07);
} }
if (!Game_Flag_Query(648) && Game_Flag_Query(671) && Global_Variable_Query(kVariableChapter) == 4) { if (!Game_Flag_Query(648)
&& Game_Flag_Query(671)
&& Global_Variable_Query(kVariableChapter) == 4
) {
Scene_Exits_Disable(); Scene_Exits_Disable();
Actor_Set_Goal_Number(kActorGaff, 300); Actor_Set_Goal_Number(kActorGaff, 300);
} }

View file

@ -28,20 +28,21 @@ void SceneScriptNR01::InitializeScene() {
if (Game_Flag_Query(617)) { if (Game_Flag_Query(617)) {
Setup_Scene_Information(-153.86f, 23.88f, -570.21f, 402); Setup_Scene_Information(-153.86f, 23.88f, -570.21f, 402);
} else if (Game_Flag_Query(632)) { } else if (Game_Flag_Query(632)) {
Setup_Scene_Information(-416.0f, 31.93f, -841.0f, 200); Setup_Scene_Information( -416.0f, 31.93f, -841.0f, 200);
Actor_Set_Invisible(kActorMcCoy, true); Actor_Set_Invisible(kActorMcCoy, true);
Preload(167); Preload(167);
} else if (Game_Flag_Query(534)) { } else if (Game_Flag_Query(534)) {
Setup_Scene_Information(-416.0f, 31.93f, -841.0f, 200); Setup_Scene_Information( -416.0f, 31.93f, -841.0f, 200);
} else if (Game_Flag_Query(342)) { } else if (Game_Flag_Query(kFlagUG06toNR01)) {
Setup_Scene_Information(-270.0f, 4.93f, -1096.0f, 500); Setup_Scene_Information( -270.0f, 4.93f, -1096.0f, 500);
} else if (Game_Flag_Query(533)) { } else if (Game_Flag_Query(533)) {
Setup_Scene_Information(312.0f, 31.66f, -901.0f, 700); Setup_Scene_Information( 312.0f, 31.66f, -901.0f, 700);
} else if (Game_Flag_Query(545)) { } else if (Game_Flag_Query(545)) {
Setup_Scene_Information(-170.0f, 24.0f, -574.0f, 768); Setup_Scene_Information( -170.0f, 24.0f, -574.0f, 768);
} else { } else {
Setup_Scene_Information(76.0f, 23.88f, -109.0f, 966); Setup_Scene_Information( 76.0f, 23.88f, -109.0f, 966);
} }
Scene_Exit_Add_2D_Exit(0, 31, 270, 97, 373, 3); Scene_Exit_Add_2D_Exit(0, 31, 270, 97, 373, 3);
if (Global_Variable_Query(kVariableChapter) > 3) { if (Global_Variable_Query(kVariableChapter) > 3) {
Scene_Exit_Add_2D_Exit(1, 201, 320, 276, 357, 2); Scene_Exit_Add_2D_Exit(1, 201, 320, 276, 357, 2);
@ -50,32 +51,40 @@ void SceneScriptNR01::InitializeScene() {
if (Game_Flag_Query(kFlagSpinnerAtNR01)) { if (Game_Flag_Query(kFlagSpinnerAtNR01)) {
Scene_Exit_Add_2D_Exit(3, 320, 445, 639, 479, 2); Scene_Exit_Add_2D_Exit(3, 320, 445, 639, 479, 2);
} }
Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1); Ambient_Sounds_Add_Looping_Sound(54, 50, 0, 1);
Ambient_Sounds_Add_Looping_Sound(362, 22, 55, 1); Ambient_Sounds_Add_Looping_Sound(362, 22, 55, 1);
Ambient_Sounds_Add_Sound(361, 10, 10, 20, 20, -70, -70, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(361, 10, 10, 20, 20, -70, -70, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(182, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(182, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(184, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(184, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(185, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(185, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(186, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(186, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(188, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(188, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(189, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(189, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(192, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(192, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(68, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 68, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(69, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 69, 10, 80, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 10, 80, 33, 33, 0, 0, -101, -101, 0, 0);
if (Game_Flag_Query(643) && Actor_Query_Goal_Number(kActorSteele) == 230) {
if (Game_Flag_Query(643)
&& Actor_Query_Goal_Number(kActorSteele) == 230
) {
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagSpinnerAtHF01); Game_Flag_Reset(kFlagSpinnerAtHF01);
} }
if (Game_Flag_Query(kFlagSpinnerAtNR01) && !Game_Flag_Query(kFlagArrivedFromSpinner1)) { if ( Game_Flag_Query(kFlagSpinnerAtNR01)
&& !Game_Flag_Query(kFlagArrivedFromSpinner1)
) {
Scene_Loop_Start_Special(0, 0, 0); Scene_Loop_Start_Special(0, 0, 0);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
Game_Flag_Set(kFlagArrivedFromSpinner1); Game_Flag_Set(kFlagArrivedFromSpinner1);
} else if (Game_Flag_Query(kFlagSpinnerAtNR01) && Game_Flag_Query(kFlagArrivedFromSpinner1)) { } else if (Game_Flag_Query(kFlagSpinnerAtNR01)
&& Game_Flag_Query(kFlagArrivedFromSpinner1)
) {
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
} else { } else {
Scene_Loop_Set_Default(4); Scene_Loop_Set_Default(4);
@ -127,7 +136,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(343); Game_Flag_Set(kFlagNR01toUG06);
Set_Enter(kSetUG06, kSceneUG06); Set_Enter(kSetUG06, kSceneUG06);
} }
return true; return true;
@ -143,17 +152,17 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 108.0f, 23.88f, -93.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 108.0f, 23.88f, -93.0f, 0, true, false, 0)) {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtHFxx); Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyAtNRxx); Game_Flag_Reset(kFlagMcCoyInNightclubRow);
switch (Spinner_Interface_Choose_Dest(-1, true)) { switch (Spinner_Interface_Choose_Dest(-1, true)) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
@ -161,7 +170,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
@ -169,7 +178,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
@ -177,7 +186,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
@ -185,7 +194,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
@ -193,7 +202,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
@ -201,7 +210,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
@ -209,7 +218,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagArrivedFromSpinner1);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
@ -217,7 +226,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtNR01); Game_Flag_Reset(kFlagSpinnerAtNR01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
@ -225,7 +234,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
break; break;
default: default:
Player_Loses_Control(); Player_Loses_Control();
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Set(kFlagArrivedFromSpinner1); Game_Flag_Set(kFlagArrivedFromSpinner1);
Player_Gains_Control(); Player_Gains_Control();
break; break;
@ -308,16 +317,16 @@ void SceneScriptNR01::PlayerWalkedIn() {
return; return;
} }
if (Game_Flag_Query(534)) { if (Game_Flag_Query(534)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -380.0f, 31.73f, -841.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -380.0f, 31.73f, -841.0f, 0, false, false, 0);
Game_Flag_Reset(534); Game_Flag_Reset(534);
} else { } else {
if (Game_Flag_Query(342)) { if (Game_Flag_Query(kFlagUG06toNR01)) {
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
Game_Flag_Reset(342); Game_Flag_Reset(kFlagUG06toNR01);
if (Actor_Query_Goal_Number(kActorSteele) == 230) { if (Actor_Query_Goal_Number(kActorSteele) == 230) {
Actor_Face_Actor(kActorSteele, kActorMcCoy, true); Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
Actor_Says(kActorSteele, 1440, 13); Actor_Says(kActorSteele, 1440, 13);
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, 0, true); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, false, true);
Actor_Says(kActorMcCoy, 3145, 13); Actor_Says(kActorMcCoy, 3145, 13);
if (Global_Variable_Query(40) != 3) { if (Global_Variable_Query(40) != 3) {
Actor_Says(kActorSteele, 1450, 12); Actor_Says(kActorSteele, 1450, 12);
@ -418,7 +427,12 @@ void SceneScriptNR01::PlayerWalkedIn() {
void SceneScriptNR01::PlayerWalkedOut() { void SceneScriptNR01::PlayerWalkedOut() {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
if (!Game_Flag_Query(343) && !Game_Flag_Query(532) && !Game_Flag_Query(535) && !Game_Flag_Query(632) && !Game_Flag_Query(722)) { if (!Game_Flag_Query(kFlagNR01toUG06)
&& !Game_Flag_Query(532)
&& !Game_Flag_Query(535)
&& !Game_Flag_Query(632)
&& !Game_Flag_Query(722)
) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Outtake_Play(kOuttakeAway1, true, -1); Outtake_Play(kOuttakeAway1, true, -1);
@ -428,7 +442,11 @@ void SceneScriptNR01::PlayerWalkedOut() {
} }
void SceneScriptNR01::DialogueQueueFlushed(int a1) { void SceneScriptNR01::DialogueQueueFlushed(int a1) {
if (Actor_Query_Goal_Number(kActorSteele) == 251 && Actor_Query_Goal_Number(kActorGordo) != 299 && Actor_Query_Goal_Number(kActorGordo) != 254 && Actor_Query_Goal_Number(kActorGordo) != 255) { if (Actor_Query_Goal_Number(kActorSteele) == 251
&& Actor_Query_Goal_Number(kActorGordo) != 299
&& Actor_Query_Goal_Number(kActorGordo) != 254
&& Actor_Query_Goal_Number(kActorGordo) != 255
) {
Actor_Set_Goal_Number(kActorSteele, 252); Actor_Set_Goal_Number(kActorSteele, 252);
} }
} }

View file

@ -152,7 +152,7 @@ bool SceneScriptNR04::ClickedOn2DRegion(int region) {
if (Game_Flag_Query(606) == 1) { if (Game_Flag_Query(606) == 1) {
return true; return true;
} }
if (Game_Flag_Query(374)) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Player_Loses_Control(); Player_Loses_Control();
Actor_Voice_Over(4180, kActorVoiceOver); Actor_Voice_Over(4180, kActorVoiceOver);
Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Change_Animation_Mode(kActorMcCoy, 48);
@ -260,7 +260,7 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptNR04::PlayerWalkedIn() { void SceneScriptNR04::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 53.0f, 0.0f, -26.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 53.0f, 0.0f, -26.0f, 0, 0, false, 0);
if (Game_Flag_Query(374)) { if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Overlay_Play("nr04over", 0, 1, 0, 0); Overlay_Play("nr04over", 0, 1, 0, 0);
Delay(4000); Delay(4000);
Overlay_Remove("nr04over"); Overlay_Remove("nr04over");

View file

@ -87,74 +87,74 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1877.9f, 16592.0f, -2975.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1877.9f, 16592.0f, -2975.0f, 0, true, false, 0)) {
Actor_Set_At_XYZ(kActorMcCoy, 1872.0f, 16592.0f, -2975.0f, 870); Actor_Set_At_XYZ(kActorMcCoy, 1872.0f, 16592.0f, -2975.0f, 870);
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtARxx); Game_Flag_Reset(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyAtDRxx); Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
int spinnerDest = Spinner_Interface_Choose_Dest(3, true); int spinnerDest = Spinner_Interface_Choose_Dest(3, true);
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 4, true);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtPS01); Game_Flag_Reset(kFlagSpinnerAtPS01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
@ -162,7 +162,7 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
break; break;
default: default:
Actor_Face_Heading(kActorMcCoy, 870, false); Actor_Face_Heading(kActorMcCoy, 870, false);
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Set(kFlagArrivedFromSpinner2); Game_Flag_Set(kFlagArrivedFromSpinner2);
Player_Loses_Control(); Player_Loses_Control();
Scene_Loop_Start_Special(2, 3, 1); Scene_Loop_Start_Special(2, 3, 1);

View file

@ -152,7 +152,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5); // HOLDEN'S BADGE DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5); // HOLDEN'S BADGE
} }
} }
if (Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1); // CONFESS TO SHOOTING DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1); // CONFESS TO SHOOTING
} }
DM_Add_To_List(130, 1, 1, 1); // REPORT IN DM_Add_To_List(130, 1, 1, 1); // REPORT IN
@ -192,7 +192,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
case 130: // REPORT IN case 130: // REPORT IN
if ( Game_Flag_Query(kFlagZubenRetired) if ( Game_Flag_Query(kFlagZubenRetired)
&& !Game_Flag_Query(kFlagGuzzaTalkZubenRetired) && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenRetired)
) { ) {
Actor_Says(kActorMcCoy, 3920, 13); Actor_Says(kActorMcCoy, 3920, 13);
Actor_Says(kActorGuzza, 140, 30); Actor_Says(kActorGuzza, 140, 30);
@ -220,13 +220,13 @@ void SceneScriptPS04::dialogueWithGuzza() {
Actor_Says(kActorGuzza, 250, 34); Actor_Says(kActorGuzza, 250, 34);
Actor_Says(kActorGuzza, 260, 33); Actor_Says(kActorGuzza, 260, 33);
Actor_Says(kActorGuzza, 270, 32); Actor_Says(kActorGuzza, 270, 32);
Game_Flag_Set(kFlagGuzzaTalkZubenRetired); Game_Flag_Set(kFlagPS04GuzzaTalkZubenRetired);
if (Query_Difficulty_Level() != 0) { if (Query_Difficulty_Level() != 0) {
Global_Variable_Increment(kVariableChinyen, 200); Global_Variable_Increment(kVariableChinyen, 200);
} }
Game_Flag_Set(kFlagZubenBountyPaid); Game_Flag_Set(kFlagZubenBountyPaid);
} else if ( Game_Flag_Query(kFlagZubenSpared) } else if ( Game_Flag_Query(kFlagZubenSpared)
&& !Game_Flag_Query(kFlagGuzzaTalkZubenEscaped) && !Game_Flag_Query(kFlagPS04GuzzaTalkZubenEscaped)
) { ) {
Actor_Says(kActorMcCoy, 3955, 13); Actor_Says(kActorMcCoy, 3955, 13);
Actor_Says(kActorGuzza, 280, 30); Actor_Says(kActorGuzza, 280, 30);
@ -236,14 +236,14 @@ void SceneScriptPS04::dialogueWithGuzza() {
Actor_Says(kActorMcCoy, 3965, 13); Actor_Says(kActorMcCoy, 3965, 13);
Actor_Says(kActorGuzza, 310, 33); Actor_Says(kActorGuzza, 310, 33);
Actor_Says(kActorGuzza, 320, 34); Actor_Says(kActorGuzza, 320, 34);
Game_Flag_Set(kFlagGuzzaTalkZubenEscaped); Game_Flag_Set(kFlagPS04GuzzaTalkZubenEscaped);
} else if ( } else if (
( Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper) ( Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
|| Actor_Clue_Query(kActorMcCoy, kClueSushiMenu) || Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
) )
&& Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA) && Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA)
&& Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) < 50 && Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) < 50
&& !Game_Flag_Query(kFlagGuzzaTalk1) && !Game_Flag_Query(kFlagPS04GuzzaTalk1)
) { ) {
Actor_Says(kActorMcCoy, 3970, 18); Actor_Says(kActorMcCoy, 3970, 18);
Actor_Says(kActorGuzza, 330, 30); Actor_Says(kActorGuzza, 330, 30);
@ -258,18 +258,18 @@ void SceneScriptPS04::dialogueWithGuzza() {
Actor_Says(kActorMcCoy, 3985, 18); Actor_Says(kActorMcCoy, 3985, 18);
Actor_Says(kActorGuzza, 400, 34); Actor_Says(kActorGuzza, 400, 34);
Actor_Says(kActorGuzza, 410, 31); Actor_Says(kActorGuzza, 410, 31);
Game_Flag_Set(kFlagGuzzaTalk1); Game_Flag_Set(kFlagPS04GuzzaTalk1);
} else if ( } else if (
( Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper) ( Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper)
|| Actor_Clue_Query(kActorMcCoy, kClueSushiMenu) || Actor_Clue_Query(kActorMcCoy, kClueSushiMenu)
) )
&& Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA) && Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA)
&& !Game_Flag_Query(kFlagGuzzaTalk2) && !Game_Flag_Query(kFlagPS04GuzzaTalk2)
) { ) {
Actor_Says(kActorMcCoy, 3920, 13); Actor_Says(kActorMcCoy, 3920, 13);
Actor_Says(kActorGuzza, 570, 32); Actor_Says(kActorGuzza, 570, 32);
Actor_Says(kActorMcCoy, 4070, 13); Actor_Says(kActorMcCoy, 4070, 13);
Game_Flag_Set(kFlagGuzzaTalk2); Game_Flag_Set(kFlagPS04GuzzaTalk2);
} else if (Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) >= 50) { } else if (Actor_Query_Friendliness_To_Other(kActorGuzza, kActorMcCoy) >= 50) {
Actor_Says(kActorMcCoy, 4020, 13); Actor_Says(kActorMcCoy, 4020, 13);
Actor_Says(kActorGuzza, 580, 34); Actor_Says(kActorGuzza, 580, 34);

View file

@ -174,7 +174,7 @@ void SceneScriptPS05::selectNextTvNews() {
if (Global_Variable_Query(kVariableChapter) >= 2 && Global_Variable_Query(kVariableChapter) <= 4) { if (Global_Variable_Query(kVariableChapter) >= 2 && Global_Variable_Query(kVariableChapter) <= 4) {
arr[i++] = 3; arr[i++] = 3;
} }
if (Game_Flag_Query(kFlagHomelessBodyFound) && Game_Flag_Query(kFlagHomelessBodyInDumpster)) { if (Game_Flag_Query(kFlagCT04HomelessBodyFound) && Game_Flag_Query(kFlagCT04HomelessBodyInDumpster)) {
arr[i++] = 4; arr[i++] = 4;
} }
Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]); Global_Variable_Set(kVariableNextTvNews, arr[Random_Query(0, i - 1)]);

View file

@ -69,11 +69,11 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
Actor_Face_Actor(kActorMcCoy, kActorKlein, true); Actor_Face_Actor(kActorMcCoy, kActorKlein, true);
Actor_Set_Goal_Number(kActorKlein, 3); Actor_Set_Goal_Number(kActorKlein, 3);
if (!Game_Flag_Query(kFlagKleinTalkClues)) { if (!Game_Flag_Query(kFlagPS07KleinTalkClues)) {
Actor_Says(kActorMcCoy, 4115, 13); Actor_Says(kActorMcCoy, 4115, 13);
} }
if (!Game_Flag_Query(kFlagKleinTalkClues) if (!Game_Flag_Query(kFlagPS07KleinTalkClues)
&& (Game_Flag_Query(kFlagMcCoyHasShellCasings) && (Game_Flag_Query(kFlagMcCoyHasShellCasings)
|| Game_Flag_Query(kFlagMcCoyHasOfficersStatement) || Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
|| Game_Flag_Query(kFlagMcCoyHasPaintTransfer) || Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
@ -82,17 +82,17 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
) { ) {
Actor_Face_Actor(kActorKlein, kActorMcCoy, true); Actor_Face_Actor(kActorKlein, kActorMcCoy, true);
Actor_Says(kActorKlein, 30, 12); Actor_Says(kActorKlein, 30, 12);
Game_Flag_Set(kFlagKleinTalkClues); Game_Flag_Set(kFlagPS07KleinTalkClues);
} else { } else {
if (Game_Flag_Query(kFlagKleinTalkClues)) { if (Game_Flag_Query(kFlagPS07KleinTalkClues)) {
Actor_Says(kActorMcCoy, 4130, 18); Actor_Says(kActorMcCoy, 4130, 18);
} }
} }
if ( Game_Flag_Query(kFlagMcCoyHasShellCasings) if ( Game_Flag_Query(kFlagMcCoyHasShellCasings)
&& !Game_Flag_Query(kFlagKleinTalkShellCasings) && !Game_Flag_Query(kFlagPS07KleinTalkShellCasings)
) { ) {
Game_Flag_Set(kFlagKleinTalkShellCasings); Game_Flag_Set(kFlagPS07KleinTalkShellCasings);
Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein); Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein);
Actor_Says(kActorKlein, 50, 16); Actor_Says(kActorKlein, 50, 16);
Actor_Says(kActorMcCoy, 4135, 13); Actor_Says(kActorMcCoy, 4135, 13);
@ -106,9 +106,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
} }
if ( Game_Flag_Query(kFlagMcCoyHasOfficersStatement) if ( Game_Flag_Query(kFlagMcCoyHasOfficersStatement)
&& !Game_Flag_Query(kFlagKleinTalkOfficersStatement) && !Game_Flag_Query(kFlagPS07KleinTalkOfficersStatement)
) { ) {
Game_Flag_Set(kFlagKleinTalkOfficersStatement); Game_Flag_Set(kFlagPS07KleinTalkOfficersStatement);
Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein); Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein);
Actor_Says(kActorKlein, 100, 13); Actor_Says(kActorKlein, 100, 13);
Actor_Says(kActorMcCoy, 4145, 13); Actor_Says(kActorMcCoy, 4145, 13);
@ -129,9 +129,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
} }
if ( Game_Flag_Query(kFlagMcCoyHasPaintTransfer) if ( Game_Flag_Query(kFlagMcCoyHasPaintTransfer)
&& !Game_Flag_Query(kFlagKleinTalkPaintTransfer) && !Game_Flag_Query(kFlagPS07KleinTalkPaintTransfer)
) { ) {
Game_Flag_Set(kFlagKleinTalkPaintTransfer); Game_Flag_Set(kFlagPS07KleinTalkPaintTransfer);
Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein); Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein);
Actor_Says(kActorKlein, 170, 14); Actor_Says(kActorKlein, 170, 14);
Actor_Says(kActorMcCoy, 4180, 13); Actor_Says(kActorMcCoy, 4180, 13);
@ -146,9 +146,9 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
} }
if ( Game_Flag_Query(kFlagMcCoyHasChromeDebris) if ( Game_Flag_Query(kFlagMcCoyHasChromeDebris)
&& !Game_Flag_Query(kFlagKleinTalkChromeDebris) && !Game_Flag_Query(kFlagPS07KleinTalkChromeDebris)
) { ) {
Game_Flag_Set(kFlagKleinTalkChromeDebris); Game_Flag_Set(kFlagPS07KleinTalkChromeDebris);
Actor_Says(kActorKlein, 220, 12); Actor_Says(kActorKlein, 220, 12);
Actor_Says(kActorMcCoy, 4190, 13); Actor_Says(kActorMcCoy, 4190, 13);
Actor_Says(kActorKlein, 230, 14); Actor_Says(kActorKlein, 230, 14);
@ -194,7 +194,7 @@ void SceneScriptPS07::PlayerWalkedIn() {
} }
void SceneScriptPS07::PlayerWalkedOut() { void SceneScriptPS07::PlayerWalkedOut() {
if (!Game_Flag_Query(kFlagKleinInsulted) && Global_Variable_Query(kVariableChapter) == 1) { if (!Game_Flag_Query(kFlagPS07KleinInsulted) && Global_Variable_Query(kVariableChapter) == 1) {
Actor_Set_Goal_Number(kActorKlein, 0); Actor_Set_Goal_Number(kActorKlein, 0);
} }
} }

View file

@ -29,17 +29,19 @@ void SceneScriptPS14::InitializeScene() {
Setup_Scene_Information(-1119.61f, 508.14f, -1208.22f, 315); Setup_Scene_Information(-1119.61f, 508.14f, -1208.22f, 315);
Game_Flag_Reset(kFlagPS03toPS14); Game_Flag_Reset(kFlagPS03toPS14);
} else { } else {
Setup_Scene_Information(-785.45f, 508.14f, -1652.0f, 315); Setup_Scene_Information( -785.45f, 508.14f, -1652.0f, 315);
} }
Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 46, 51, 125, 192, 0); Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 46, 51, 125, 192, 0);
Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1); Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(374, 100, 300, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
} }
void SceneScriptPS14::SceneLoaded() { void SceneScriptPS14::SceneLoaded() {
@ -69,8 +71,10 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -2101.0f, 508.14f, -1361.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -2101.0f, 508.14f, -1361.0f, 0, 1, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 819, false); Actor_Face_Heading(kActorMcCoy, 819, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(671)) { if (Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(671)
) {
if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) { if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) {
Game_Flag_Set(666); Game_Flag_Set(666);
Actor_Set_Goal_Number(kActorMcCoy, 400); Actor_Set_Goal_Number(kActorMcCoy, 400);
@ -88,11 +92,12 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -785.45f, 508.14f, -1652.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -785.45f, 508.14f, -1652.0f, 0, 1, false, 0)) {
Game_Flag_Set(673); Game_Flag_Set(kFlagPS14toMA07);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Set_Enter(kSetMA07, kSceneMA07); Set_Enter(kSetMA07, kSceneMA07);
} }
return true; return true;
@ -111,9 +116,9 @@ void SceneScriptPS14::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptPS14::PlayerWalkedIn() { void SceneScriptPS14::PlayerWalkedIn() {
if (Game_Flag_Query(672)) { if (Game_Flag_Query(kFlagMA07toPS14)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -801.45f, 508.14f, -1596.68f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -801.45f, 508.14f, -1596.68f, 0, false, false, 0);
Game_Flag_Reset(672); Game_Flag_Reset(kFlagMA07toPS14);
} }
//return false; //return false;
} }

View file

@ -227,7 +227,7 @@ void SceneScriptRC01::SceneLoaded() {
Preload(589); Preload(589);
} }
if (!Game_Flag_Query(kFlagChromeDebrisTaken)) { if (!Game_Flag_Query(kFlagRC01ChromeDebrisTaken)) {
Item_Add_To_World(kItemChromeDebris, 938, kSetRC01, -148.60f, -0.30f, 225.15f, 256, 24, 24, false, true, false, true); Item_Add_To_World(kItemChromeDebris, 938, kSetRC01, -148.60f, -0.30f, 225.15f, 256, 24, 24, false, true, false, true);
} }
@ -314,15 +314,15 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyRC01WalkToCrowd) { if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyRC01WalkToCrowd) {
Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault);
} }
if (Game_Flag_Query(kFlagGotOfficersStatement)) { if (Game_Flag_Query(kFlagRC01GotOfficersStatement)) {
Actor_Says(kActorMcCoy, 4535, 13); Actor_Says(kActorMcCoy, 4535, 13);
Game_Flag_Set(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking);
if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewA)) { if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewA)) {
Actor_Face_Object(kActorOfficerLeary, "70_1", true); Actor_Face_Object(kActorOfficerLeary, "70_1", true);
Actor_Says(kActorOfficerLeary, 100, 15); Actor_Says(kActorOfficerLeary, 100, 15);
Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewA, true, kActorOfficerLeary); Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewA, true, kActorOfficerLeary);
Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
} else if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) { } else if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) {
Actor_Face_Object(kActorOfficerLeary, "70_5", true); Actor_Face_Object(kActorOfficerLeary, "70_5", true);
Actor_Says(kActorOfficerLeary, 120, 19); Actor_Says(kActorOfficerLeary, 120, 19);
@ -330,24 +330,24 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
Actor_Says(kActorOfficerLeary, 130, 14); Actor_Says(kActorOfficerLeary, 130, 14);
I_Sez("JM: Did it have a huge, ugly piece of chrome on it?"); I_Sez("JM: Did it have a huge, ugly piece of chrome on it?");
Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewB, true, kActorOfficerLeary); Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewB, true, kActorOfficerLeary);
Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
} else { } else {
Actor_Says(kActorOfficerLeary, 90, 16); Actor_Says(kActorOfficerLeary, 90, 16);
I_Sez("JM: This officer has a talent for vivid metaphors."); I_Sez("JM: This officer has a talent for vivid metaphors.");
if (!Game_Flag_Query(KFlagMcCoyAndOfficerLearyArtMetaphor)) { if (!Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyArtMetaphor)) {
I_Sez("DL: What is that supposed to mean? I didn't write this line..."); I_Sez("DL: What is that supposed to mean? I didn't write this line...");
Actor_Says(kActorMcCoy, 4540, 16); Actor_Says(kActorMcCoy, 4540, 16);
Game_Flag_Set(KFlagMcCoyAndOfficerLearyArtMetaphor); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyArtMetaphor);
} }
Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
} }
} else { } else {
I_Sez("MG: Hey, leave that officer alone. Can't you see he's busy?"); I_Sez("MG: Hey, leave that officer alone. Can't you see he's busy?");
I_Sez("JM: (...mmm, donuts...)"); I_Sez("JM: (...mmm, donuts...)");
Game_Flag_Set(kFlagGotOfficersStatement); Game_Flag_Set(kFlagRC01GotOfficersStatement);
Actor_Clue_Acquire(kActorMcCoy, kClueOfficersStatement, true, kActorOfficerLeary); Actor_Clue_Acquire(kActorMcCoy, kClueOfficersStatement, true, kActorOfficerLeary);
Actor_Says(kActorMcCoy, 4515, 13); Actor_Says(kActorMcCoy, 4515, 13);
Game_Flag_Set(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking);
Actor_Says(kActorOfficerLeary, 40, 13); Actor_Says(kActorOfficerLeary, 40, 13);
if (!Game_Flag_Query(kFlagRC02Entered)) { if (!Game_Flag_Query(kFlagRC02Entered)) {
Actor_Says(kActorOfficerLeary, 50, 14); Actor_Says(kActorOfficerLeary, 50, 14);
@ -359,7 +359,7 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
Actor_Says(kActorOfficerLeary, 80, 18); Actor_Says(kActorOfficerLeary, 80, 18);
Actor_Says(kActorMcCoy, 4530, 15); Actor_Says(kActorMcCoy, 4530, 15);
} }
Game_Flag_Reset(KFlagMcCoyAndOfficerLearyTalking); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking);
} }
} }
return true; return true;
@ -375,7 +375,7 @@ bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) {
Actor_Clue_Acquire(kActorMcCoy, kClueChromeDebris, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueChromeDebris, true, -1);
Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true);
Actor_Says(kActorOfficerLeary, 20, 12); Actor_Says(kActorOfficerLeary, 20, 12);
Game_Flag_Set(kFlagChromeDebrisTaken); Game_Flag_Set(kFlagRC01ChromeDebrisTaken);
Item_Remove_From_World(kItemChromeDebris); Item_Remove_From_World(kItemChromeDebris);
Item_Pickup_Spin_Effect(938, 426, 316); Item_Pickup_Spin_Effect(938, 426, 316);
I_Sez("JM: Chrome...is that what that is?"); I_Sez("JM: Chrome...is that what that is?");
@ -395,7 +395,7 @@ bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) {
void SceneScriptRC01::walkToCenter() { void SceneScriptRC01::walkToCenter() {
Player_Loses_Control(); Player_Loses_Control();
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.98f, -0.3f, 318.15f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.98f, -0.3f, 318.15f, 0, 0, false, 0);
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
@ -426,6 +426,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == kRC01ExitSpinner) { if (exitId == kRC01ExitSpinner) {
if (Game_Flag_Query(kFlagDNARowAvailable)) { if (Game_Flag_Query(kFlagDNARowAvailable)) {
Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true); Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true);
@ -447,10 +448,10 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false);
Player_Gains_Control(); Player_Gains_Control();
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
int spinnerDest; int spinnerDest;
if (Game_Flag_Query(kFlagRC01PoliceDone)) { if (Game_Flag_Query(kFlagRC01PoliceDone)) {
spinnerDest = Spinner_Interface_Choose_Dest(kRC01LoopDoorAnimNoCrowd, true); spinnerDest = Spinner_Interface_Choose_Dest(kRC01LoopDoorAnimNoCrowd, true);
@ -460,7 +461,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
switch (spinnerDest) { switch (spinnerDest) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
@ -471,7 +472,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
@ -482,7 +483,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
@ -493,7 +494,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationTyrellBuilding: case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtTB02); Game_Flag_Set(kFlagSpinnerAtTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
@ -504,7 +505,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
@ -515,7 +516,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
@ -526,7 +527,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
@ -537,7 +538,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
@ -548,7 +549,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Reset(kFlagSpinnerAtRC01);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
@ -565,6 +566,7 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) {
} }
return true; return true;
} }
if (exitId == kRC01ExitRC03) { if (exitId == kRC01ExitRC03) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -471.98f, -0.3f, 258.15f, 4, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -471.98f, -0.3f, 258.15f, 4, true, false, 0)) {
Game_Flag_Set(kFlagRC01toRC03); Game_Flag_Set(kFlagRC01toRC03);
@ -645,11 +647,13 @@ void SceneScriptRC01::PlayerWalkedIn() {
Player_Gains_Control(); Player_Gains_Control();
Game_Flag_Reset(kFlagRC02toRC01); Game_Flag_Reset(kFlagRC02toRC01);
if (Game_Flag_Query(kFlagRC02Entered) && !Game_Flag_Query(kFlagRC02FirstLeave)) { if ( Game_Flag_Query(kFlagRC02Entered)
&& !Game_Flag_Query(kFlagRC02Left)
) {
Actor_Voice_Over(1910, kActorVoiceOver); Actor_Voice_Over(1910, kActorVoiceOver);
Actor_Voice_Over(1920, kActorVoiceOver); Actor_Voice_Over(1920, kActorVoiceOver);
Actor_Voice_Over(1930, kActorVoiceOver); Actor_Voice_Over(1930, kActorVoiceOver);
Game_Flag_Set(kFlagRC02FirstLeave); Game_Flag_Set(kFlagRC02Left);
} }
//return true; //return true;
} }

View file

@ -84,7 +84,7 @@ void SceneScriptRC02::SceneLoaded() {
if (Actor_Clue_Query(kActorMcCoy, kClueRuncitersVideo) || Global_Variable_Query(kVariableChapter) > 1) { if (Actor_Clue_Query(kActorMcCoy, kClueRuncitersVideo) || Global_Variable_Query(kVariableChapter) > 1) {
Unclickable_Object("SCRTY CA03"); Unclickable_Object("SCRTY CA03");
} }
if (!Game_Flag_Query(kFlagShellCasingsTaken)) { if (!Game_Flag_Query(kFlagRC02ShellCasingsTaken)) {
Item_Add_To_World(kItemShellCasingA, 966, kSetRC02_RC51, -52.88f, -1238.89f, 108467.74f, 256, 6, 6, false, true, false, true); Item_Add_To_World(kItemShellCasingA, 966, kSetRC02_RC51, -52.88f, -1238.89f, 108467.74f, 256, 6, 6, false, true, false, true);
Item_Add_To_World(kItemShellCasingB, 966, kSetRC02_RC51, -37.16f, -1238.89f, 108456.59f, 512, 6, 6, false, true, false, true); Item_Add_To_World(kItemShellCasingB, 966, kSetRC02_RC51, -37.16f, -1238.89f, 108456.59f, 512, 6, 6, false, true, false, true);
Item_Add_To_World(kItemShellCasingC, 966, kSetRC02_RC51, -62.86f, -1238.89f, 108437.52f, 625, 6, 6, false, true, false, true); Item_Add_To_World(kItemShellCasingC, 966, kSetRC02_RC51, -62.86f, -1238.89f, 108437.52f, 625, 6, 6, false, true, false, true);
@ -259,7 +259,7 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) {
AI_Movement_Track_Pause(kActorRunciter); AI_Movement_Track_Pause(kActorRunciter);
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorRunciter, 48, true, false); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorRunciter, 48, true, false);
Actor_Face_Actor(kActorMcCoy, kActorRunciter, true); Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
if (!Game_Flag_Query(kFlagRunciterInterviewA)) { if (!Game_Flag_Query(kFlagRC02RunciterInterview)) {
Actor_Says(kActorMcCoy, 4560, 13); Actor_Says(kActorMcCoy, 4560, 13);
Actor_Face_Actor(kActorRunciter, kActorMcCoy, true); Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
Actor_Says(kActorRunciter, 40, 16); Actor_Says(kActorRunciter, 40, 16);
@ -268,7 +268,7 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) {
Actor_Says(kActorRunciter, 60, 14); Actor_Says(kActorRunciter, 60, 14);
Actor_Says(kActorMcCoy, 4570, 18); Actor_Says(kActorMcCoy, 4570, 18);
Actor_Says(kActorRunciter, 70, 13); Actor_Says(kActorRunciter, 70, 13);
Game_Flag_Set(kFlagRunciterInterviewA); Game_Flag_Set(kFlagRC02RunciterInterview);
Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewA, true, kActorRunciter); Actor_Clue_Acquire(kActorMcCoy, kClueRunciterInterviewA, true, kActorRunciter);
AI_Movement_Track_Unpause(kActorRunciter); AI_Movement_Track_Unpause(kActorRunciter);
return true; return true;
@ -321,7 +321,7 @@ bool SceneScriptRC02::ClickedOnItem(int itemId, bool a2) {
if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemShellCasingA, 24, true, false)) { if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemShellCasingA, 24, true, false)) {
Actor_Face_Item(kActorMcCoy, kItemShellCasingA, true); Actor_Face_Item(kActorMcCoy, kItemShellCasingA, true);
Actor_Clue_Acquire(kActorMcCoy, kClueShellCasings, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueShellCasings, true, -1);
Game_Flag_Set(kFlagShellCasingsTaken); Game_Flag_Set(kFlagRC02ShellCasingsTaken);
Item_Remove_From_World(kItemShellCasingA); Item_Remove_From_World(kItemShellCasingA);
Item_Remove_From_World(kItemShellCasingB); Item_Remove_From_World(kItemShellCasingB);
Item_Remove_From_World(kItemShellCasingC); Item_Remove_From_World(kItemShellCasingC);
@ -384,7 +384,7 @@ void SceneScriptRC02::PlayerWalkedIn() {
if (Actor_Query_Which_Set_In(kActorRunciter) == kSetRC02_RC51 if (Actor_Query_Which_Set_In(kActorRunciter) == kSetRC02_RC51
&& Actor_Query_Goal_Number(kActorRunciter) < kGoalRunciterAtShop && Actor_Query_Goal_Number(kActorRunciter) < kGoalRunciterAtShop
) { ) {
Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterWalkAround); Actor_Set_Goal_Number(kActorRunciter, kGoalRunciterWalkAroundRC02);
} }
if ( Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterAtShop if ( Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterAtShop
&& !Game_Flag_Query(704) && !Game_Flag_Query(704)

View file

@ -147,7 +147,7 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
} }
Game_Flag_Set(kFlagRC03toRC01); Game_Flag_Set(kFlagRC03toRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
Actor_Set_Goal_Number(kActorDektora, 100); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} }
return true; return true;
} }
@ -157,8 +157,8 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
Game_Flag_Set(kFlagRC04Locked); Game_Flag_Set(kFlagRC04Locked);
} }
Game_Flag_Set(kFlagRC03toAR02); Game_Flag_Set(kFlagRC03toAR02);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Set_Enter(kSetAR01_AR02, kSceneAR02); Set_Enter(kSetAR01_AR02, kSceneAR02);
} }
return true; return true;
@ -166,26 +166,26 @@ bool SceneScriptRC03::ClickedOnExit(int exitId) {
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 147.51f, -4.0f, 166.48f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 147.51f, -4.0f, 166.48f, 0, true, false, 0)) {
Game_Flag_Set(kFlagRC03toUG01); Game_Flag_Set(kFlagRC03toUG01);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Set(kFlagMcCoyAtUGxx); Game_Flag_Set(kFlagMcCoyInUnderground);
if (Game_Flag_Query(kFlagRC04McCoyShotBob)) { if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
Game_Flag_Set(kFlagRC04Locked); Game_Flag_Set(kFlagRC04Locked);
} }
Set_Enter(kSetUG01, kSceneUG01); Set_Enter(kSetUG01, kSceneUG01);
Actor_Set_Goal_Number(kActorDektora, 100); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} }
return true; return true;
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -487.0f, 1.0f, 116.0f, 0, true, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -487.0f, 1.0f, 116.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagRC03toHC04); Game_Flag_Set(kFlagRC03toHC04);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Set(kFlagMcCoyAtHCxx); Game_Flag_Set(kFlagMcCoyInHawkersCircle);
if (Game_Flag_Query(kFlagRC04McCoyShotBob)) { if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
Game_Flag_Set(kFlagRC04Locked); Game_Flag_Set(kFlagRC04Locked);
} }
Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC04); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC04);
Actor_Set_Goal_Number(kActorDektora, 100); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStartWalkingAround);
} }
return true; return true;
} }
@ -297,7 +297,7 @@ void SceneScriptRC03::PlayerWalkedIn() {
if (Global_Variable_Query(kVariableChapter) == 1 if (Global_Variable_Query(kVariableChapter) == 1
|| Global_Variable_Query(kVariableChapter) == 2 || Global_Variable_Query(kVariableChapter) == 2
) { ) {
Actor_Set_Goal_Number(kActorDektora, 103); Actor_Set_Goal_Number(kActorDektora, kGoalDektoraStopWalkingAround);
} }
} }

View file

@ -47,13 +47,13 @@ void SceneScriptRC51::SceneLoaded() {
Unclickable_Object("GRL_DSK"); Unclickable_Object("GRL_DSK");
Unclickable_Object("GRL_DSKLEG"); Unclickable_Object("GRL_DSKLEG");
Unclickable_Object("CURTAIN"); Unclickable_Object("CURTAIN");
if (!Game_Flag_Query(kFlagChopstickWrapperTaken)) { if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)) {
Item_Add_To_World(kItemChopstickWrapper, 937, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true); Item_Add_To_World(kItemChopstickWrapper, 937, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true);
} }
if (!Game_Flag_Query(kFlagCandyTaken)) { if (!Game_Flag_Query(kFlagRC51CandyTaken)) {
Item_Add_To_World(kItemCandy, 933, kSetRC02_RC51, 67.28f, -1193.38f, 108011.27f, 0, 6, 6, false, true, false, true); Item_Add_To_World(kItemCandy, 933, kSetRC02_RC51, 67.28f, -1193.38f, 108011.27f, 0, 6, 6, false, true, false, true);
} }
if (!Game_Flag_Query(kFlagToyDogTaken)) { if (!Game_Flag_Query(kFlagRC51ToyDogTaken)) {
Item_Add_To_World(kItemToyDog, 971, kSetRC02_RC51, -69.65f, -1238.89f, 107995.24f, 256, 18, 18, false, true, false, true); Item_Add_To_World(kItemToyDog, 971, kSetRC02_RC51, -69.65f, -1238.89f, 107995.24f, 256, 18, 18, false, true, false, true);
} }
} }
@ -83,7 +83,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
Item_Remove_From_World(kItemChopstickWrapper); Item_Remove_From_World(kItemChopstickWrapper);
Item_Pickup_Spin_Effect(937, 437, 407); Item_Pickup_Spin_Effect(937, 437, 407);
Actor_Voice_Over(2010, kActorVoiceOver); Actor_Voice_Over(2010, kActorVoiceOver);
Game_Flag_Set(kFlagChopstickWrapperTaken); Game_Flag_Set(kFlagRC51ChopstickWrapperTaken);
return true; return true;
} }
} }
@ -96,7 +96,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
Item_Pickup_Spin_Effect(933, 445, 230); Item_Pickup_Spin_Effect(933, 445, 230);
Actor_Says(kActorMcCoy, 8735, 3); Actor_Says(kActorMcCoy, 8735, 3);
Actor_Says(kActorMcCoy, 8529, 3); Actor_Says(kActorMcCoy, 8529, 3);
Game_Flag_Set(kFlagCandyTaken); Game_Flag_Set(kFlagRC51CandyTaken);
return true; return true;
} }
} }
@ -109,7 +109,7 @@ bool SceneScriptRC51::ClickedOnItem(int itemId, bool a2) {
Item_Pickup_Spin_Effect(971, 55, 376); Item_Pickup_Spin_Effect(971, 55, 376);
Actor_Says(kActorMcCoy, 8525, 3); Actor_Says(kActorMcCoy, 8525, 3);
Actor_Says(kActorMcCoy, 8740, 3); Actor_Says(kActorMcCoy, 8740, 3);
Game_Flag_Set(kFlagToyDogTaken); Game_Flag_Set(kFlagRC51ToyDogTaken);
return true; return true;
} }
} }

View file

@ -194,71 +194,71 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) { if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
Actor_Set_Goal_Number(kActorTyrellGuard, 301); Actor_Set_Goal_Number(kActorTyrellGuard, 301);
} else { } else {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtHFxx); Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagTB02ElevatorToTB05); Game_Flag_Reset(kFlagTB02ElevatorToTB05);
switch (Spinner_Interface_Choose_Dest(-1, false)) { switch (Spinner_Interface_Choose_Dest(-1, false)) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
break; break;
} }
} }

View file

@ -24,9 +24,17 @@
namespace BladeRunner { namespace BladeRunner {
enum kTB07Loops {
kTB07LoopMain = 0,
kTB07LoopShadeDrop = 2,
kTB07LoopMainShadeDown = 3
};
void SceneScriptTB07::InitializeScene() { void SceneScriptTB07::InitializeScene() {
Setup_Scene_Information(68.0f, 12.0f, 288.0f, 0); Setup_Scene_Information(68.0f, 12.0f, 288.0f, 0);
Scene_Exit_Add_2D_Exit(0, 383, 445, 639, 479, 2); Scene_Exit_Add_2D_Exit(0, 383, 445, 639, 479, 2);
Ambient_Sounds_Add_Looping_Sound(109, 20, 0, 1); Ambient_Sounds_Add_Looping_Sound(109, 20, 0, 1);
Ambient_Sounds_Add_Sound(363, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(363, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(364, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(364, 2, 55, 14, 14, -100, 100, -101, -101, 0, 0);
@ -37,13 +45,16 @@ void SceneScriptTB07::InitializeScene() {
Ambient_Sounds_Add_Sound(214, 1, 20, 20, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(214, 1, 20, 20, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(215, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(215, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(216, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(216, 1, 15, 20, 25, -100, 100, -101, -101, 0, 0);
if (Global_Variable_Query(kVariableChapter) == 4 && !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)) {
Item_Add_To_World(83, 941, 18, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true); if ( Global_Variable_Query(kVariableChapter) == 4
&& !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
) {
Item_Add_To_World(83, 941, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
} }
if (Game_Flag_Query(661)) { if (Game_Flag_Query(kFlagTB07ShadeDown)) {
Scene_Loop_Set_Default(3); Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
} else { } else {
Scene_Loop_Set_Default(0); Scene_Loop_Set_Default(kTB07LoopMain);
} }
} }
@ -85,71 +96,71 @@ bool SceneScriptTB07::ClickedOnExit(int exitId) {
Game_Flag_Set(kFlagTB07toTB02); Game_Flag_Set(kFlagTB07toTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02); Set_Enter(kSetTB02_TB03, kSceneTB02);
} else { } else {
Game_Flag_Reset(kFlagMcCoyAtCTxx); Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtRCxx); Game_Flag_Reset(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagMcCoyAtMAxx); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagMcCoyAtPSxx); Game_Flag_Reset(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagMcCoyAtBBxx); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagMcCoyAtHFxx); Game_Flag_Reset(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagMcCoyAtTBxx); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagTB02ElevatorToTB05); Game_Flag_Reset(kFlagTB02ElevatorToTB05);
switch (Spinner_Interface_Choose_Dest(-1, false)) { switch (Spinner_Interface_Choose_Dest(-1, false)) {
case kSpinnerDestinationPoliceStation: case kSpinnerDestinationPoliceStation:
Game_Flag_Set(kFlagMcCoyAtPSxx); Game_Flag_Set(kFlagMcCoyInPoliceStation);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtPS01); Game_Flag_Set(kFlagSpinnerAtPS01);
Set_Enter(kSetPS01, kScenePS01); Set_Enter(kSetPS01, kScenePS01);
break; break;
case kSpinnerDestinationMcCoysApartment: case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(kFlagMcCoyAtMAxx); Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtMA01); Game_Flag_Set(kFlagSpinnerAtMA01);
Set_Enter(kSetMA01, kSceneMA01); Set_Enter(kSetMA01, kSceneMA01);
break; break;
case kSpinnerDestinationRuncitersAnimals: case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtRC01);
Set_Enter(kSetRC01, kSceneRC01); Set_Enter(kSetRC01, kSceneRC01);
break; break;
case kSpinnerDestinationChinatown: case kSpinnerDestinationChinatown:
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtCT01);
Set_Enter(kSetCT01_CT12, kSceneCT01); Set_Enter(kSetCT01_CT12, kSceneCT01);
break; break;
case kSpinnerDestinationAnimoidRow: case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(kFlagMcCoyAtARxx); Game_Flag_Set(kFlagMcCoyInAnimoidRow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01); Set_Enter(kSetAR01_AR02, kSceneAR01);
break; break;
case kSpinnerDestinationDNARow: case kSpinnerDestinationDNARow:
Game_Flag_Set(kFlagMcCoyAtDRxx); Game_Flag_Set(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtDR01); Game_Flag_Set(kFlagSpinnerAtDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
break; break;
case kSpinnerDestinationBradburyBuilding: case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(kFlagMcCoyAtBBxx); Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtBB01); Game_Flag_Set(kFlagSpinnerAtBB01);
Set_Enter(kSetBB01, kSceneBB01); Set_Enter(kSetBB01, kSceneBB01);
break; break;
case kSpinnerDestinationNightclubRow: case kSpinnerDestinationNightclubRow:
Game_Flag_Set(kFlagMcCoyAtNRxx); Game_Flag_Set(kFlagMcCoyInNightclubRow);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtNR01); Game_Flag_Set(kFlagSpinnerAtNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
break; break;
case kSpinnerDestinationHysteriaHall: case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(kFlagMcCoyAtHFxx); Game_Flag_Set(kFlagMcCoyInHysteriaHall);
Game_Flag_Reset(kFlagSpinnerAtTB02); Game_Flag_Reset(kFlagSpinnerAtTB02);
Game_Flag_Set(kFlagSpinnerAtHF01); Game_Flag_Set(kFlagSpinnerAtHF01);
Set_Enter(kSetHF01, kSceneHF01); Set_Enter(kSetHF01, kSceneHF01);
break; break;
default: default:
Game_Flag_Set(kFlagMcCoyAtTBxx); Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, false, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
break; break;
} }
@ -175,11 +186,15 @@ void SceneScriptTB07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptTB07::PlayerWalkedIn() { void SceneScriptTB07::PlayerWalkedIn() {
int v0 = Global_Variable_Query(kVariableChapter); int chapter = Global_Variable_Query(kVariableChapter);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
if ((v0 == 2 || v0 == 3) && !Game_Flag_Query(612)) { if ((chapter == 2
|| chapter == 3
)
&& !Game_Flag_Query(kFlagTB07RachaelTalk)
) {
Player_Set_Combat_Mode(false); Player_Set_Combat_Mode(false);
sub_401B0C(); McCoyTalkWithRachaelAndTyrell();
} }
} }
@ -189,17 +204,17 @@ void SceneScriptTB07::PlayerWalkedOut() {
void SceneScriptTB07::DialogueQueueFlushed(int a1) { void SceneScriptTB07::DialogueQueueFlushed(int a1) {
} }
void SceneScriptTB07::sub_401B0C() { void SceneScriptTB07::McCoyTalkWithRachaelAndTyrell() {
Game_Flag_Set(612); Game_Flag_Set(kFlagTB07RachaelTalk);
Delay(1500); Delay(1500);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.98f, 12.0f, 49.79f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 44.98f, 12.0f, 49.79f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 178, true); Actor_Face_Heading(kActorMcCoy, 178, true);
Delay(3000); Delay(3000);
Actor_Put_In_Set(kActorRachael, kSetTB07); Actor_Put_In_Set(kActorRachael, kSetTB07);
Actor_Set_At_XYZ(kActorRachael, -260.15f, 12.0f, -19.16f, 256); Actor_Set_At_XYZ(kActorRachael, -260.15f, 12.0f, -19.16f, 256);
Actor_Change_Animation_Mode(kActorRachael, 0); Actor_Change_Animation_Mode(kActorRachael, 0);
Outtake_Play(kOuttakeRachel, true, -1); Outtake_Play(kOuttakeRachel, true, -1);
Loop_Actor_Walk_To_XYZ(kActorRachael, -146.15f, 12.0f, -5.84f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorRachael, -146.15f, 12.0f, -5.84f, 0, false, false, 0);
Actor_Face_Actor(kActorRachael, kActorMcCoy, true); Actor_Face_Actor(kActorRachael, kActorMcCoy, true);
Actor_Says(kActorRachael, 480, 14); Actor_Says(kActorRachael, 480, 14);
Actor_Face_Actor(kActorMcCoy, kActorRachael, true); Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
@ -209,7 +224,7 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Says(kActorMcCoy, 5320, 15); Actor_Says(kActorMcCoy, 5320, 15);
Actor_Says_With_Pause(kActorMcCoy, 5325, 1.0f, 19); Actor_Says_With_Pause(kActorMcCoy, 5325, 1.0f, 19);
Actor_Start_Speech_Sample(kActorRachael, 500); Actor_Start_Speech_Sample(kActorRachael, 500);
Loop_Actor_Walk_To_XYZ(kActorRachael, -60.15f, 12.0f, 60.84f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorRachael, -60.15f, 12.0f, 60.84f, 0, false, false, 0);
Actor_Face_Actor(kActorRachael, kActorMcCoy, true); Actor_Face_Actor(kActorRachael, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorRachael, true); Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
Actor_Says(kActorMcCoy, 5330, 14); Actor_Says(kActorMcCoy, 5330, 14);
@ -218,7 +233,7 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Says(kActorRachael, 520, 17); Actor_Says(kActorRachael, 520, 17);
Actor_Says(kActorMcCoy, 5340, 3); Actor_Says(kActorMcCoy, 5340, 3);
Actor_Start_Speech_Sample(kActorRachael, 530); Actor_Start_Speech_Sample(kActorRachael, 530);
Loop_Actor_Walk_To_XYZ(kActorRachael, -4.15f, 12.0f, 54.73f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorRachael, -4.15f, 12.0f, 54.73f, 0, false, false, 0);
Actor_Says(kActorRachael, 540, 16); Actor_Says(kActorRachael, 540, 16);
Actor_Says(kActorMcCoy, 5345, 18); Actor_Says(kActorMcCoy, 5345, 18);
Actor_Says(kActorRachael, 550, 13); Actor_Says(kActorRachael, 550, 13);
@ -231,7 +246,7 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Says(kActorMcCoy, 5365, 13); Actor_Says(kActorMcCoy, 5365, 13);
Actor_Says_With_Pause(kActorRachael, 600, 1.0f, 12); Actor_Says_With_Pause(kActorRachael, 600, 1.0f, 12);
Actor_Says(kActorMcCoy, 5370, 3); Actor_Says(kActorMcCoy, 5370, 3);
Loop_Actor_Walk_To_XYZ(kActorRachael, -24.15f, 12.0f, -10.84f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorRachael, -24.15f, 12.0f, -10.84f, 0, false, false, 0);
Actor_Says(kActorRachael, 610, 13); Actor_Says(kActorRachael, 610, 13);
Actor_Face_Actor(kActorMcCoy, kActorRachael, true); Actor_Face_Actor(kActorMcCoy, kActorRachael, true);
Actor_Says(kActorMcCoy, 5375, 18); Actor_Says(kActorMcCoy, 5375, 18);
@ -253,10 +268,10 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Put_In_Set(kActorTyrell, kSetTB07); Actor_Put_In_Set(kActorTyrell, kSetTB07);
Actor_Set_At_XYZ(kActorTyrell, 68.0f, 12.0f, 288.0f, 0); Actor_Set_At_XYZ(kActorTyrell, 68.0f, 12.0f, 288.0f, 0);
Actor_Change_Animation_Mode(kActorTyrell, 0); Actor_Change_Animation_Mode(kActorTyrell, 0);
Scene_Loop_Set_Default(3); Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, false); Scene_Loop_Start_Special(kSceneLoopModeOnce, kTB07LoopShadeDrop, false);
Actor_Start_Speech_Sample(kActorTyrell, 0); Actor_Start_Speech_Sample(kActorTyrell, 0);
Loop_Actor_Walk_To_XYZ(kActorTyrell, 44.0f, 12.0f, 176.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorTyrell, 44.0f, 12.0f, 176.0f, 0, false, false, 0);
Actor_Face_Actor(kActorTyrell, kActorMcCoy, true); Actor_Face_Actor(kActorTyrell, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorTyrell, true); Actor_Face_Actor(kActorMcCoy, kActorTyrell, true);
Actor_Face_Actor(kActorRachael, kActorTyrell, true); Actor_Face_Actor(kActorRachael, kActorTyrell, true);
@ -267,7 +282,7 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Set_Goal_Number(kActorRachael, 200); Actor_Set_Goal_Number(kActorRachael, 200);
Actor_Says(kActorTyrell, 40, 15); Actor_Says(kActorTyrell, 40, 15);
Actor_Start_Speech_Sample(kActorTyrell, 50); Actor_Start_Speech_Sample(kActorTyrell, 50);
Loop_Actor_Walk_To_XYZ(kActorTyrell, -10.0f, 12.0f, 100.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorTyrell, -10.0f, 12.0f, 100.0f, 0, false, false, 0);
Actor_Face_Actor(kActorTyrell, kActorMcCoy, true); Actor_Face_Actor(kActorTyrell, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorTyrell, true); Actor_Face_Actor(kActorMcCoy, kActorTyrell, true);
Actor_Says(kActorMcCoy, 5430, 17); Actor_Says(kActorMcCoy, 5430, 17);
@ -284,7 +299,7 @@ void SceneScriptTB07::sub_401B0C() {
Actor_Says(kActorTyrell, 100, 14); Actor_Says(kActorTyrell, 100, 14);
Actor_Clue_Acquire(kActorMcCoy, kClueRachaelInterview, false, kActorRachael); Actor_Clue_Acquire(kActorMcCoy, kClueRachaelInterview, false, kActorRachael);
Actor_Clue_Acquire(kActorMcCoy, kClueTyrellInterview, false, kActorTyrell); Actor_Clue_Acquire(kActorMcCoy, kClueTyrellInterview, false, kActorTyrell);
Loop_Actor_Walk_To_XYZ(kActorTyrell, -260.15f, 12.0f, -19.16f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorTyrell, -260.15f, 12.0f, -19.16f, 0, false, false, 0);
} }
} // End of namespace BladeRunner } // End of namespace BladeRunner

View file

@ -115,8 +115,8 @@ bool SceneScriptUG01::ClickedOnExit(int exitId) {
Actor_Face_Heading(kActorMcCoy, 768, false); Actor_Face_Heading(kActorMcCoy, 768, false);
Loop_Actor_Travel_Ladder(kActorMcCoy, 12, true, 0); Loop_Actor_Travel_Ladder(kActorMcCoy, 12, true, 0);
Game_Flag_Set(kFlagUG01toRC03); Game_Flag_Set(kFlagUG01toRC03);
Game_Flag_Reset(kFlagMcCoyAtUGxx); Game_Flag_Reset(kFlagMcCoyInUnderground);
Game_Flag_Set(kFlagMcCoyAtRCxx); Game_Flag_Set(kFlagMcCoyInRunciters);
Set_Enter(kSetRC03, kSceneRC03); Set_Enter(kSetRC03, kSceneRC03);
} }
return true; return true;

View file

@ -68,7 +68,7 @@ void SceneScriptUG02::SceneLoaded() {
Footstep_Sounds_Set(0, 0); Footstep_Sounds_Set(0, 0);
Footstep_Sounds_Set(8, 2); Footstep_Sounds_Set(8, 2);
if (!Game_Flag_Query(kFlagRagiationGooglesTaken) if (!Game_Flag_Query(kFlagUG02RagiationGooglesTaken)
&& Game_Flag_Query(kFlagIzoIsReplicant) && Game_Flag_Query(kFlagIzoIsReplicant)
) { ) {
Item_Add_To_World(kItemRadiationGoogles, 963, kSetUG02, -300.37f, 120.16f, -81.31f, 0, 8, 8, false, true, false, true); Item_Add_To_World(kItemRadiationGoogles, 963, kSetUG02, -300.37f, 120.16f, -81.31f, 0, 8, 8, false, true, false, true);
@ -153,7 +153,7 @@ bool SceneScriptUG02::ClickedOnItem(int itemId, bool a2) {
if (itemId == kItemRadiationGoogles) { if (itemId == kItemRadiationGoogles) {
Actor_Face_Item(kActorMcCoy, kItemRadiationGoogles, true); Actor_Face_Item(kActorMcCoy, kItemRadiationGoogles, true);
Actor_Clue_Acquire(kActorMcCoy, kClueRadiationGoggles, true, -1); Actor_Clue_Acquire(kActorMcCoy, kClueRadiationGoggles, true, -1);
Game_Flag_Set(kFlagRagiationGooglesTaken); Game_Flag_Set(kFlagUG02RagiationGooglesTaken);
Item_Remove_From_World(kItemRadiationGoogles); Item_Remove_From_World(kItemRadiationGoogles);
Item_Pickup_Spin_Effect(963, 426, 316); Item_Pickup_Spin_Effect(963, 426, 316);
return true; return true;
@ -192,12 +192,12 @@ bool SceneScriptUG02::ClickedOnExit(int exitId) {
Actor_Face_Heading(kActorMcCoy, 14, false); Actor_Face_Heading(kActorMcCoy, 14, false);
Loop_Actor_Travel_Ladder(kActorMcCoy, 9, true, 0); Loop_Actor_Travel_Ladder(kActorMcCoy, 9, true, 0);
Game_Flag_Set(kFlagUG02toHC03); Game_Flag_Set(kFlagUG02toHC03);
Game_Flag_Reset(kFlagMcCoyAtUGxx); Game_Flag_Reset(kFlagMcCoyInUnderground);
Game_Flag_Set(kFlagMcCoyAtHCxx); Game_Flag_Set(kFlagMcCoyInHawkersCircle);
if (!Game_Flag_Query(kFlagHC03CageOpen)) { if (!Game_Flag_Query(kFlagHC03CageOpen)) {
Game_Flag_Set(kFlagHC03TrapDoorOpen); Game_Flag_Set(kFlagHC03TrapDoorOpen);
Game_Flag_Set(kFlagHC03CageOpen); Game_Flag_Set(kFlagHC03CageOpen);
Item_Remove_From_World(kItemHC03Lock); Item_Remove_From_World(kItemGreenPawnLock);
} }
Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC03); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC03);
return true; return true;

View file

@ -25,39 +25,40 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG03::InitializeScene() { void SceneScriptUG03::InitializeScene() {
if (Game_Flag_Query(335)) { if (Game_Flag_Query(kFlagUG04toUG03)) {
Setup_Scene_Information(-51.0f, 0.03f, 255.0f, 780); Setup_Scene_Information( -51.0f, 0.03f, 255.0f, 780);
Game_Flag_Reset(335); Game_Flag_Reset(kFlagUG04toUG03);
} else if (Game_Flag_Query(337)) { } else if (Game_Flag_Query(kFlagUG10toUG03)) {
Setup_Scene_Information(-139.0f, 0.03f, -13.0f, 540); Setup_Scene_Information( -139.0f, 0.03f, -13.0f, 540);
Game_Flag_Reset(337); Game_Flag_Reset(kFlagUG10toUG03);
} else { } else {
Setup_Scene_Information(-121.88f, 0.03f, 213.35f, 540); Setup_Scene_Information(-121.88f, 0.03f, 213.35f, 540);
} }
Scene_Exit_Add_2D_Exit(0, 46, 137, 131, 296, 0); Scene_Exit_Add_2D_Exit(0, 46, 137, 131, 296, 0);
Scene_Exit_Add_2D_Exit(1, 559, 141, 639, 380, 1); Scene_Exit_Add_2D_Exit(1, 559, 141, 639, 380, 1);
Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1); Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
Ambient_Sounds_Add_Sound(402, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0); Ambient_Sounds_Add_Sound(402, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
Ambient_Sounds_Add_Sound(370, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0); Ambient_Sounds_Add_Sound(370, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
Ambient_Sounds_Add_Sound(396, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0); Ambient_Sounds_Add_Sound(396, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
Ambient_Sounds_Add_Sound(395, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0); Ambient_Sounds_Add_Sound(395, 2, 120, 10, 11, 0, 100, 0, 100, 0, 0);
Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(391, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(391, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(393, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(393, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(226, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(226, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptUG03::SceneLoaded() { void SceneScriptUG03::SceneLoaded() {
@ -75,15 +76,20 @@ bool SceneScriptUG03::MouseClick(int x, int y) {
} }
bool SceneScriptUG03::ClickedOn3DObject(const char *objectName, bool a2) { bool SceneScriptUG03::ClickedOn3DObject(const char *objectName, bool a2) {
if ((Object_Query_Click("CHAIR_BACK", objectName) || Object_Query_Click("CHAIR_SEAT", objectName) || Object_Query_Click("CHAIR_HEADZAPPER", objectName)) && !Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "CHAIR_BACK", 36, true, false)) { if (Object_Query_Click("CHAIR_BACK", objectName)
Actor_Face_Object(kActorMcCoy, "CHAIR_BACK", true); || Object_Query_Click("CHAIR_SEAT", objectName)
if (!Actor_Clue_Query(kActorMcCoy, kClueScaryChair)) { || Object_Query_Click("CHAIR_HEADZAPPER", objectName)
Actor_Voice_Over(2550, kActorVoiceOver); ) {
Actor_Voice_Over(2560, kActorVoiceOver); if (!Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "CHAIR_BACK", 36, true, false)) {
Actor_Voice_Over(2570, kActorVoiceOver); Actor_Face_Object(kActorMcCoy, "CHAIR_BACK", true);
Actor_Voice_Over(2580, kActorVoiceOver); if (!Actor_Clue_Query(kActorMcCoy, kClueScaryChair)) {
Actor_Voice_Over(2590, kActorVoiceOver); Actor_Voice_Over(2550, kActorVoiceOver);
Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, true, -1); Actor_Voice_Over(2560, kActorVoiceOver);
Actor_Voice_Over(2570, kActorVoiceOver);
Actor_Voice_Over(2580, kActorVoiceOver);
Actor_Voice_Over(2590, kActorVoiceOver);
Actor_Clue_Acquire(kActorMcCoy, kClueScaryChair, true, -1);
}
} }
} }
return false; return false;
@ -99,23 +105,24 @@ bool SceneScriptUG03::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptUG03::ClickedOnExit(int exitId) { bool SceneScriptUG03::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -139.0f, 0.0f, -13.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -139.0f, 0.0f, -13.0f, 0, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) < 4) { if (Global_Variable_Query(kVariableChapter) < 4) {
Actor_Says(kActorMcCoy, 8522, 14); Actor_Says(kActorMcCoy, 8522, 14);
} else { } else {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(336); Game_Flag_Set(kFlagUG03toUG10);
Set_Enter(kSetUG10, kSceneUG10); Set_Enter(kSetUG10, kSceneUG10);
} }
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -51.0f, 0.0f, 255.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -51.0f, 0.0f, 255.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(334); Game_Flag_Set(kFlagUG03toUG04);
Set_Enter(kSetUG04, kSceneUG04); Set_Enter(kSetUG04, kSceneUG04);
} }
return true; return true;

View file

@ -25,37 +25,40 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG04::InitializeScene() { void SceneScriptUG04::InitializeScene() {
if (Game_Flag_Query(339)) { if (Game_Flag_Query(kFlagUG05toUG04)) {
Setup_Scene_Information(0.0f, -1.74f, -2400.0f, 496); Setup_Scene_Information( 0.0f, -1.74f, -2400.0f, 496);
Game_Flag_Reset(339); Game_Flag_Reset(kFlagUG05toUG04);
} else if (Game_Flag_Query(341)) { } else if (Game_Flag_Query(kFlagUG06toUG04)) {
Setup_Scene_Information(164.0f, 11.87f, -1013.0f, 83); Setup_Scene_Information( 164.0f, 11.87f, -1013.0f, 83);
} else { } else {
Setup_Scene_Information(-172.0f, 16.29f, -735.0f, 380); Setup_Scene_Information(-172.0f, 16.29f, -735.0f, 380);
Game_Flag_Reset(334); Game_Flag_Reset(kFlagUG03toUG04);
} }
Scene_Exit_Add_2D_Exit(0, 123, 308, 159, 413, 3); Scene_Exit_Add_2D_Exit(0, 123, 308, 159, 413, 3);
if (Global_Variable_Query(kVariableChapter) > 3) { if (Global_Variable_Query(kVariableChapter) > 3) {
Scene_Exit_Add_2D_Exit(1, 256, 333, 290, 373, 0); Scene_Exit_Add_2D_Exit(1, 256, 333, 290, 373, 0);
} }
Scene_Exit_Add_2D_Exit(2, 344, 298, 451, 390, 1); Scene_Exit_Add_2D_Exit(2, 344, 298, 451, 390, 1);
Ambient_Sounds_Add_Looping_Sound(331, 25, 0, 1); Ambient_Sounds_Add_Looping_Sound(331, 25, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(224, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Scene_Loop_Start_Special(0, 0, 0); Scene_Loop_Start_Special(0, 0, 0);
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
} }
@ -86,22 +89,22 @@ bool SceneScriptUG04::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptUG04::ClickedOnExit(int exitId) { bool SceneScriptUG04::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -172.0f, 16.29f, -735.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -172.0f, 16.29f, -735.0f, 0, true, false, 0)) {
Game_Flag_Set(335); Game_Flag_Set(kFlagUG04toUG03);
Set_Enter(kSetUG03, kSceneUG03); Set_Enter(kSetUG03, kSceneUG03);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.74f, -2400.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.74f, -2400.0f, 0, true, false, 0)) {
Game_Flag_Set(338); Game_Flag_Set(kFlagUG04toUG05);
Set_Enter(kSetUG05, kSceneUG05); Set_Enter(kSetUG05, kSceneUG05);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 11.87f, -1013.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 164.0f, 11.87f, -1013.0f, 0, true, false, 0)) {
Game_Flag_Set(340); Game_Flag_Set(kFlagUG04toUG06);
Set_Enter(kSetUG06, kSceneUG06); Set_Enter(kSetUG06, kSceneUG06);
} }
return true; return true;
@ -123,9 +126,9 @@ void SceneScriptUG04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG04::PlayerWalkedIn() { void SceneScriptUG04::PlayerWalkedIn() {
if (Game_Flag_Query(341)) { if (Game_Flag_Query(kFlagUG06toUG04)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 60.0f, -1.74f, -976.0f, 6, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 60.0f, -1.74f, -976.0f, 6, false, false, 0);
Game_Flag_Reset(341); Game_Flag_Reset(kFlagUG06toUG04);
} }
} }

View file

@ -25,21 +25,25 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG05::InitializeScene() { void SceneScriptUG05::InitializeScene() {
if (Game_Flag_Query(360)) { if (Game_Flag_Query(kFlagHF07toUG06)) {
if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { if ( Game_Flag_Query(663)
&& !Game_Flag_Query(368)
) {
Setup_Scene_Information(-356.35f, 132.77f, -1092.36f, 389); Setup_Scene_Information(-356.35f, 132.77f, -1092.36f, 389);
} else { } else {
Setup_Scene_Information(-180.0f, 37.28f, -1124.0f, 296); Setup_Scene_Information(-180.0f, 37.28f, -1124.0f, 296);
} }
} else { } else {
Setup_Scene_Information(0.0f, -1.37f, 0.0f, 0); Setup_Scene_Information(0.0f, -1.37f, 0.0f, 0);
Game_Flag_Reset(338); Game_Flag_Reset(kFlagUG04toUG05);
} }
Scene_Exit_Add_2D_Exit(0, 215, 240, 254, 331, 3); Scene_Exit_Add_2D_Exit(0, 215, 240, 254, 331, 3);
if (!Game_Flag_Query(663)) { if (!Game_Flag_Query(663)) {
Scene_Exit_Add_2D_Exit(1, 303, 422, 639, 479, 2); Scene_Exit_Add_2D_Exit(1, 303, 422, 639, 479, 2);
} }
if (!Game_Flag_Query(663) || Game_Flag_Query(368)) { if (!Game_Flag_Query(663)
|| Game_Flag_Query(368)
) {
Scene_Exit_Add_2D_Exit(2, 352, 256, 393, 344, 0); Scene_Exit_Add_2D_Exit(2, 352, 256, 393, 344, 0);
} }
Ambient_Sounds_Add_Looping_Sound(105, 28, 0, 1); Ambient_Sounds_Add_Looping_Sound(105, 28, 0, 1);
@ -115,19 +119,19 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, 0, false, 0);
Game_Flag_Set(361); Game_Flag_Set(kFlagUG06toHF07);
Set_Enter(kSetHF07, kSceneHF07); Set_Enter(kSetHF07, kSceneHF07);
} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.72f, 3.03f, -1118.17f, 0, 1, false, 0)) { } else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.72f, 3.03f, -1118.17f, 0, 1, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 760, false); Actor_Face_Heading(kActorMcCoy, 760, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, kAnimationModeIdle);
Game_Flag_Set(361); Game_Flag_Set(kFlagUG06toHF07);
Set_Enter(kSetHF07, kSceneHF07); Set_Enter(kSetHF07, kSceneHF07);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 4.0f, -11.67f, -4.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 4.0f, -11.67f, -4.0f, 0, 1, false, 0)) {
Game_Flag_Set(339); Game_Flag_Set(kFlagUG05toUG04);
Set_Enter(kSetUG04, kSceneUG04); Set_Enter(kSetUG04, kSceneUG04);
} }
return true; return true;
@ -200,7 +204,7 @@ void SceneScriptUG05::PlayerWalkedIn() {
} }
} }
} }
if (Game_Flag_Query(360)) { if (Game_Flag_Query(kFlagHF07toUG06)) {
if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, 1, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, 1, false, 0);
} else { } else {
@ -210,7 +214,7 @@ void SceneScriptUG05::PlayerWalkedIn() {
if (Game_Flag_Query(663)) { if (Game_Flag_Query(663)) {
Game_Flag_Query(368); // bug in game? Game_Flag_Query(368); // bug in game?
} }
Game_Flag_Reset(360); Game_Flag_Reset(kFlagHF07toUG06);
} }
void SceneScriptUG05::PlayerWalkedOut() { void SceneScriptUG05::PlayerWalkedOut() {

View file

@ -36,33 +36,35 @@ void SceneScriptUG06::InitializeScene() {
} }
Game_Flag_Reset(680); Game_Flag_Reset(680);
} }
if (Game_Flag_Query(340)) {
Setup_Scene_Information(23.0f, 0.0f, 321.0f, 0); if (Game_Flag_Query(kFlagUG04toUG06)) {
} else if (Game_Flag_Query(343)) { Setup_Scene_Information( 23.0f, 0.0f, 321.0f, 0);
Setup_Scene_Information(66.0f, 153.0f, -301.4f, 512); } else if (Game_Flag_Query(kFlagNR01toUG06)) {
Setup_Scene_Information( 66.0f, 153.0f, -301.4f, 512);
} else { } else {
Setup_Scene_Information(-165.0f, 1.0f, 89.0f, 990); Setup_Scene_Information(-165.0f, 1.0f, 89.0f, 990);
} }
Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
Scene_Exit_Add_2D_Exit(1, 294, 68, 544, 236, 0); Scene_Exit_Add_2D_Exit(1, 294, 68, 544, 236, 0);
Ambient_Sounds_Add_Looping_Sound(288, 18, 0, 1); Ambient_Sounds_Add_Looping_Sound(288, 18, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(234, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(235, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(392, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(394, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(225, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(227, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(228, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(229, 2, 190, 12, 16, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptUG06::SceneLoaded() { void SceneScriptUG06::SceneLoaded() {
@ -91,22 +93,23 @@ bool SceneScriptUG06::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptUG06::ClickedOnExit(int exitId) { bool SceneScriptUG06::ClickedOnExit(int exitId) {
if (exitId == 0) { if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 321.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 321.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(341); Game_Flag_Set(kFlagUG06toUG04);
Set_Enter(kSetUG04, kSceneUG04); Set_Enter(kSetUG04, kSceneUG04);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -90.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -90.0f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 1, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 153.0f, -446.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 153.0f, -446.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(342); Game_Flag_Set(kFlagUG06toNR01);
Set_Enter(kSetNR01, kSceneNR01); Set_Enter(kSetNR01, kSceneNR01);
} }
return true; return true;
@ -125,16 +128,18 @@ void SceneScriptUG06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG06::PlayerWalkedIn() { void SceneScriptUG06::PlayerWalkedIn() {
if (Game_Flag_Query(340)) { if (Game_Flag_Query(kFlagUG04toUG06)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 273.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 273.0f, 0, false, false, 0);
Game_Flag_Reset(340); Game_Flag_Reset(kFlagUG04toUG06);
} }
if (Game_Flag_Query(343)) { if (Game_Flag_Query(kFlagNR01toUG06)) {
Loop_Actor_Travel_Stairs(kActorMcCoy, 17, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 17, false, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -36.91f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -36.91f, 0, false, false, 0);
Game_Flag_Reset(343); Game_Flag_Reset(kFlagNR01toUG06);
} }
if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(524)) { if ( Global_Variable_Query(kVariableChapter) == 4
&& !Game_Flag_Query(524)
) {
Player_Loses_Control(); Player_Loses_Control();
Actor_Voice_Over(2620, kActorVoiceOver); Actor_Voice_Over(2620, kActorVoiceOver);
Actor_Voice_Over(2630, kActorVoiceOver); Actor_Voice_Over(2630, kActorVoiceOver);

View file

@ -145,8 +145,8 @@ void SceneScriptUG09::PlayerWalkedOut() {
} }
if (Game_Flag_Query(kFlagUG09toCT12)) { if (Game_Flag_Query(kFlagUG09toCT12)) {
Game_Flag_Set(kFlagMcCoyAtCTxx); Game_Flag_Set(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyAtUGxx); Game_Flag_Reset(kFlagMcCoyInUnderground);
} }
} }

View file

@ -25,15 +25,15 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG10::InitializeScene() { void SceneScriptUG10::InitializeScene() {
if (Game_Flag_Query(336)) { if (Game_Flag_Query(kFlagUG03toUG10)) {
Setup_Scene_Information(-92.0f, 81.33f, -652.0f, 520); Setup_Scene_Information( -92.0f, 81.33f, -652.0f, 520);
} else if (Game_Flag_Query(423)) { } else if (Game_Flag_Query(423)) {
Game_Flag_Reset(423); Game_Flag_Reset(423);
Setup_Scene_Information(-385.12f, 1.15f, 57.44f, 400); Setup_Scene_Information(-385.12f, 1.15f, 57.44f, 400);
} else if (Game_Flag_Query(346)) { } else if (Game_Flag_Query(kFlagUG14toUG10)) {
Setup_Scene_Information(2.5f, 1.15f, 405.0f, 200); Setup_Scene_Information( 2.5f, 1.15f, 405.0f, 200);
} else { } else {
Setup_Scene_Information(235.0f, 1.15f, 29.0f, 0); Setup_Scene_Information( 235.0f, 1.15f, 29.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 589, 300, 639, 479, 1); Scene_Exit_Add_2D_Exit(0, 589, 300, 639, 479, 1);
@ -78,7 +78,7 @@ void SceneScriptUG10::SceneLoaded() {
Obstacle_Object("SLUICEGATE_LEVER", true); Obstacle_Object("SLUICEGATE_LEVER", true);
if (Global_Variable_Query(kVariableChapter) == 4 if (Global_Variable_Query(kVariableChapter) == 4
&& !Game_Flag_Query(kFlagUG10GateOpen) && !Game_Flag_Query(kFlagUG10GateOpen)
&& Game_Flag_Query(kFlagDumpsterEmptied) && Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
&& !Game_Flag_Query(kFlagUG03DeadHomeless) && !Game_Flag_Query(kFlagUG03DeadHomeless)
) { ) {
Scene_Loop_Set_Default(1); Scene_Loop_Set_Default(1);
@ -114,7 +114,7 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
) )
|| Game_Flag_Query(kFlagUG10GateOpen) || Game_Flag_Query(kFlagUG10GateOpen)
) { ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 235.0f, 1.15f, 29.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 235.0f, 1.15f, 29.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagUG10toUG01); Game_Flag_Set(kFlagUG10toUG01);
Set_Enter(kSetUG01, kSceneUG01); Set_Enter(kSetUG01, kSceneUG01);
return true; return true;
@ -128,11 +128,11 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
) )
|| Game_Flag_Query(kFlagUG10GateOpen) || Game_Flag_Query(kFlagUG10GateOpen)
) { ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, kAnimationModeIdle);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, 81.83f, -652.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, 81.83f, -652.0f, 0, false, false, 0);
Game_Flag_Set(337); Game_Flag_Set(kFlagUG10toUG03);
Set_Enter(kSetUG03, kSceneUG03); Set_Enter(kSetUG03, kSceneUG03);
return true; return true;
} }
@ -145,7 +145,7 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
) )
|| Game_Flag_Query(kFlagUG10GateOpen) || Game_Flag_Query(kFlagUG10GateOpen)
) { ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -385.0f, 1.15f, 57.44f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -385.0f, 1.15f, 57.44f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 1001, false); Actor_Face_Heading(kActorMcCoy, 1001, false);
Loop_Actor_Travel_Ladder(kActorMcCoy, 1, 1, 0); Loop_Actor_Travel_Ladder(kActorMcCoy, 1, 1, 0);
Game_Flag_Set(424); Game_Flag_Set(424);
@ -161,8 +161,8 @@ bool SceneScriptUG10::ClickedOnExit(int exitId) {
) )
|| Game_Flag_Query(kFlagUG10GateOpen) || Game_Flag_Query(kFlagUG10GateOpen)
) { ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 405.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 405.0f, 0, true, false, 0)) {
Game_Flag_Set(347); Game_Flag_Set(kFlagUG10toUG14);
Set_Enter(kSetUG14, kSceneUG14); Set_Enter(kSetUG14, kSceneUG14);
return true; return true;
} }
@ -228,14 +228,14 @@ void SceneScriptUG10::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG10::PlayerWalkedIn() { void SceneScriptUG10::PlayerWalkedIn() {
if (Game_Flag_Query(346)) { if (Game_Flag_Query(kFlagUG14toUG10)) {
Game_Flag_Reset(346); Game_Flag_Reset(kFlagUG14toUG10);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 377.0f, 0, false, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 377.0f, 0, false, false, 0);
} else if (Game_Flag_Query(kFlagUG01toUG10)) { } else if (Game_Flag_Query(kFlagUG01toUG10)) {
Game_Flag_Reset(kFlagUG01toUG10); Game_Flag_Reset(kFlagUG01toUG10);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 207.0f, 1.15f, 29.0f, 0, false, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 207.0f, 1.15f, 29.0f, 0, false, false, 0);
} else if (Game_Flag_Query(336)) { } else if (Game_Flag_Query(kFlagUG03toUG10)) {
Game_Flag_Reset(336); Game_Flag_Reset(kFlagUG03toUG10);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 81.33f, -518.8f, 0, false, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 81.33f, -518.8f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 506, false); Actor_Face_Heading(kActorMcCoy, 506, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, kAnimationModeIdle);

View file

@ -29,27 +29,30 @@ void SceneScriptUG12::InitializeScene() {
Setup_Scene_Information(207.0f, -126.21f, -364.0f, 561); Setup_Scene_Information(207.0f, -126.21f, -364.0f, 561);
Game_Flag_Reset(411); Game_Flag_Reset(411);
} else { } else {
Setup_Scene_Information(375.0f, -126.21f, 180.0f, 730); Setup_Scene_Information(375.0f, -126.21f, 180.0f, 730);
Game_Flag_Reset(345); Game_Flag_Reset(kFlagUG14toUG12);
} }
Scene_Exit_Add_2D_Exit(0, 538, 222, 615, 346, 1); Scene_Exit_Add_2D_Exit(0, 538, 222, 615, 346, 1);
if (Game_Flag_Query(373)) { if (Game_Flag_Query(373)) {
Scene_Exit_Add_2D_Exit(1, 334, 176, 426, 266, 0); Scene_Exit_Add_2D_Exit(1, 334, 176, 426, 266, 0);
} }
Ambient_Sounds_Add_Looping_Sound(105, 47, 60, 1); Ambient_Sounds_Add_Looping_Sound(105, 47, 60, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(368, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(370, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
if (Game_Flag_Query(373)) { if (Game_Flag_Query(373)) {
Scene_Loop_Set_Default(2); Scene_Loop_Set_Default(2);
} else { } else {
@ -83,7 +86,7 @@ bool SceneScriptUG12::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 375.0f, -126.21f, 180.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 375.0f, -126.21f, 180.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(344); Game_Flag_Set(kFlagUG12toUG14);
Set_Enter(kSetUG14, kSceneUG14); Set_Enter(kSetUG14, kSceneUG14);
} }
return true; return true;

View file

@ -27,17 +27,19 @@ namespace BladeRunner {
void SceneScriptUG13::InitializeScene() { void SceneScriptUG13::InitializeScene() {
if (Game_Flag_Query(435)) { if (Game_Flag_Query(435)) {
Setup_Scene_Information(-477.0f, 141.9f, -870.0f, 378); Setup_Scene_Information(-477.0f, 141.9f, -870.0f, 378);
} else if (Game_Flag_Query(350)) { } else if (Game_Flag_Query(kFlagUG15toUG13)) {
Setup_Scene_Information(39.0f, 52.94f, -528.0f, 600); Setup_Scene_Information( 39.0f, 52.94f, -528.0f, 600);
} else { } else {
Setup_Scene_Information(-22.0f, 54.63f, -883.0f, 578); Setup_Scene_Information( -22.0f, 54.63f, -883.0f, 578);
Actor_Set_Invisible(kActorMcCoy, false); Actor_Set_Invisible(kActorMcCoy, false);
} }
if (!Game_Flag_Query(431)) { if (!Game_Flag_Query(431)) {
Scene_Exit_Add_2D_Exit(0, 394, 205, 464, 281, 0); Scene_Exit_Add_2D_Exit(0, 394, 205, 464, 281, 0);
} }
Scene_Exit_Add_2D_Exit(1, 560, 90, 639, 368, 1); Scene_Exit_Add_2D_Exit(1, 560, 90, 639, 368, 1);
Scene_Exit_Add_2D_Exit(2, 108, 85, 175, 210, 3); Scene_Exit_Add_2D_Exit(2, 108, 85, 175, 210, 3);
Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1); Ambient_Sounds_Add_Looping_Sound(331, 15, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
@ -46,7 +48,10 @@ void SceneScriptUG13::InitializeScene() {
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(kFlagMcCoyKilledHomeless)) {
if ( Global_Variable_Query(kVariableChapter) == 4
&& !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
) {
Actor_Set_Goal_Number(kActorTransient, 390); Actor_Set_Goal_Number(kActorTransient, 390);
} }
if (Actor_Query_Goal_Number(kActorTransient) == 599) { if (Actor_Query_Goal_Number(kActorTransient) == 599) {
@ -74,7 +79,7 @@ void SceneScriptUG13::SceneLoaded() {
Unclickable_Object("BASKET"); Unclickable_Object("BASKET");
if ( Global_Variable_Query(kVariableChapter) >= 3 if ( Global_Variable_Query(kVariableChapter) >= 3
&& !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm) && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm)
&& Game_Flag_Query(kFlagMcCoyKilledHomeless) && Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)
&& (Actor_Clue_Query(kActorMcCoy, kClueShippingForm) && (Actor_Clue_Query(kActorMcCoy, kClueShippingForm)
|| Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm) || Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm)
) )
@ -175,7 +180,7 @@ bool SceneScriptUG13::ClickedOnExit(int exitId) {
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 39.0f, 52.94f, -528.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 39.0f, 52.94f, -528.0f, 0, 1, false, 0)) {
Game_Flag_Set(351); Game_Flag_Set(kFlagUG13toUG15);
Set_Enter(kSetUG15, kSceneUG15); Set_Enter(kSetUG15, kSceneUG15);
} }
return true; return true;
@ -238,15 +243,15 @@ void SceneScriptUG13::PlayerWalkedIn() {
Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 11, 0, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
Game_Flag_Reset(435); Game_Flag_Reset(435);
} else if (Game_Flag_Query(350)) { } else if (Game_Flag_Query(kFlagUG15toUG13)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, 44.0f, -528.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, 44.0f, -528.0f, 0, 0, false, 0);
Game_Flag_Reset(350); Game_Flag_Reset(kFlagUG15toUG13);
} else { } else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -60.0f, 55.24f, -816.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -60.0f, 55.24f, -816.0f, 0, 0, false, 0);
Game_Flag_Reset(429); Game_Flag_Reset(429);
Player_Gains_Control(); Player_Gains_Control();
} }
if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(kFlagMcCoyKilledHomeless)) { if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(kFlagCT04HomelessKilledByMcCoy)) {
if (Game_Flag_Query(553)) { if (Game_Flag_Query(553)) {
if (Random_Query(1, 3) == 1) { if (Random_Query(1, 3) == 1) {
Actor_Set_Goal_Number(kActorTransient, 395); Actor_Set_Goal_Number(kActorTransient, 395);

View file

@ -25,32 +25,34 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG14::InitializeScene() { void SceneScriptUG14::InitializeScene() {
if (Game_Flag_Query(349)) { if (Game_Flag_Query(kFlagUG19toUG14)) {
Setup_Scene_Information(-278.0f, 12.97f, -152.0f, 200); Setup_Scene_Information(-278.0f, 12.97f, -152.0f, 200);
} else if (Game_Flag_Query(344)) { } else if (Game_Flag_Query(kFlagUG12toUG14)) {
Setup_Scene_Information(-50.0f, 129.0f, -814.0f, 533); Setup_Scene_Information( -50.0f, 129.0f, -814.0f, 533);
} else { } else {
Setup_Scene_Information(233.0f, 186.04f, -32.0f, 865); Setup_Scene_Information( 233.0f, 186.04f, -32.0f, 865);
} }
Scene_Exit_Add_2D_Exit(0, 0, 232, 45, 427, 3);
Scene_Exit_Add_2D_Exit(1, 175, 44, 228, 115, 0); Scene_Exit_Add_2D_Exit(0, 0, 232, 45, 427, 3);
Scene_Exit_Add_2D_Exit(2, 537, 0, 639, 190, 1); Scene_Exit_Add_2D_Exit(1, 175, 44, 228, 115, 0);
Scene_Exit_Add_2D_Exit(2, 537, 0, 639, 190, 1);
Ambient_Sounds_Add_Looping_Sound(331, 28, 0, 1); Ambient_Sounds_Add_Looping_Sound(331, 28, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(291, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(292, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(293, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(294, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0); Ambient_Sounds_Add_Sound(295, 2, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(303, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptUG14::SceneLoaded() { void SceneScriptUG14::SceneLoaded() {
@ -84,36 +86,36 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
} }
if (!exitId) { if (!exitId) {
if (v1) { if (v1) {
if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, 0, 1, false, 0)) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, 0, true, false, 0)) {
return false; return false;
} }
Actor_Face_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, true); Actor_Face_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, true);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, false, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(348); Game_Flag_Set(kFlagUG14toUG19);
Set_Enter(kSetUG19, kSceneUG19); Set_Enter(kSetUG19, kSceneUG19);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!v1) { if (!v1) {
if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, 1, false, 0)) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, 0)) {
return false; return false;
} }
Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true); Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(345); Game_Flag_Set(kFlagUG14toUG12);
Set_Enter(kSetCT08_CT51_UG12, kSceneUG12); Set_Enter(kSetCT08_CT51_UG12, kSceneUG12);
} }
return true; return true;
@ -121,22 +123,22 @@ bool SceneScriptUG14::ClickedOnExit(int exitId) {
if (exitId == 2) { if (exitId == 2) {
if (!v1) { if (!v1) {
if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, 1, false, 0)) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, 0)) {
return false; return false;
} }
Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true); Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, true, false, 0)) {
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 6, true, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(346); Game_Flag_Set(kFlagUG14toUG10);
Set_Enter(kSetUG10, kSceneUG10); Set_Enter(kSetUG10, kSceneUG10);
} }
return true; return true;
@ -155,23 +157,26 @@ void SceneScriptUG14::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG14::PlayerWalkedIn() { void SceneScriptUG14::PlayerWalkedIn() {
if (Game_Flag_Query(349)) { if (Game_Flag_Query(kFlagUG19toUG14)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -250.0f, 12.97f, -152.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -250.0f, 12.97f, -152.0f, 0, false, false, 0);
Game_Flag_Reset(349); Game_Flag_Reset(kFlagUG19toUG14);
} else if (Game_Flag_Query(344)) { } else if (Game_Flag_Query(kFlagUG12toUG14)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -604.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -604.0f, 0, false, false, 0);
Game_Flag_Reset(344); Game_Flag_Reset(kFlagUG12toUG14);
} else { } else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 186.04f, -44.01f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 186.04f, -44.01f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 10, false); Actor_Face_Heading(kActorMcCoy, 10, false);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 0, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 6, false, kAnimationModeIdle);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -148.01f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -148.01f, 0, false, false, 0);
Actor_Face_Heading(kActorMcCoy, 807, false); Actor_Face_Heading(kActorMcCoy, 807, false);
Game_Flag_Reset(347); Game_Flag_Reset(kFlagUG10toUG14);
} }
if (Global_Variable_Query(kVariableChapter) == 4 && Game_Flag_Query(kFlagDumpsterEmptied) && !Game_Flag_Query(694)) { if ( Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(kFlagCT04HomelessBodyThrownAway)
&& !Game_Flag_Query(kFlagUG14DeadHomeless)
) {
Overlay_Play("UG14OVER", 0, 0, 1, 0); Overlay_Play("UG14OVER", 0, 0, 1, 0);
Delay(1000); Delay(1000);
Actor_Face_Heading(kActorMcCoy, 609, false); Actor_Face_Heading(kActorMcCoy, 609, false);
@ -179,7 +184,7 @@ void SceneScriptUG14::PlayerWalkedIn() {
Actor_Voice_Over(270, kActorVoiceOver); Actor_Voice_Over(270, kActorVoiceOver);
Delay(2150); Delay(2150);
Actor_Voice_Over(300, kActorVoiceOver); Actor_Voice_Over(300, kActorVoiceOver);
Game_Flag_Set(694); Game_Flag_Set(kFlagUG14DeadHomeless);
} }
//return false; //return false;
} }

View file

@ -25,57 +25,62 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG15::InitializeScene() { void SceneScriptUG15::InitializeScene() {
if (Game_Flag_Query(353)) { if (Game_Flag_Query(kFlagUG17toUG15)) {
Setup_Scene_Information(-25.0f, 26.31f, -434.0f, 520); Setup_Scene_Information( -25.0f, 26.31f, -434.0f, 520);
} else if (Game_Flag_Query(kFlagUG16toUG15)) { } else if (Game_Flag_Query(kFlagUG16toUG15a)) {
Setup_Scene_Information(-17.0f, 26.31f, -346.0f, 711); Setup_Scene_Information( -17.0f, 26.31f, -346.0f, 711);
} else if (Game_Flag_Query(355)) { } else if (Game_Flag_Query(kFlagUG16toUG15b)) {
Setup_Scene_Information(-18.0f, 48.07f, 62.0f, 650); Setup_Scene_Information( -18.0f, 48.07f, 62.0f, 650);
} else { } else {
Setup_Scene_Information(-238.0f, 48.07f, 222.0f, 180); Setup_Scene_Information(-238.0f, 48.07f, 222.0f, 180);
if (Game_Flag_Query(676) && Random_Query(1, 10) == 10) { if (Game_Flag_Query(676)
&& Random_Query(1, 10) == 10
) {
Game_Flag_Reset(676); Game_Flag_Reset(676);
} }
} }
if (Game_Flag_Query(682)) { if (Game_Flag_Query(682)) {
Scene_Loop_Set_Default(3); Scene_Loop_Set_Default(3);
} }
if (Game_Flag_Query(353) || Game_Flag_Query(kFlagUG16toUG15)) {
Scene_Exit_Add_2D_Exit(0, 260, 0, 307, 298, 0); if (Game_Flag_Query(kFlagUG17toUG15)
|| Game_Flag_Query(kFlagUG16toUG15a)
) {
Scene_Exit_Add_2D_Exit(0, 260, 0, 307, 298, 0);
Scene_Exit_Add_2D_Exit(1, 301, 147, 337, 304, 1); Scene_Exit_Add_2D_Exit(1, 301, 147, 337, 304, 1);
Game_Flag_Reset(353); Game_Flag_Reset(kFlagUG17toUG15);
Game_Flag_Reset(kFlagUG16toUG15); Game_Flag_Reset(kFlagUG16toUG15a);
} else { } else {
Scene_Exit_Add_2D_Exit(2, 406, 128, 480, 316, 1); Scene_Exit_Add_2D_Exit(2, 406, 128, 480, 316, 1);
Scene_Exit_Add_2D_Exit(3, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(3, 0, 0, 30, 479, 3);
} }
Ambient_Sounds_Add_Looping_Sound(105, 71, 0, 1);
Ambient_Sounds_Add_Looping_Sound(95, 45, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Looping_Sound(105, 71, 0, 1);
Ambient_Sounds_Add_Looping_Sound( 95, 45, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(402, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptUG15::SceneLoaded() { void SceneScriptUG15::SceneLoaded() {
@ -107,20 +112,22 @@ bool SceneScriptUG15::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -25.0f, 26.31f, -434.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -25.0f, 26.31f, -434.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(352); Game_Flag_Set(kFlagUG15toUG17);
Set_Enter(kSetUG17, kSceneUG17); Set_Enter(kSetUG17, kSceneUG17);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -17.0f, 26.31f, -346.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -17.0f, 26.31f, -346.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagUG15toUG16); Game_Flag_Set(kFlagUG15toUG16a);
Set_Enter(kSetUG16, kSceneUG16); Set_Enter(kSetUG16, kSceneUG16);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
int v1 = Actor_Query_Goal_Number(kActorFreeSlotA); int v1 = Actor_Query_Goal_Number(kActorFreeSlotA);
if (v1 >= 300 && v1 <= 303) { if (v1 >= 300 && v1 <= 303) {
@ -128,22 +135,22 @@ bool SceneScriptUG15::ClickedOnExit(int exitId) {
} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 18.0f, 52.28f, 46.0f, 0, 1, false, 0)) { } else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 18.0f, 52.28f, 46.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(354); Game_Flag_Set(kFlagUG15toUG16b);
Set_Enter(kSetUG16, kSceneUG16); Set_Enter(kSetUG16, kSceneUG16);
} }
return true; return true;
} }
if (exitId == 3) { if (exitId == 3) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -238.0f, 52.46f, 222.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -238.0f, 52.46f, 222.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(350); Game_Flag_Set(kFlagUG15toUG13);
Set_Enter(kSetUG13, kSceneUG13); Set_Enter(kSetUG13, kSceneUG13);
} }
return true; return true;
} }
return false; return false;
} }
bool SceneScriptUG15::ClickedOn2DRegion(int region) { bool SceneScriptUG15::ClickedOn2DRegion(int region) {
@ -154,7 +161,9 @@ void SceneScriptUG15::SceneFrameAdvanced(int frame) {
if (Actor_Query_Goal_Number(kActorFreeSlotA) == 300) { if (Actor_Query_Goal_Number(kActorFreeSlotA) == 300) {
float x, y, z; float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
if (-160.0f <= x && z < 220.0f) { if (-160.0f <= x
&& z < 220.0f
) {
Actor_Set_Goal_Number(kActorFreeSlotA, 301); Actor_Set_Goal_Number(kActorFreeSlotA, 301);
} }
} }
@ -164,14 +173,19 @@ void SceneScriptUG15::SceneFrameAdvanced(int frame) {
if (Game_Flag_Query(677) && !Game_Flag_Query(682)) { if (Game_Flag_Query(677) && !Game_Flag_Query(682)) {
float x, y, z; float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
if (-180.0f <= x && (z < 220.0f && !Game_Flag_Query(724))) { if (-180.0f <= x
&& z < 220.0f
&& !Game_Flag_Query(724)
) {
Game_Flag_Set(724); Game_Flag_Set(724);
Game_Flag_Set(682); Game_Flag_Set(682);
Scene_Loop_Set_Default(3); Scene_Loop_Set_Default(3);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
Actor_Set_Goal_Number(kActorMcCoy, 390); Actor_Set_Goal_Number(kActorMcCoy, 390);
Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z); Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z);
if (-200.0f < x && -62.0f > x) { if (-200.0f < x
&& -62.0f > x
) {
Actor_Set_Goal_Number(kActorFreeSlotA, 309); Actor_Set_Goal_Number(kActorFreeSlotA, 309);
} }
} }
@ -183,11 +197,11 @@ void SceneScriptUG15::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG15::PlayerWalkedIn() { void SceneScriptUG15::PlayerWalkedIn() {
if (Game_Flag_Query(355)) { if (Game_Flag_Query(kFlagUG16toUG15b)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -62.0f, 48.07f, 102.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -62.0f, 48.07f, 102.0f, 0, false, false, 0);
Game_Flag_Reset(355); Game_Flag_Reset(kFlagUG16toUG15b);
} else if (Game_Flag_Query(351)) { } else if (Game_Flag_Query(kFlagUG13toUG15)) {
Game_Flag_Reset(351); Game_Flag_Reset(kFlagUG13toUG15);
if (!Game_Flag_Query(676)) { if (!Game_Flag_Query(676)) {
Actor_Set_Goal_Number(kActorFreeSlotA, 310); Actor_Set_Goal_Number(kActorFreeSlotA, 310);
} }

View file

@ -28,19 +28,22 @@ void SceneScriptUG16::InitializeScene() {
if (Game_Flag_Query(552)) { if (Game_Flag_Query(552)) {
Setup_Scene_Information(-270.76f, -34.88f, -504.02f, 404); Setup_Scene_Information(-270.76f, -34.88f, -504.02f, 404);
Game_Flag_Reset(552); Game_Flag_Reset(552);
} else if (Game_Flag_Query(kFlagUG15toUG16)) { } else if (Game_Flag_Query(kFlagUG15toUG16a)) {
Setup_Scene_Information(-322.0f, -34.0f, -404.0f, 345); Setup_Scene_Information(-322.0f, -34.0f, -404.0f, 345);
Game_Flag_Reset(kFlagUG15toUG16); Game_Flag_Reset(kFlagUG15toUG16a);
} else { } else {
Setup_Scene_Information(-318.0f, -34.0f, -216.0f, 340); Setup_Scene_Information(-318.0f, -34.0f, -216.0f, 340);
Game_Flag_Reset(354); Game_Flag_Reset(kFlagUG15toUG16b);
} }
Scene_Exit_Add_2D_Exit(0, 242, 169, 282, 262, 3); Scene_Exit_Add_2D_Exit(0, 242, 169, 282, 262, 3);
Scene_Exit_Add_2D_Exit(1, 375, 166, 407, 251, 3); Scene_Exit_Add_2D_Exit(1, 375, 166, 407, 251, 3);
Scene_Exit_Add_2D_Exit(2, 461, 148, 523, 248, 0); Scene_Exit_Add_2D_Exit(2, 461, 148, 523, 248, 0);
Ambient_Sounds_Add_Looping_Sound(516, 33, 81, 0); Ambient_Sounds_Add_Looping_Sound(516, 33, 81, 0);
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1); Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
if (Game_Flag_Query(568)) { if (Game_Flag_Query(568)) {
Scene_Loop_Set_Default(5); Scene_Loop_Set_Default(5);
} else { } else {
@ -132,24 +135,26 @@ bool SceneScriptUG16::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -216.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -216.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(355); Game_Flag_Set(kFlagUG16toUG15b);
Set_Enter(kSetUG15, kSceneUG15); Set_Enter(kSetUG15, kSceneUG15);
} }
return true; return true;
} }
if (exitId == 1) { if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -404.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -322.0f, -34.0f, -404.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagUG16toUG15); Game_Flag_Set(kFlagUG16toUG15a);
Set_Enter(kSetUG15, kSceneUG15); Set_Enter(kSetUG15, kSceneUG15);
} }
return true; return true;
} }
if (exitId == 2) { if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -316.78f, -34.88f, -533.27f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -316.78f, -34.88f, -533.27f, 0, 1, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 0, false); Actor_Face_Heading(kActorMcCoy, 0, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 13, 1, kAnimationModeIdle); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(551); Game_Flag_Set(551);

View file

@ -31,14 +31,17 @@ void SceneScriptUG17::InitializeScene() {
} else { } else {
Setup_Scene_Information(1000.0f, 67.96f, -1539.0f, 0); Setup_Scene_Information(1000.0f, 67.96f, -1539.0f, 0);
} }
Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(1, 551, 347, 594, 386, 0); Scene_Exit_Add_2D_Exit(1, 551, 347, 594, 386, 0);
Ambient_Sounds_Add_Looping_Sound(589, 100, 1, 1); Ambient_Sounds_Add_Looping_Sound(589, 100, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 50, 1, 1); Ambient_Sounds_Add_Looping_Sound(384, 50, 1, 1);
Ambient_Sounds_Add_Sound(72, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(72, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(73, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(73, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(74, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(74, 5, 80, 10, 11, -100, 100, -101, -101, 0, 0);
Overlay_Play("UG17OVER", 0, 1, 0, 0);
Overlay_Play("UG17OVER", 0, true, false, 0);
} }
void SceneScriptUG17::SceneLoaded() { void SceneScriptUG17::SceneLoaded() {
@ -67,7 +70,7 @@ bool SceneScriptUG17::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1000.0f, 67.96f, -1539.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1000.0f, 67.96f, -1539.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(353); Game_Flag_Set(kFlagUG17toUG15);
Set_Enter(kSetUG15, kSceneUG15); Set_Enter(kSetUG15, kSceneUG15);
} }
return true; return true;
@ -101,9 +104,9 @@ void SceneScriptUG17::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG17::PlayerWalkedIn() { void SceneScriptUG17::PlayerWalkedIn() {
if (Game_Flag_Query(352)) { if (Game_Flag_Query(kFlagUG15toUG17)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 961.0f, 67.96f, -1539.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 961.0f, 67.96f, -1539.0f, 0, false, false, 0);
Game_Flag_Reset(352); Game_Flag_Reset(kFlagUG15toUG17);
} }
//return false; //return false;
} }

View file

@ -25,38 +25,39 @@
namespace BladeRunner { namespace BladeRunner {
void SceneScriptUG19::InitializeScene() { void SceneScriptUG19::InitializeScene() {
if (Game_Flag_Query(357)) { if (Game_Flag_Query(kFlagMA07toUG19)) {
Setup_Scene_Information(67.03f, 105.0f, -74.97f, 256); Setup_Scene_Information(67.03f, 105.0f, -74.97f, 256);
} else { } else {
Setup_Scene_Information(181.0f, 11.52f, -18.0f, 777); Setup_Scene_Information(181.0f, 11.52f, -18.0f, 777);
} }
Scene_Exit_Add_2D_Exit(0, 351, 0, 491, 347, 0);
Scene_Exit_Add_2D_Exit(1, 548, 124, 639, 369, 1);
Ambient_Sounds_Add_Looping_Sound(95, 45, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(396, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Scene_Exit_Add_2D_Exit(0, 351, 0, 491, 347, 0);
Scene_Exit_Add_2D_Exit(1, 548, 124, 639, 369, 1);
Ambient_Sounds_Add_Looping_Sound( 95, 45, 0, 1);
Ambient_Sounds_Add_Looping_Sound(332, 76, 0, 1);
Ambient_Sounds_Add_Sound(291, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(292, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(293, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(294, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(295, 2, 20, 25, 33, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(401, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(396, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(303, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(304, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 1, 5, 50, 47, 57, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 57, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 58, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(306, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(307, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(308, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(196, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(199, 5, 50, 27, 37, -100, 100, -101, -101, 0, 0);
} }
void SceneScriptUG19::SceneLoaded() { void SceneScriptUG19::SceneLoaded() {
@ -91,7 +92,7 @@ bool SceneScriptUG19::ClickedOnExit(int exitId) {
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(356); Game_Flag_Set(kFlagUG19toMA07);
Set_Enter(kSetMA07, kSceneMA07); Set_Enter(kSetMA07, kSceneMA07);
} }
return true; return true;
@ -100,7 +101,7 @@ bool SceneScriptUG19::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.0f, 11.52f, -18.0f, 0, 1, false, 0)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.0f, 11.52f, -18.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(349); Game_Flag_Set(kFlagUG19toUG14);
Set_Enter(kSetUG14, kSceneUG14); Set_Enter(kSetUG14, kSceneUG14);
} }
return true; return true;
@ -119,13 +120,13 @@ void SceneScriptUG19::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
} }
void SceneScriptUG19::PlayerWalkedIn() { void SceneScriptUG19::PlayerWalkedIn() {
if (Game_Flag_Query(348)) { if (Game_Flag_Query(kFlagUG14toUG19)) {
Game_Flag_Reset(348); Game_Flag_Reset(kFlagUG14toUG19);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 129.0f, 11.52f, -18.0f, 0, 0, false, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 129.0f, 11.52f, -18.0f, 0, false, false, 0);
} else { } else {
Game_Flag_Reset(357); Game_Flag_Reset(kFlagMA07toUG19);
Footstep_Sound_Override_On(3); Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Ladder(kActorMcCoy, 8, 0, 0); Loop_Actor_Travel_Ladder(kActorMcCoy, 8, false, 0);
Footstep_Sound_Override_Off(); Footstep_Sound_Override_Off();
} }
} }

View file

@ -168,11 +168,11 @@ DECLARE_SCRIPT(DR02)
END_SCRIPT END_SCRIPT
DECLARE_SCRIPT(DR03) DECLARE_SCRIPT(DR03)
void sub_401B18(); void dialogueWithChew();
END_SCRIPT END_SCRIPT
DECLARE_SCRIPT(DR04) DECLARE_SCRIPT(DR04)
bool sub_401160(); bool farEnoughFromExplosion();
END_SCRIPT END_SCRIPT
DECLARE_SCRIPT(DR05) DECLARE_SCRIPT(DR05)
@ -441,7 +441,7 @@ DECLARE_SCRIPT(TB06)
END_SCRIPT END_SCRIPT
DECLARE_SCRIPT(TB07) DECLARE_SCRIPT(TB07)
void sub_401B0C(); void McCoyTalkWithRachaelAndTyrell();
END_SCRIPT END_SCRIPT
DECLARE_SCRIPT(UG01) DECLARE_SCRIPT(UG01)