aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorThanasis Antoniou2019-06-01 02:58:31 +0300
committerThanasis Antoniou2019-06-01 02:59:04 +0300
commit5eed7f091d8d96f3265610afe58006715bf16661 (patch)
treee96721066642b83854203b45da9cc373ba4c4f69 /engines/bladerunner
parent127302270b81bbd8f1a66451d90632b7bd764e7f (diff)
downloadscummvm-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/bladerunner')
-rw-r--r--engines/bladerunner/script/scene/bb01.cpp6
-rw-r--r--engines/bladerunner/script/scene/ct01.cpp5
-rw-r--r--engines/bladerunner/script/scene/ct12.cpp6
-rw-r--r--engines/bladerunner/set.cpp37
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;
}