diff options
author | Thanasis Antoniou | 2019-06-01 02:58:31 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-06-01 02:59:04 +0300 |
commit | 5eed7f091d8d96f3265610afe58006715bf16661 (patch) | |
tree | e96721066642b83854203b45da9cc373ba4c4f69 /engines | |
parent | 127302270b81bbd8f1a66451d90632b7bd764e7f (diff) | |
download | scummvm-rg350-5eed7f091d8d96f3265610afe58006715bf16661.tar.gz scummvm-rg350-5eed7f091d8d96f3265610afe58006715bf16661.tar.bz2 scummvm-rg350-5eed7f091d8d96f3265610afe58006715bf16661.zip |
BLADERUNNER: Remove awry clickables from BB01, CT12, CT01
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/script/scene/bb01.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ct01.cpp | 5 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ct12.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/set.cpp | 37 |
4 files changed, 41 insertions, 13 deletions
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp index 34ddc47ae8..488022ddd7 100644 --- a/engines/bladerunner/script/scene/bb01.cpp +++ b/engines/bladerunner/script/scene/bb01.cpp @@ -88,6 +88,12 @@ void SceneScriptBB01::InitializeScene() { void SceneScriptBB01::SceneLoaded() { Obstacle_Object("COLUME", true); +#if BLADERUNNER_ORIGINAL_BUGS +#else + Unclickable_Object("OBJECT03"); + Unclickable_Object("OBJECT04"); + Unclickable_Object("OBJECT05"); +#endif // BLADERUNNER_ORIGINAL_BUGS } bool SceneScriptBB01::MouseClick(int x, int y) { diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp index 754d939cba..34a2a5b0d9 100644 --- a/engines/bladerunner/script/scene/ct01.cpp +++ b/engines/bladerunner/script/scene/ct01.cpp @@ -146,6 +146,11 @@ void SceneScriptCT01::SceneLoaded() { Unclickable_Object("TURBINE"); Unclickable_Object("SPINNER BODY"); Unclickable_Object("OBJECT04"); +#if BLADERUNNER_ORIGINAL_BUGS +#else + Unclickable_Object("OBJECT03"); + Unclickable_Object("OBJECT05"); +#endif // BLADERUNNER_ORIGINAL_BUGS } bool SceneScriptCT01::MouseClick(int x, int y) { diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp index 7c69762061..8cd5210e91 100644 --- a/engines/bladerunner/script/scene/ct12.cpp +++ b/engines/bladerunner/script/scene/ct12.cpp @@ -120,6 +120,12 @@ void SceneScriptCT12::SceneLoaded() { Unobstacle_Object("SPINNER BODY", true); Unobstacle_Object("HOWFLOOR", true); Unclickable_Object("TURBINE"); +#if BLADERUNNER_ORIGINAL_BUGS +#else + Unclickable_Object("OBJECT03"); + Unclickable_Object("OBJECT04"); + Unclickable_Object("OBJECT05"); +#endif // BLADERUNNER_ORIGINAL_BUGS } bool SceneScriptCT12::MouseClick(int x, int y) { diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp index 2e3bd44ee1..6e29a37acb 100644 --- a/engines/bladerunner/set.cpp +++ b/engines/bladerunner/set.cpp @@ -579,27 +579,38 @@ void Set::patchInAdditionalObjectsInSet() { */ void Set::patchOutBadObjectsFromSet() { int removedIndexRef = 0; - switch (_vm->_scene->getSceneId()) { - case kSceneNR11: - for (int objectId = 0; objectId < _objectCount; ++objectId) { + bool removeCurrObj = false; + for (int objectId = 0; objectId < _objectCount; ++objectId) { + switch (_vm->_scene->getSceneId()) { + case kSceneNR11: if ((objectId == 46 && _objects[objectId].name == "BOX53") || (objectId == 36 && _objects[objectId].name == "BOX43") - || (objectId == 37 && _objects[objectId].name == "BOX44") + || (objectId == 37 && _objects[objectId].name == "BOX44") || (objectId == 13 && _objects[objectId].name == "LOFT04") ) { // Removing obj 46, 36, 37 (BOX53, BOX43, BOX44) fixes paths in the scene // Removing obj 13 (LOFT04) fixes duplicate named box that confuses the engine - _objects[objectId].name = Common::String::format("REMOVED%02d", removedIndexRef++); - _objects[objectId].isObstacle = 0; - _objects[objectId].isClickable = 0; - _objects[objectId].isHotMouse = 0; - _objects[objectId].unknown1 = 0; - _objects[objectId].isTarget = 0; + removeCurrObj = true; } + break; + case kSceneDR02: + if ((objectId == 44 && _objects[objectId].name == "TRASH CAN WITH FIRE")) { + // Removing obj 44 (TRASH CAN WITH FIRE) fixes duplicate named box (id: 29) that confuses the engine + removeCurrObj = true; + } + break; + default: + break; + } + if (removeCurrObj) { + removeCurrObj = false; + _objects[objectId].name = Common::String::format("REMOVED%02d", removedIndexRef++); + _objects[objectId].isObstacle = 0; + _objects[objectId].isClickable = 0; + _objects[objectId].isHotMouse = 0; + _objects[objectId].unknown1 = 0; + _objects[objectId].isTarget = 0; } - break; - default: - break; } return; } |