diff options
| -rw-r--r-- | engines/bladerunner/script/ai/klein.cpp | 10 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ps07.cpp | 8 | ||||
| -rw-r--r-- | engines/bladerunner/set.cpp | 16 | 
3 files changed, 32 insertions, 2 deletions
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";  | 
