aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorThanasis Antoniou2019-09-19 23:13:05 +0300
committerThanasis Antoniou2019-09-19 23:13:40 +0300
commit42707caad6bbf7264ee4678a4c9daf1795ad5029 (patch)
tree5dc8dede9fef2b30c15b2d9931c6bde51e0fd7bc /engines/bladerunner
parenta6aea5c20113fab23f58d3bdd2047fab7e3e2169 (diff)
downloadscummvm-rg350-42707caad6bbf7264ee4678a4c9daf1795ad5029.tar.gz
scummvm-rg350-42707caad6bbf7264ee4678a4c9daf1795ad5029.tar.bz2
scummvm-rg350-42707caad6bbf7264ee4678a4c9daf1795ad5029.zip
BLADERUNNER: Fix rare teleport case for McCoy in BB08
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/script/ai/gordo.cpp2
-rw-r--r--engines/bladerunner/script/scene/bb08.cpp14
2 files changed, 15 insertions, 1 deletions
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 804c1da389..26fd00016a 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -542,7 +542,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break;
case kGoalGordoNR02TalkAboutMcCoy:
- Actor_Force_Stop_Walking(0);
+ Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Face_Actor(kActorGordo, kActorMcCoy, true);
Actor_Says(kActorGordo, 720, 16);
Actor_Says(kActorGordo, 730, 18);
diff --git a/engines/bladerunner/script/scene/bb08.cpp b/engines/bladerunner/script/scene/bb08.cpp
index 8bc281b85c..8b881524f5 100644
--- a/engines/bladerunner/script/scene/bb08.cpp
+++ b/engines/bladerunner/script/scene/bb08.cpp
@@ -26,7 +26,11 @@ namespace BladeRunner {
void SceneScriptBB08::InitializeScene() {
if (Game_Flag_Query(kFlagBB09toBB08)) {
+#if BLADERUNNER_ORIGINAL_BUGS
Setup_Scene_Information(204.0f, 0.0f, 92.0f, 875);
+#else
+ Setup_Scene_Information(204.0f, 96.1f, 94.0f, 256);
+#endif
} else {
Setup_Scene_Information(247.0f, 0.0f, 27.0f, 790);
}
@@ -120,6 +124,16 @@ void SceneScriptBB08::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptBB08::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB09toBB08)) {
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ // prevents a sling-shot effect whereby McCoy reverts to the position vector
+ // he had in the previous room (BB09), if he just started walking before exiting BB09
+ // this bug would result in McCoy teleporting to the right of this scene (BB08)
+ // and he would often then glitch through the bathtub.
+ // Also he would skip the climbing down stairs animation altogether
+ // The bug seems to be particular only to this case of McCoy climbing down a ladder
+ Actor_Force_Stop_Walking(kActorMcCoy);
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Set_At_XYZ(kActorMcCoy, 204.0f, 96.1f, 94.0f, 256);
Footstep_Sound_Override_On(2);
Loop_Actor_Travel_Ladder(kActorMcCoy, 8, false, kAnimationModeIdle);