aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-02-27 16:28:37 +1100
committerPaul Gilbert2011-02-27 16:28:37 +1100
commitee87c69a3437523382d7d1a5edb3b7b347e11642 (patch)
tree0c87e1ab2bad3ba55113cd30868d0a196d389de9
parent0cd4b885c8cff779adf27a99b690b09f99042e14 (diff)
downloadscummvm-rg350-ee87c69a3437523382d7d1a5edb3b7b347e11642.tar.gz
scummvm-rg350-ee87c69a3437523382d7d1a5edb3b7b347e11642.tar.bz2
scummvm-rg350-ee87c69a3437523382d7d1a5edb3b7b347e11642.zip
TSAGE: Fixed bug with scene mode being used incorrectly as the scene load flag
-rw-r--r--engines/tsage/core.cpp2
-rw-r--r--engines/tsage/scenes.cpp7
-rw-r--r--engines/tsage/scenes.h1
3 files changed, 6 insertions, 4 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 620d932784..6379a3853b 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -2282,7 +2282,7 @@ redraw:
// Update the palette
_globals->_sceneManager.fadeInIfNecessary();
- _globals->_sceneManager._scene->_sceneMode = 0;
+ _globals->_sceneManager._loadMode = 0;
_globals->_paneRefreshFlag[paneNum] = 0;
// Loop through the object list, removing any objects and refreshing the screen as necessary
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index bfb6852136..709b3ba552 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -210,6 +210,7 @@ void SceneManager::listenerSynchronise(Serialiser &s) {
s.syncAsUint16LE(_globals->_sceneManager._scene->_activeScreenNumber);
_globals->_sceneManager._scrollerRect.synchronise(s);
SYNC_POINTER(_globals->_scrollFollower);
+ s.syncAsSint16LE(_loadMode);
}
/*--------------------------------------------------------------------------*/
@@ -291,7 +292,7 @@ void Scene::loadSceneData(int sceneNum) {
_globals->_sceneOffset.y = (_sceneBounds.top / 100) * 100;
_globals->_paneRefreshFlag[0] = 1;
_globals->_paneRefreshFlag[1] = 1;
- _sceneMode = 1;
+ _globals->_sceneManager._loadMode = 1;
_globals->_sceneManager._sceneLoadCount = 0;
_globals->_sceneManager._sceneBgOffset = Common::Point(0, 0);
@@ -310,10 +311,10 @@ void Scene::loadBackground(int xAmount, int yAmount) {
_globals->_sceneOffset.x &= ~3;
if ((_sceneBounds.top != _oldSceneBounds.top) || (_sceneBounds.left != _oldSceneBounds.left)) {
- if (_sceneMode == 0) {
+ if (_globals->_sceneManager._loadMode == 0) {
_globals->_paneRefreshFlag[0] = 2;
_globals->_paneRefreshFlag[1] = 2;
- _sceneMode = 2;
+ _globals->_sceneManager._loadMode = 2;
}
_oldSceneBounds = _sceneBounds;
}
diff --git a/engines/tsage/scenes.h b/engines/tsage/scenes.h
index 88caee398d..b5776975be 100644
--- a/engines/tsage/scenes.h
+++ b/engines/tsage/scenes.h
@@ -77,6 +77,7 @@ private:
public:
Scene *_scene;
bool _hasPalette;
+ int _loadMode;
int _sceneNumber;
int _previousScene;
int _nextSceneNumber;