aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/scenes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/scenes.cpp')
-rw-r--r--engines/tsage/scenes.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index d68f5c2ee5..69985382bd 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -80,9 +80,6 @@ void SceneManager::sceneChange() {
sceneObj->removeObject();
}
- // Clear the secondary scene object list
- _altSceneObjects.clear();
-
// Clear the hotspot list
SynchronizedList<SceneItem *>::iterator ii = _globals->_sceneItems.begin();
while (ii != _globals->_sceneItems.end()) {
@@ -234,7 +231,10 @@ void SceneManager::listenerSynchronize(Serializer &s) {
// in order for the savegame loading to work correctly
_globals->_sceneManager._scene = new Scene();
- _altSceneObjects.synchronize(s);
+ // Depreciated: the background scene objects used to be located here
+ uint32 unused = 0;
+ s.syncAsUint32LE(unused);
+
s.syncAsSint32LE(_sceneNumber);
s.syncAsUint16LE(_globals->_sceneManager._scene->_activeScreenNumber);
@@ -283,6 +283,9 @@ void Scene::synchronize(Serializer &s) {
s.syncAsUint16LE(_enabledSections[i]);
for (int i = 0; i < 256; ++i)
s.syncAsSint16LE(_zoomPercents[i]);
+
+ if (s.getVersion() >= 7)
+ _bgSceneObjects.synchronize(s);
}
void Scene::postInit(SceneObjectList *OwnerList) {
@@ -442,16 +445,15 @@ void Scene::refreshBackground(int xAmount, int yAmount) {
}
if (changedFlag) {
- drawAltObjects();
+ drawBackgroundObjects();
}
}
-void Scene::drawAltObjects() {
+void Scene::drawBackgroundObjects() {
Common::Array<SceneObject *> objList;
// Initial loop to set the priority for entries in the list
- for (SynchronizedList<SceneObject *>::iterator i = _globals->_sceneManager._altSceneObjects.begin();
- i != _globals->_sceneManager._altSceneObjects.end(); ++i) {
+ for (SynchronizedList<SceneObject *>::iterator i = _bgSceneObjects.begin(); i != _bgSceneObjects.end(); ++i) {
SceneObject *obj = *i;
objList.push_back(obj);
@@ -463,7 +465,7 @@ void Scene::drawAltObjects() {
}
// Sort the list by priority
- _globals->_sceneManager._altSceneObjects.sortList(objList);
+ _bgSceneObjects.sortList(objList);
// Drawing loop
for (uint objIndex = 0; objIndex < objList.size(); ++objIndex) {