diff options
author | Thanasis Antoniou | 2019-05-13 00:19:17 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-13 03:29:00 +0300 |
commit | 9207f7270b9be7b72f7b65f5df6957c56c3bdc31 (patch) | |
tree | c48948ef34436d40b1cdff15972ec0d2e2dca79f /engines/bladerunner | |
parent | 618d48dde8a9e83f0cfa01d48cecd9cbfca6bf0d (diff) | |
download | scummvm-rg350-9207f7270b9be7b72f7b65f5df6957c56c3bdc31.tar.gz scummvm-rg350-9207f7270b9be7b72f7b65f5df6957c56c3bdc31.tar.bz2 scummvm-rg350-9207f7270b9be7b72f7b65f5df6957c56c3bdc31.zip |
BLADERUNNER: Hit and Run dispatch clue restored
Diffstat (limited to 'engines/bladerunner')
-rw-r--r-- | engines/bladerunner/script/ai/mccoy.cpp | 24 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ma01.cpp | 29 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps01.cpp | 28 |
3 files changed, 81 insertions, 0 deletions
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp index 145743f034..f5c6342fab 100644 --- a/engines/bladerunner/script/ai/mccoy.cpp +++ b/engines/bladerunner/script/ai/mccoy.cpp @@ -127,17 +127,22 @@ void AIScriptMcCoy::CompletedMovementTrack() { void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) { switch (clueId) { + case kClueDispatchHitAndRun: // added case for cut content + // fall through case kClueChopstickWrapper: + // fall through case kClueSushiMenu: Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationChinatown, true); break; case kClueDragonflyEarring: + // fall through case kClueBombingSuspect: Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationAnimoidRow, true); break; case kClueKingstonKitchenBox1: + // fall through case kClueKingstonKitchenBox2: if (Query_Difficulty_Level() == kGameDifficultyEasy) { Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationAnimoidRow, true); @@ -149,17 +154,24 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) { break; case kClueHysteriaToken: + // fall through case kClueCarRegistration1: + // fall through case kClueCarRegistration2: + // fall through case kClueCarRegistration3: + // fall through case kClueLichenDogWrapper: Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationHysteriaHall, true); Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationNightclubRow, true); break; case kClueWeaponsCache: + // fall through case kClueWeaponsOrderForm: + // fall through case kClueShippingForm: + // fall through case kCluePoliceIssueWeapons: Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 1); break; @@ -169,20 +181,27 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) { break; case kClueHomelessManKid: + // fall through case kClueOriginalRequisitionForm: Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 3); break; case kClueScaryChair: + // fall through case kClueIzosStashRaided: Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 2); break; case kClueDNATyrell: + // fall through case kClueDNASebastian: + // fall through case kClueDNAChew: + // fall through case kClueDNAMoraji: + // fall through case kClueDNALutherLance: + // fall through case kClueDNAMarcus: Global_Variable_Increment(kVariableDNAEvidence, 1); break; @@ -196,10 +215,15 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) { Actor_Voice_Over(3320, kActorVoiceOver); switch (clueId) { case kClueWeaponsCache: + // fall through case kClueWeaponsOrderForm: + // fall through case kClueGuzzasCash: + // fall through case kCluePoliceIssueWeapons: + // fall through case kClueIzosStashRaided: + // fall through case kClueOriginalRequisitionForm: Actor_Voice_Over(3340, kActorVoiceOver); Actor_Voice_Over(3350, kActorVoiceOver); diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp index 9b4e8d236e..d21ac5d7c6 100644 --- a/engines/bladerunner/script/scene/ma01.cpp +++ b/engines/bladerunner/script/scene/ma01.cpp @@ -269,12 +269,41 @@ void SceneScriptMA01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo } void SceneScriptMA01::PlayerWalkedIn() { + if (_vm->_cutContent) { + if (!Game_Flag_Query(kFlagCT01Visited) && !Actor_Clue_Query(kActorMcCoy, kClueDispatchHitAndRun)) { + Actor_Clue_Acquire(kActorMcCoy, kClueDispatchHitAndRun, false, kActorDispatcher); + ADQ_Add(kActorDispatcher, 80, kAnimationModeTalk); + if (Game_Flag_Query(kFlagRC01PoliceDone)) { + ADQ_Add(kActorOfficerLeary, 340, kAnimationModeTalk); // sector 3 - go ahead + } else { + ADQ_Add(kActorOfficerGrayford, 360, kAnimationModeTalk); // sector 3 - go ahead + } + ADQ_Add(kActorDispatcher, 90, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 100, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 110, kAnimationModeTalk); + if (Game_Flag_Query(kFlagRC01PoliceDone)) { + ADQ_Add(kActorOfficerLeary, 350, kAnimationModeTalk); // sector 3 - responding code 3 + } else { + ADQ_Add(kActorOfficerGrayford, 370, kAnimationModeTalk); // sector 3 - responding code 3 + } + ADQ_Add_Pause(1000); + ADQ_Add(kActorDispatcher, 120, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 130, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 140, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 150, kAnimationModeTalk); + } + } } void SceneScriptMA01::PlayerWalkedOut() { Actor_Set_Invisible(kActorMcCoy, false); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); + + if (_vm->_cutContent) { + ADQ_Flush(); // for dispatcher queue cleanup + } + if (!Game_Flag_Query(kFlagMA01toMA06)) { if (Global_Variable_Query(kVariableChapter) == 1) { Outtake_Play(kOuttakeTowards2, true, -1); diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp index bffcd0ead4..abe4a07760 100644 --- a/engines/bladerunner/script/scene/ps01.cpp +++ b/engines/bladerunner/script/scene/ps01.cpp @@ -285,6 +285,30 @@ void SceneScriptPS01::PlayerWalkedIn() { Actor_Set_At_XYZ(kActorMcCoy, 1920.0f, 16581.0f, -2653.0f, 150); Game_Flag_Reset(kFlagPS02toPS01); } + if (_vm->_cutContent) { + if (!Game_Flag_Query(kFlagCT01Visited) && !Actor_Clue_Query(kActorMcCoy, kClueDispatchHitAndRun)) { + Actor_Clue_Acquire(kActorMcCoy, kClueDispatchHitAndRun, false, kActorDispatcher); + ADQ_Add(kActorDispatcher, 80, kAnimationModeTalk); + if (Game_Flag_Query(kFlagRC01PoliceDone)) { + ADQ_Add(kActorOfficerLeary, 340, kAnimationModeTalk); // sector 3 - go ahead + } else { + ADQ_Add(kActorOfficerGrayford, 360, kAnimationModeTalk); // sector 3 - go ahead + } + ADQ_Add(kActorDispatcher, 90, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 100, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 110, kAnimationModeTalk); + if (Game_Flag_Query(kFlagRC01PoliceDone)) { + ADQ_Add(kActorOfficerLeary, 350, kAnimationModeTalk); // sector 3 - responding code 3 + } else { + ADQ_Add(kActorOfficerGrayford, 370, kAnimationModeTalk); // sector 3 - responding code 3 + } + ADQ_Add_Pause(1000); + ADQ_Add(kActorDispatcher, 120, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 130, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 140, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 150, kAnimationModeTalk); + } + } //return false; } @@ -293,6 +317,10 @@ void SceneScriptPS01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); + if (_vm->_cutContent) { + ADQ_Flush(); // for dispatcher queue cleanup + } + if (!Game_Flag_Query(kflagPS01toPS02)) { if (Global_Variable_Query(kVariableChapter) == 1) { Outtake_Play(kOuttakeTowards3, true, -1); |