aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/tsage/blue_force/blueforce_scenes6.cpp8
-rw-r--r--engines/tsage/blue_force/blueforce_scenes6.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/engines/tsage/blue_force/blueforce_scenes6.cpp b/engines/tsage/blue_force/blueforce_scenes6.cpp
index 86e64aaffa..e8c9af5492 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes6.cpp
@@ -131,6 +131,14 @@ void Scene600::signal() {
BF_GLOBALS._sceneManager.changeScene(620);
}
+// WORKAROUND: Fix for original game bug where the global scrolling object follower
+// remains set to an object within the scene that is no longer active
+void Scene600::remove() {
+ BF_GLOBALS._scrollFollower = &BF_GLOBALS._player;
+
+ SceneExt::remove();
+}
+
/*--------------------------------------------------------------------------
* Scene 620 - Hospital cut-scene
*
diff --git a/engines/tsage/blue_force/blueforce_scenes6.h b/engines/tsage/blue_force/blueforce_scenes6.h
index 7c35b75053..e354e9e069 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.h
+++ b/engines/tsage/blue_force/blueforce_scenes6.h
@@ -55,6 +55,7 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
+ virtual void remove();
};
class Scene620 : public PalettedScene {