From 43af0a3bb0d422135dc17fca7645f028dd69181c Mon Sep 17 00:00:00 2001 From: antoniou79 Date: Fri, 16 Aug 2019 19:19:39 +0300 Subject: BLADERUNNER: Restored buzzer to annoy Dino (WIP) --- engines/bladerunner/script/ai/klein.cpp | 10 +++++++++- engines/bladerunner/script/scene/ps07.cpp | 8 +++++++- engines/bladerunner/set.cpp | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) (limited to 'engines') diff --git a/engines/bladerunner/script/ai/klein.cpp b/engines/bladerunner/script/ai/klein.cpp index 066bbada60..66d8801555 100644 --- a/engines/bladerunner/script/ai/klein.cpp +++ b/engines/bladerunner/script/ai/klein.cpp @@ -232,7 +232,15 @@ bool AIScriptKlein::GoalChanged(int currentGoalNumber, int newGoalNumber) { AI_Movement_Track_Append(kActorKlein, 32, 5); // kSetPS07 AI_Movement_Track_Repeat(kActorKlein); break; - // TODO: missing kGoalKleinIsAnnoyedByMcCoyFinal case + case kGoalKleinIsAnnoyedByMcCoyFinal: + // Note: Original was missing the kGoalKleinIsAnnoyedByMcCoyFinal case + // so we just "break" for the original behavior + if (_vm->_cutContent) { + AI_Movement_Track_Flush(kActorKlein); + AI_Movement_Track_Append(kActorKlein, 74, Random_Query(10, 20)); // kSetPS07 + AI_Movement_Track_Repeat(kActorKlein); + } + break; case kGoalKleinAwayAtEndOfActOne: AI_Movement_Track_Flush(kActorKlein); Actor_Put_In_Set(kActorKlein, kSetFreeSlotC); diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp index 6ded562877..718254584e 100644 --- a/engines/bladerunner/script/scene/ps07.cpp +++ b/engines/bladerunner/script/scene/ps07.cpp @@ -43,8 +43,14 @@ void SceneScriptPS07::InitializeScene() { } void SceneScriptPS07::SceneLoaded() { - Obstacle_Object("RICE BOX01", true); + Obstacle_Object("RICE BOX01", true); // garbage can Unobstacle_Object("RICE BOX01", true); + if (_vm->_cutContent) { + Unobstacle_Object("L.MOUSE", true); + Unobstacle_Object("L.MOUSE2", true); + Clickable_Object("L.MOUSE"); + Clickable_Object("L.MOUSE2"); + } } bool SceneScriptPS07::MouseClick(int x, int y) { diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp index fe9c2085ba..8c0dc6cddf 100644 --- a/engines/bladerunner/set.cpp +++ b/engines/bladerunner/set.cpp @@ -486,6 +486,12 @@ void Set::overrideSceneObjectInfo(int objectId) const { _objects[objectId].bbox.setXYZ(695.63f, 42.65f, -628.10f, 706.71f, 69.22f, -614.47f); } break; + case kScenePS07: + // Make the mid-wall thinner to enable access to clickable object (buzzer) + if (objectId == 1 && _objects[objectId].name == "BOX01") { + _objects[objectId].bbox.setXYZ(526.91f, 0.0f, -582.62f, 531.50f, 48.43f, -511.72f); + } + break; case kSceneNR05: if (objectId == 10 && _objects[objectId].name == "BOX08") { _objects[objectId].bbox.setXYZ(-748.75f, 0.0f, -257.39f, -685.37f, 32.01f, -211.47f); @@ -580,6 +586,16 @@ void Set::patchInAdditionalObjectsInSet() { setupNewObjectInSet(custObjName, bbox); break; + case kScenePS07: + // add missing buzzer button to annoy Klein + bbox = BoundingBox(530.16f, 48.44f, -570.13f, 550.41f, 50.46f, -558.77f); + custObjName = "L.MOUSE"; + setupNewObjectInSet(custObjName, bbox); + bbox = BoundingBox(541.18f, 28.95f, -566.66f, 555.18f, 44.46f, -548.79f); + custObjName = "L.MOUSE2"; + setupNewObjectInSet(custObjName, bbox); + break; + case kSceneNR05: bbox = BoundingBox(-690.0f, 0.0f, -155.0f, -640.0f, 33.47f, -100.0f); custObjName = "CUSTLFTBLOCK"; -- cgit v1.2.3