Skip to content

Commit

Permalink
TSAGE: Workaround for original game bug in BF scene 600.
Browse files Browse the repository at this point in the history
The global scroll object follower was set to a scene object in this scene, but not reset when the scene ends, resulting in the pointer pointing to a freed object.
  • Loading branch information
dreammaster committed Oct 16, 2011
1 parent d886311 commit 1d99d51
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
8 changes: 8 additions & 0 deletions engines/tsage/blue_force/blueforce_scenes6.cpp
Expand Up @@ -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
*
Expand Down
1 change: 1 addition & 0 deletions engines/tsage/blue_force/blueforce_scenes6.h
Expand Up @@ -55,6 +55,7 @@ class Scene600 : public SceneExt {

virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
virtual void remove();
};

class Scene620 : public PalettedScene {
Expand Down

0 comments on commit 1d99d51

Please sign in to comment.