diff options
Diffstat (limited to 'engines/tsage/scenes.cpp')
-rw-r--r-- | engines/tsage/scenes.cpp | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp index 58bb8c4a44..80ce1e3ecc 100644 --- a/engines/tsage/scenes.cpp +++ b/engines/tsage/scenes.cpp @@ -8,12 +8,12 @@ * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -43,6 +43,7 @@ SceneManager::SceneManager() { g_saver->addListener(this); _objectCount = 0; _loadMode = 0; + _sceneLoadCount = 0; } SceneManager::~SceneManager() { @@ -149,6 +150,7 @@ void SceneManager::fadeInIfNecessary() { void SceneManager::changeScene(int newSceneNumber) { debug(1, "changeScene(%d)", newSceneNumber); + // Fade out the scene ScenePalette scenePalette; uint32 adjustData = 0; @@ -273,6 +275,8 @@ Scene::Scene() : _sceneBounds(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), _activeScreenNumber = 0; _oldSceneBounds = Rect(4000, 4000, 4100, 4100); Common::fill(&_zoomPercents[0], &_zoomPercents[256], 0); + + _screenNumber = 0; } Scene::~Scene() { @@ -282,15 +286,23 @@ void Scene::synchronize(Serializer &s) { if (s.getVersion() >= 2) StripCallback::synchronize(s); - s.syncAsSint32LE(_field12); + if (s.getVersion() < 14) { + int useless = 0; + s.syncAsSint32LE(useless); + } + s.syncAsSint32LE(_screenNumber); s.syncAsSint32LE(_activeScreenNumber); s.syncAsSint32LE(_sceneMode); _backgroundBounds.synchronize(s); _sceneBounds.synchronize(s); _oldSceneBounds.synchronize(s); - s.syncAsSint16LE(_fieldA); - s.syncAsSint16LE(_fieldE); + + if (s.getVersion() < 14) { + int useless = 0; + s.syncAsSint16LE(useless); + s.syncAsSint16LE(useless); + } for (int i = 0; i < 256; ++i) s.syncAsUint16LE(_enabledSections[i]); @@ -303,7 +315,6 @@ void Scene::synchronize(Serializer &s) { void Scene::postInit(SceneObjectList *OwnerList) { _action = NULL; - _field12 = 0; _sceneMode = 0; } |