Skip to content

Commit

Permalink
BLADERUNNER: Remove awry clickables from BB01, CT12, CT01
Browse files Browse the repository at this point in the history
  • Loading branch information
antoniou79 committed May 31, 2019
1 parent 1273022 commit 5eed7f0
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 13 deletions.
6 changes: 6 additions & 0 deletions engines/bladerunner/script/scene/bb01.cpp
Expand Up @@ -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) {
Expand Down
5 changes: 5 additions & 0 deletions engines/bladerunner/script/scene/ct01.cpp
Expand Up @@ -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) {
Expand Down
6 changes: 6 additions & 0 deletions engines/bladerunner/script/scene/ct12.cpp
Expand Up @@ -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) {
Expand Down
37 changes: 24 additions & 13 deletions engines/bladerunner/set.cpp
Expand Up @@ -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;
}
Expand Down

0 comments on commit 5eed7f0

Please sign in to comment.