aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorThanasis Antoniou2019-05-24 23:30:03 +0300
committerThanasis Antoniou2019-05-25 03:39:57 +0300
commitcde63356f11d6b7a7bc744e0ee98e139ad06a4ad (patch)
tree0c6fb2bf10a14528612a6b957264471956b5da4e /engines/bladerunner
parentdebccbb8f3edadeef4607a43fca09d06a2e959d0 (diff)
downloadscummvm-rg350-cde63356f11d6b7a7bc744e0ee98e139ad06a4ad.tar.gz
scummvm-rg350-cde63356f11d6b7a7bc744e0ee98e139ad06a4ad.tar.bz2
scummvm-rg350-cde63356f11d6b7a7bc744e0ee98e139ad06a4ad.zip
BLADERUNNER: Fix path glitches in UG18 and UG13
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/script/scene/ug13.cpp4
-rw-r--r--engines/bladerunner/script/scene/ug18.cpp2
-rw-r--r--engines/bladerunner/set.cpp23
3 files changed, 29 insertions, 0 deletions
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index 1ec25eaf48..ea4e4f505f 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -304,7 +304,11 @@ void SceneScriptUG13::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptUG13::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagUG18toUG13)) {
+#if BLADERUNNER_ORIGINAL_BUGS
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -389.0f, 143.0f, -844.0f, 0, false, false, false);
+#else
+ Actor_Set_At_XYZ(kActorMcCoy, -389.0f, 143.0f, -844.0f, 325);
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Face_Heading(kActorMcCoy, 325, false);
Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 11, false, kAnimationModeIdle);
diff --git a/engines/bladerunner/script/scene/ug18.cpp b/engines/bladerunner/script/scene/ug18.cpp
index eda2099235..1c14c06e27 100644
--- a/engines/bladerunner/script/scene/ug18.cpp
+++ b/engines/bladerunner/script/scene/ug18.cpp
@@ -122,9 +122,11 @@ void SceneScriptUG18::InitializeScene() {
void SceneScriptUG18::SceneLoaded() {
Obstacle_Object("MACHINE_01", true);
+#if BLADERUNNER_ORIGINAL_BUGS
Unobstacle_Object("PLATFM_RAIL 01", true);
Unobstacle_Object("PLATFM_RAIL 02", true);
Unobstacle_Object("OBSTACLE1", true);
+#endif // BLADERUNNER_ORIGINAL_BUGS
Clickable_Object("MACHINE_01");
Unclickable_Object("MACHINE_01");
diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp
index 1b21508caa..92798d6500 100644
--- a/engines/bladerunner/set.cpp
+++ b/engines/bladerunner/set.cpp
@@ -477,6 +477,29 @@ void Set::overrideSceneObjectInfo(int objectId) const {
_objects[objectId].bbox.setXYZ(-168.99f, 151.38f, -139.10f, -105.95f, 239.59f, 362.70f);
}
break;
+
+ case kSceneUG13:
+ // fix obstacles map / stairs glitch
+ if (objectId == 31 && _objects[objectId].name == "BOX FOR ELEVATR WAL") {
+ _objects[objectId].bbox.setXYZ(-337.79f, 35.78f, -918.73f, -282.79f, 364.36f, -804.54f);
+ } else if (objectId == 32 && _objects[objectId].name == "BOX FOR ELEVATR WAL") {
+ _objects[objectId].bbox.setXYZ(-455.47f, 35.78f, -1071.24f, -335.98f, 364.36f, -824.54f);
+ }
+ break;
+
+ case kSceneUG18:
+ // fix obstacles map
+ if (objectId == 1 && _objects[objectId].name == "PIT_RAIL 03") {
+ _objects[objectId].bbox.setXYZ(-615.83f, 0.0f, -1237.04f, -602.30f, 37.66f, -13.48f);
+ } else if (objectId == 4 && _objects[objectId].name == "WALL_LEFT") {
+ _objects[objectId].bbox.setXYZ(-1310.70f, 0.0f, -2105.59f, -910.95f, 840.0f, -111.55f);
+ } else if (objectId == 5 && _objects[objectId].name == "OBSTACLE1") {
+ _objects[objectId].bbox.setXYZ(91.00f, -1.87f, 375.75f, 476.37f, 61.18f, 955.24f);
+ } else if (objectId == 6 && _objects[objectId].name == "OBSTACLE02") {
+ _objects[objectId].bbox.setXYZ(-1191.22f, -1.87f, -2105.59f, -606.15f, 61.18f, -937.04f);
+ }
+ break;
+
default:
return;
}