diff options
-rw-r--r-- | engines/bladerunner/game_constants.h | 8 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/free_slot_a.cpp | 13 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/free_slot_b.cpp | 13 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/kp02.cpp | 7 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/kp03.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ug04.cpp | 23 |
6 files changed, 60 insertions, 10 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index a4c9ba8c7e..39d4c8bf84 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -1108,19 +1108,19 @@ enum Flags { kFlagMcCoyFreedOfAccusations = 666, // 667 is never used // 668 is never used - // 669 is never used + kFlagKP02DispatchOnToxicKipple = 669, // Re-purposed. Original: 669 is never used kFlagCallWithGuzza = 670, kFlagUG18GuzzaScene = 671, kFlagMA07toPS14 = 672, kFlagPS14toMA07 = 673, kFlagKP01Entered = 674, - // 675 is never used + kFlagUG04DispatchOnHoodooRats = 675, // Re-purposed. Original: 675 is never used kFlagUG15RatShot = 676, kFlagUG15BridgeWillBreak = 677, kFlagChapter2Intro = 678, kFlagChapter3Intro = 679, kFlagChapter4Intro = 680, - // 681 is never used + kFlagMcCoyCommentsOnHoodooRats = 681, // Re-purposed. Original: 681 is never used kFlagUG15BridgeBroken = 682, kFlagUG05TalkToPolice = 683, kFlagHF05PoliceAttacked = 684, @@ -2489,7 +2489,7 @@ enum GoalOfficerGrayford { kGoalOfficerGrayfordStopPatrolToTalkToMcCoyAtDR04 = 106, kGoalOfficerGrayfordLeavesWithMorajiCorpseDR04 = 110, kGoalOfficerGrayfordArrestMcCoyInTB03Act4 = 399, // TB02_TB03 - kGoalOfficerGrayfordStopAndTalkDR04 = 199, // this is used temporarily to make him stop and talk while at UG04 (Moraji's death scene) + kGoalOfficerGrayfordStopAndTalkDR04 = 199, // this is used temporarily to make him stop and talk while at DR04 (Moraji's death scene) kGoalOfficerGrayfordStartOfAct4 = 300, kGoalOfficerGrayfordHuntingAroundAct4 = 305, kGoalOfficerGrayfordPrepareToHuntAroundAct4 = 306, diff --git a/engines/bladerunner/script/ai/free_slot_a.cpp b/engines/bladerunner/script/ai/free_slot_a.cpp index cba1488d45..eaee3e1bfb 100644 --- a/engines/bladerunner/script/ai/free_slot_a.cpp +++ b/engines/bladerunner/script/ai/free_slot_a.cpp @@ -210,10 +210,17 @@ void AIScriptFreeSlotA::ReceivedClue(int clueId, int fromActorId) { void AIScriptFreeSlotA::ClickedByPlayer() { if (Actor_Query_Goal_Number(kActorFreeSlotA) == kGoalFreeSlotAGone) { Actor_Face_Actor(kActorMcCoy, kActorFreeSlotA, true); - if (Random_Query(1, 2) == 1) { - Actor_Says(kActorMcCoy, 8655, 16); + if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) { + Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats); + Actor_Voice_Over(1060, kActorVoiceOver); // Hoodoo rats + Actor_Voice_Over(1080, kActorVoiceOver); + Actor_Voice_Over(1090, kActorVoiceOver); } else { - Actor_Says(kActorMcCoy, 8665, 16); + if (Random_Query(1, 2) == 1) { + Actor_Says(kActorMcCoy, 8655, 16); + } else { + Actor_Says(kActorMcCoy, 8665, 16); + } } } //return false; diff --git a/engines/bladerunner/script/ai/free_slot_b.cpp b/engines/bladerunner/script/ai/free_slot_b.cpp index 69274dae43..1124d283ec 100644 --- a/engines/bladerunner/script/ai/free_slot_b.cpp +++ b/engines/bladerunner/script/ai/free_slot_b.cpp @@ -155,10 +155,17 @@ void AIScriptFreeSlotB::ClickedByPlayer() { return; //false; Actor_Face_Actor(kActorMcCoy, kActorFreeSlotB, true); - if (Random_Query(1, 2) == 1) { - Actor_Says(kActorMcCoy, 8655, 16); + if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) { + Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats); + Actor_Voice_Over(1060, kActorVoiceOver); // Hoodoo rats + Actor_Voice_Over(1080, kActorVoiceOver); + Actor_Voice_Over(1090, kActorVoiceOver); } else { - Actor_Says(kActorMcCoy, 8665, 16); + if (Random_Query(1, 2) == 1) { + Actor_Says(kActorMcCoy, 8655, 16); + } else { + Actor_Says(kActorMcCoy, 8665, 16); + } } } diff --git a/engines/bladerunner/script/scene/kp02.cpp b/engines/bladerunner/script/scene/kp02.cpp index 0c238b31ef..5bb0474deb 100644 --- a/engines/bladerunner/script/scene/kp02.cpp +++ b/engines/bladerunner/script/scene/kp02.cpp @@ -148,6 +148,13 @@ void SceneScriptKP02::PlayerWalkedIn() { ) { Actor_Set_Goal_Number(kActorSteele, 450); } + + if (_vm->_cutContent && !Game_Flag_Query(kFlagKP02DispatchOnToxicKipple)) { + Game_Flag_Set(kFlagKP02DispatchOnToxicKipple); + ADQ_Add_Pause(Random_Query(0, 1) * 1000); + ADQ_Add(kActorDispatcher, 300, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 310, kAnimationModeTalk); + } //return false; } diff --git a/engines/bladerunner/script/scene/kp03.cpp b/engines/bladerunner/script/scene/kp03.cpp index 8aa85f2e3b..896823f4d1 100644 --- a/engines/bladerunner/script/scene/kp03.cpp +++ b/engines/bladerunner/script/scene/kp03.cpp @@ -117,8 +117,14 @@ bool SceneScriptKP03::ClickedOn3DObject(const char *objectName, bool combatMode) Game_Flag_Reset(kFlagKP03BombActive); Scene_Loop_Set_Default(kKP03MainLoopBombNoWire); Scene_Loop_Start_Special(kSceneLoopModeOnce, kKP03MainLoopBombInactive, false); + if (_vm->_cutContent) { + Actor_Voice_Over(1100, kActorVoiceOver); // I'd been lucky this time. + } Actor_Voice_Over(1110, kActorVoiceOver); Actor_Voice_Over(1120, kActorVoiceOver); + if (_vm->_cutContent) { + Actor_Voice_Over(1130, kActorVoiceOver); // One false step and... + } } else { Actor_Face_Object(kActorMcCoy, "BRACK MID", true); Actor_Says(kActorMcCoy, 8580, 13); diff --git a/engines/bladerunner/script/scene/ug04.cpp b/engines/bladerunner/script/scene/ug04.cpp index f3fc451f8c..b126ba4bb6 100644 --- a/engines/bladerunner/script/scene/ug04.cpp +++ b/engines/bladerunner/script/scene/ug04.cpp @@ -162,6 +162,29 @@ void SceneScriptUG04::PlayerWalkedIn() { #endif Game_Flag_Reset(kFlagUG06toUG04); } + if (_vm->_cutContent + && !Game_Flag_Query(kFlagUG04DispatchOnHoodooRats) + && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats) + ) { + if (Random_Query(0, 2) == 1) { + Game_Flag_Set(kFlagUG04DispatchOnHoodooRats); + ADQ_Add_Pause(Random_Query(0, 1) * 1000); + ADQ_Add(kActorDispatcher, 340, kAnimationModeTalk); // Southern Kipple Unit 2 LA. + if (Random_Query(0, 1) == 0) { + // Leary responds + ADQ_Add(kActorOfficerLeary, 240, kAnimationModeTalk); // LA, South Kipple Unit 2. Go ahead. + ADQ_Add(kActorDispatcher, 350, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 360, kAnimationModeTalk); + ADQ_Add(kActorOfficerLeary, 250, kAnimationModeTalk); + } else { + // Grayford responds + ADQ_Add(kActorOfficerGrayford, 520, kAnimationModeTalk); // LA, South Kipple Unit 2. Go ahead. + ADQ_Add(kActorDispatcher, 350, kAnimationModeTalk); + ADQ_Add(kActorDispatcher, 360, kAnimationModeTalk); + ADQ_Add(kActorOfficerGrayford, 530, kAnimationModeTalk); + } + } + } } void SceneScriptUG04::PlayerWalkedOut() { |