From f56fe145d7f918e49d5844e1315e3d3db14a7392 Mon Sep 17 00:00:00 2001 From: Thanasis Antoniou Date: Sat, 1 Jun 2019 13:37:51 +0300 Subject: BLADERUNNER: Broaden path to Runciter desk RC02 --- engines/bladerunner/obstacles.cpp | 2 +- engines/bladerunner/script/scene/rc02.cpp | 4 ++++ engines/bladerunner/set.cpp | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) (limited to 'engines/bladerunner') diff --git a/engines/bladerunner/obstacles.cpp b/engines/bladerunner/obstacles.cpp index c94f271e2d..9bdf4ffe9c 100644 --- a/engines/bladerunner/obstacles.cpp +++ b/engines/bladerunner/obstacles.cpp @@ -33,7 +33,7 @@ #include "common/debug.h" #define DISABLE_PATHFINDING 0 -#define USE_PATHFINDING_EXPERIMENTAL_FIX_2 0 // Alternate Fix: Allows polygons merged on one point +#define USE_PATHFINDING_EXPERIMENTAL_FIX_2 1 // Alternate Fix: Allows polygons merged on one point #define WITHIN_TOLERANCE(a, b) (((a) - 0.009) < (b) && ((a) + 0.009) > (b)) diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp index 049427f235..1dbae55df5 100644 --- a/engines/bladerunner/script/scene/rc02.cpp +++ b/engines/bladerunner/script/scene/rc02.cpp @@ -72,6 +72,10 @@ void SceneScriptRC02::SceneLoaded() { Unobstacle_Object("LEGS", true); Unobstacle_Object("SLATS01", true); Unobstacle_Object("DRAPE07", true); + if (_vm->_cutContent) { + // improvement: broaden path for Runciter to his desk + Unobstacle_Object("GRD ROPE04", true); + } Clickable_Object("SCRTY CA03"); Unclickable_Object("GRL_DSKLEG"); Unclickable_Object("CURTAIN"); diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp index 6e29a37acb..f0ae927135 100644 --- a/engines/bladerunner/set.cpp +++ b/engines/bladerunner/set.cpp @@ -436,6 +436,22 @@ void Set::load(SaveFileReadStream &f) { */ void Set::overrideSceneObjectInfo(int objectId) const { switch (_vm->_scene->getSceneId()) { + case kSceneRC02: + // improve path for Runciter to his desk + // this won't fix the issue entirely (of Runciter awkwardly walking around the cage to reach his desk) + // but it make it less of an occurrence + if (objectId == 0 && _objects[objectId].name == "TABLETOP") { + _objects[objectId].bbox.setXYZ(9.0f, -1235.57f, 108386.98f, 47.90f, -1214.99f, 108410.42f); + } else if (objectId == 2 && _objects[objectId].name == "OUTR_DESK") { + _objects[objectId].bbox.setXYZ(-4.0f, -1239.81f, 108315.97f, 83.98f, -1185.50f, 108387.42f); + } else if (objectId == 42 && _objects[objectId].name == "P_BURN01") { + _objects[objectId].bbox.setXYZ(-4.0f, -1239.81f, 108312.98f, 87.98f, -1185.50f, 108388.19f); + } else if (objectId == 15 && _objects[objectId].name == "POLE_ROP01") { + _objects[objectId].bbox.setXYZ(-76.48f, -1239.31f, 108308.19f, -56.32f, -1191.11f, 108326.42f); + } else if (objectId == 16 && _objects[objectId].name == "POLE_ROP02") { + _objects[objectId].bbox.setXYZ(-75.17f, -1239.29f, 108340.13f, -56.32f, -1221.16f, 108365.65f); + } + break; case kSceneBB06: // Sebastian's room with doll if (objectId == 3 && _objects[objectId].name == "BOX31") { -- cgit v1.2.3