From b7c089f489440252785b1f18dc6d3a2356d6fde1 Mon Sep 17 00:00:00 2001 From: antoniou79 Date: Sun, 18 Aug 2019 21:09:51 +0300 Subject: BLADERUNNER: Restore bits of dialogue for McCoy, Chew, Walls --- engines/bladerunner/game_constants.h | 2 +- engines/bladerunner/script/ai/crazylegs.cpp | 2 +- engines/bladerunner/script/ai/early_q.cpp | 4 ++-- engines/bladerunner/script/ai/sebastian.cpp | 6 +++--- engines/bladerunner/script/ai/steele.cpp | 2 +- engines/bladerunner/script/scene/dr03.cpp | 24 ++++++++++++++++-------- engines/bladerunner/script/scene/ma06.cpp | 8 ++++---- engines/bladerunner/script/scene/ps15.cpp | 10 ++++++++++ engines/bladerunner/script/scene/rc02.cpp | 20 +++++++++++++++++--- engines/bladerunner/script/scene/rc03.cpp | 6 +++--- engines/bladerunner/script/scene/tb06.cpp | 3 +++ 11 files changed, 61 insertions(+), 26 deletions(-) diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index 5711b0e562..0454666009 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -596,7 +596,7 @@ enum Flags { kFlagTB02toTB03 = 154, // is never checked kFlagTB03toTB02 = 155, kFlagPS07KleinInsultedTalk = 156, - // 157 is never used + kFlagSergeantWallsMazeInstructions = 157, // Re-purposed. Original: 157 is never used kFlagSergeantWallsBuzzInDone = 158, kFlagPS04GuzzaTalkZubenRetired = 159, kFlagPS04GuzzaTalkZubenEscaped = 160, diff --git a/engines/bladerunner/script/ai/crazylegs.cpp b/engines/bladerunner/script/ai/crazylegs.cpp index b4ed739844..e54e57dd36 100644 --- a/engines/bladerunner/script/ai/crazylegs.cpp +++ b/engines/bladerunner/script/ai/crazylegs.cpp @@ -82,7 +82,7 @@ void AIScriptCrazylegs::OtherAgentEnteredCombatMode(int otherActorId, int combat Actor_Face_Actor(kActorCrazylegs, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorCrazylegs, true); Actor_Says(kActorCrazylegs, 430, 3); - Actor_Says_With_Pause(kActorCrazylegs, 440, 0.0, 3); + Actor_Says_With_Pause(kActorCrazylegs, 440, 0.0f, 3); Actor_Says(kActorMcCoy, 1870, -1); Actor_Says(kActorCrazylegs, 450, 3); Actor_Set_Goal_Number(kActorCrazylegs, kGoalCrazyLegsMcCoyDrewHisGun); diff --git a/engines/bladerunner/script/ai/early_q.cpp b/engines/bladerunner/script/ai/early_q.cpp index 1d98e98453..d78ca824a9 100644 --- a/engines/bladerunner/script/ai/early_q.cpp +++ b/engines/bladerunner/script/ai/early_q.cpp @@ -347,8 +347,8 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) { _vm->_aiScripts->callChangeAnimationMode(kActorMcCoy, kAnimationModeCombatAim); Actor_Says(kActorEarlyQ, 130, kAnimationModeTalk); Actor_Says(kActorMcCoy, 3400, kAnimationModeCombatAim); - Actor_Says_With_Pause(kActorEarlyQ, 140, 1.0, kAnimationModeTalk); - Actor_Says_With_Pause(kActorEarlyQ, 150, 1.0, kAnimationModeTalk); + Actor_Says_With_Pause(kActorEarlyQ, 140, 1.0f, kAnimationModeTalk); + Actor_Says_With_Pause(kActorEarlyQ, 150, 1.0f, kAnimationModeTalk); Actor_Says(kActorMcCoy, 3405, kAnimationModeCombatAim); Actor_Says(kActorEarlyQ, 160, kAnimationModeTalk); Actor_Says(kActorMcCoy, 3410, kAnimationModeCombatAim); diff --git a/engines/bladerunner/script/ai/sebastian.cpp b/engines/bladerunner/script/ai/sebastian.cpp index d5032ebec4..64f272e854 100644 --- a/engines/bladerunner/script/ai/sebastian.cpp +++ b/engines/bladerunner/script/ai/sebastian.cpp @@ -103,13 +103,13 @@ void AIScriptSebastian::OtherAgentEnteredCombatMode(int otherActorId, int combat if (Global_Variable_Query(kVariableGunPulledInFrontOfSebastian) == 1) { Actor_Says(kActorSebastian, 680, 12); Actor_Face_Actor(kActorMcCoy, kActorSebastian, true); - Actor_Says_With_Pause(kActorMcCoy, 7265, 0.0, kAnimationModeCombatIdle); + Actor_Says_With_Pause(kActorMcCoy, 7265, 0.0f, kAnimationModeCombatIdle); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatIdle); Delay(500); Actor_Says(kActorSebastian, 690, 16); } else { Actor_Says(kActorSebastian, 700, 15); - Actor_Says_With_Pause(kActorMcCoy, 7270, 0.0, kAnimationModeCombatIdle); + Actor_Says_With_Pause(kActorMcCoy, 7270, 0.0f, kAnimationModeCombatIdle); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatIdle); } AI_Movement_Track_Unpause(kActorSebastian); @@ -421,7 +421,7 @@ void AIScriptSebastian::dialogue() { Actor_Says(kActorSebastian, 350, kAnimationModeTalk); Actor_Says(kActorMcCoy, 7125, 13); Actor_Says(kActorSebastian, 360, 17); - Actor_Says_With_Pause(kActorMcCoy, 7130, 1.0, kAnimationModeTalk); + Actor_Says_With_Pause(kActorMcCoy, 7130, 1.0f, kAnimationModeTalk); Actor_Says(kActorMcCoy, 7135, 18); break; diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp index 739ef95111..1ee7e5f572 100644 --- a/engines/bladerunner/script/ai/steele.cpp +++ b/engines/bladerunner/script/ai/steele.cpp @@ -801,7 +801,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) { Actor_Face_Actor(kActorSteele, kActorIzo, true); Actor_Change_Animation_Mode(kActorIzo, kAnimationModeIdle); Actor_Face_Actor(kActorIzo, kActorSteele, true); - Actor_Says_With_Pause(kActorSteele, 2010, 0.0, kAnimationModeCombatIdle); + Actor_Says_With_Pause(kActorSteele, 2010, 0.0f, kAnimationModeCombatIdle); Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle); Loop_Actor_Walk_To_Actor(kActorSteele, kActorIzo, 60, false, false); Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle); diff --git a/engines/bladerunner/script/scene/dr03.cpp b/engines/bladerunner/script/scene/dr03.cpp index 265dcd1856..c272baded8 100644 --- a/engines/bladerunner/script/scene/dr03.cpp +++ b/engines/bladerunner/script/scene/dr03.cpp @@ -68,8 +68,13 @@ bool SceneScriptDR03::ClickedOnActor(int actorId) { Actor_Face_Actor(kActorChew, kActorMcCoy, true); if (!Game_Flag_Query(kFlagDR03ChewTalk1)) { - Actor_Says(kActorMcCoy, 755, 18); - Actor_Says(kActorChew, 10, 14); + if (_vm->_cutContent && Random_Query(1, 2) == 1) { + Actor_Says(kActorMcCoy, 750, 18); + Actor_Says(kActorChew, 0, 14); + } else { + Actor_Says(kActorMcCoy, 755, 18); + Actor_Says(kActorChew, 10, 14); + } Actor_Says(kActorMcCoy, 760, 18); Actor_Says(kActorChew, 20, 14); Actor_Says(kActorMcCoy, 765, 18); @@ -185,14 +190,14 @@ void SceneScriptDR03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo void SceneScriptDR03::PlayerWalkedIn() { if (!Game_Flag_Query(kFlagDR02toDR03)) { if (Random_Query(1, 2) == 1) { - Actor_Says(kActorChew, 660, 14); - Actor_Says(kActorChew, 680, 14); + Actor_Says(kActorChew, 660, 14); // (yells) Ah! + Actor_Says(kActorChew, 680, 14); // What you want? I busy. } else if (Random_Query(1, 2) == 2) { - Actor_Says(kActorChew, 670, 14); - Actor_Says(kActorChew, 620, 14); + Actor_Says(kActorChew, 670, 14); // Hmph. (mumbles in Chinese) + Actor_Says(kActorChew, 620, 14); // (yells) What you do, huh? } else { - Actor_Says(kActorChew, 690, 14); - Actor_Says(kActorChew, 710, 14); + Actor_Says(kActorChew, 690, 14); // Not good time now, come back later. + Actor_Says(kActorChew, 710, 14); // (Mumbles in Chinese) } } } @@ -285,6 +290,9 @@ void SceneScriptDR03::dialogueWithChew() { case 670: // TYRELL Actor_Says(kActorMcCoy, 765, 12); + if (_vm->_cutContent) { + Actor_Says_With_Pause(kActorMcCoy, 785, 0.80f, 18); + } Actor_Says(kActorMcCoy, 790, 13); Actor_Says(kActorChew, 310, 12); Actor_Says(kActorChew, 320, 3); diff --git a/engines/bladerunner/script/scene/ma06.cpp b/engines/bladerunner/script/scene/ma06.cpp index f067067a70..3a67b573b9 100644 --- a/engines/bladerunner/script/scene/ma06.cpp +++ b/engines/bladerunner/script/scene/ma06.cpp @@ -145,9 +145,9 @@ void SceneScriptMA06::PlayerWalkedIn() { Ambient_Sounds_Remove_Looping_Sound(kSfxSPINUP1, 1); // stop elev moving sound Ambient_Sounds_Remove_Looping_Sound(kSfxAPRTFAN1, 1); // stop other ambient Ambient_Sounds_Remove_Looping_Sound(kSfxELEAMB3, 1); // stop other ambient - Actor_Says_With_Pause(kActorRachael, 300, 1.0, 14); // GoodbyeMcCoy - Actor_Says(kActorRachael, 310, 14); // Isnt ThisYourFloor -- - Actor_Says(kActorMcCoy, 2860, 14); // YouTakeCareOfYoursel + Actor_Says_With_Pause(kActorRachael, 300, 1.0f, 14); // GoodbyeMcCoy + Actor_Says(kActorRachael, 310, 14); // Isnt ThisYourFloor -- + Actor_Says(kActorMcCoy, 2860, 14); // YouTakeCareOfYoursel Set_Enter(kSetMA02_MA04, kSceneMA02); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kMA06LoopDoorClose, true); @@ -243,7 +243,7 @@ void SceneScriptMA06::activateElevator() { Game_Flag_Reset(kFlagMA06toMA01); Game_Flag_Reset(kFlagMA06ToMA02); Game_Flag_Reset(kFlagMA06toMA07); - + while (true) { if (Game_Flag_Query(kFlagMA06ToMA02)) { break; diff --git a/engines/bladerunner/script/scene/ps15.cpp b/engines/bladerunner/script/scene/ps15.cpp index 180bc0f6e7..6cdd9615bc 100644 --- a/engines/bladerunner/script/scene/ps15.cpp +++ b/engines/bladerunner/script/scene/ps15.cpp @@ -162,6 +162,16 @@ void SceneScriptPS15::PlayerWalkedIn() { Actor_Says(kActorMcCoy, 4445, 18); Actor_Says(kActorSergeantWalls, 10, 12); Actor_Says(kActorMcCoy, 4450, 18); + if (_vm->_cutContent && !Game_Flag_Query(kFlagSergeantWallsMazeInstructions)) { + // TODO: These instructions don't make much sense... Is it better to not restore this at all? + // Could there have been a system with a bell-tone that was removed from the original version? + Game_Flag_Set(kFlagSergeantWallsMazeInstructions); + Actor_Says(kActorSergeantWalls, 20, 13); + Actor_Says(kActorSergeantWalls, 30, 12); + Actor_Says(kActorMcCoy, 4455, 12); + Actor_Says(kActorSergeantWalls, 40, 12); + Actor_Says(kActorSergeantWalls, 50, 12); + } Actor_Says(kActorSergeantWalls, 60, 13); Actor_Says(kActorSergeantWalls, 70, 12); Actor_Says(kActorMcCoy, 4460, 15); diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp index 3aa8cc33b5..9595b513b9 100644 --- a/engines/bladerunner/script/scene/rc02.cpp +++ b/engines/bladerunner/script/scene/rc02.cpp @@ -304,10 +304,24 @@ bool SceneScriptRC02::ClickedOnActor(int actorId) { if (Global_Variable_Query(kVariableChapter) == 4) { Actor_Face_Actor(kActorMcCoy, kActorRunciter, true); if (Actor_Query_Goal_Number(kActorRunciter) == kGoalRunciterDead) { - if (Random_Query(1, 2) == 1) { - Actor_Says(kActorMcCoy, 8715, 17); + if (_vm->_cutContent) { + switch (Random_Query(1, 3)) { + case 1: + Actor_Says(kActorMcCoy, 8715, 17); + break; + case 2: + Actor_Says(kActorMcCoy, 8720, 17); + break; + case 3: + Actor_Says(kActorMcCoy, 8725, 17); + break; + } } else { - Actor_Says(kActorMcCoy, 8720, 17); + if (Random_Query(1, 2) == 1) { + Actor_Says(kActorMcCoy, 8715, 17); + } else { + Actor_Says(kActorMcCoy, 8720, 17); + } } return true; } diff --git a/engines/bladerunner/script/scene/rc03.cpp b/engines/bladerunner/script/scene/rc03.cpp index 3b0bfdf346..7ada145017 100644 --- a/engines/bladerunner/script/scene/rc03.cpp +++ b/engines/bladerunner/script/scene/rc03.cpp @@ -311,9 +311,9 @@ void SceneScriptRC03::PlayerWalkedIn() { Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorIzo, true); Actor_Change_Animation_Mode(kActorIzo, kAnimationModeCombatIdle); - Actor_Says_With_Pause(kActorIzo, 630, 0, -1); - Actor_Says_With_Pause(kActorIzo, 640, 0, -1); - Actor_Says_With_Pause(kActorIzo, 650, 0, -1); + Actor_Says_With_Pause(kActorIzo, 630, 0.0f, -1); // TODO: A bug? why is animation mode set as -1? and why is "With_Pause" version used? + Actor_Says_With_Pause(kActorIzo, 640, 0.0f, -1); // TODO: A bug? why is animation mode set as -1? and why is "With_Pause" version used? + Actor_Says_With_Pause(kActorIzo, 650, 0.0f, -1); // TODO: A bug? why is animation mode set as -1? and why is "With_Pause" version used? if (Game_Flag_Query(kFlagIzoIsReplicant) ) { #if BLADERUNNER_ORIGINAL_BUGS Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo); diff --git a/engines/bladerunner/script/scene/tb06.cpp b/engines/bladerunner/script/scene/tb06.cpp index a2177bfae4..545f17b6bc 100644 --- a/engines/bladerunner/script/scene/tb06.cpp +++ b/engines/bladerunner/script/scene/tb06.cpp @@ -135,6 +135,9 @@ bool SceneScriptTB06::ClickedOnItem(int itemId, bool a2) { Actor_Voice_Over(2380, kActorVoiceOver); Actor_Voice_Over(2390, kActorVoiceOver); Actor_Voice_Over(2400, kActorVoiceOver); + if (_vm->_cutContent) { + Actor_Says_With_Pause(kActorMcCoy, 8516, 0.70f, kAnimationModeTalk); // Any idea if they were real dogs? (gets no answer) + } return true; } } -- cgit v1.2.3