[Scummvm-cvs-logs] scummvm master -> 4f70162d94bf4a7a18e0b42e48bbdabf39cb84f8

dreammaster dreammaster at scummvm.org
Tue May 3 12:15:50 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4f70162d94 TSAGE: Bugfixes to savegames when the scene is showing an alternate screen


Commit: 4f70162d94bf4a7a18e0b42e48bbdabf39cb84f8
    https://github.com/scummvm/scummvm/commit/4f70162d94bf4a7a18e0b42e48bbdabf39cb84f8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-05-03T03:14:20-07:00

Commit Message:
TSAGE: Bugfixes to savegames when the scene is showing an alternate screen

Changed paths:
    engines/tsage/converse.cpp
    engines/tsage/core.cpp
    engines/tsage/scenes.cpp



diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index c4358dc..82420b2 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -53,6 +53,8 @@ void SequenceManager::setup() {
 }
 
 void SequenceManager::synchronise(Serialiser &s) {
+	Action::synchronise(s);
+
 	s.syncAsSint32LE(_resNum);
 	s.syncAsSint32LE(_sequenceOffset);
 	s.syncAsByte(_keepActive);
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index f03f10f..51f472a 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -110,8 +110,6 @@ Action::Action() {
 
 void Action::synchronise(Serialiser &s) {
 	EventHandler::synchronise(s);
-	if (s.isLoading())
-		remove();
 
 	SYNC_POINTER(_owner);
 	s.syncAsSint32LE(_actionIndex);
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index 9a99049..a59c86c 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -62,9 +62,13 @@ void SceneManager::checkScene() {
 }
 
 void SceneManager::sceneChange() {
+	int activeScreenNumber = 0;
+
 	// Handle removing the scene
-	if (_scene)
+	if (_scene) {
+		activeScreenNumber = _scene->_activeScreenNumber;
 		_scene->remove();
+	}
 
 	// Clear the scene objects
 	SynchronisedList<SceneObject *>::iterator io = _globals->_sceneObjects->begin();
@@ -122,7 +126,7 @@ void SceneManager::sceneChange() {
 	if (!_saver->getMacroRestoreFlag())
 		_scene->postInit();
 	else
-		_scene->loadScene(_sceneNumber);
+		_scene->loadScene(activeScreenNumber);
 }
 
 Scene *SceneManager::getNewScene() {
@@ -225,15 +229,16 @@ void SceneManager::setBgOffset(const Common::Point &pt, int loadCount) {
 
 void SceneManager::listenerSynchronise(Serialiser &s) {
 	s.validate("SceneManager");
-	_altSceneObjects.synchronise(s);
 
+	_altSceneObjects.synchronise(s);
 	s.syncAsSint32LE(_sceneNumber);
+	s.syncAsUint16LE(_globals->_sceneManager._scene->_activeScreenNumber);
+
 	if (s.isLoading()) {
 		changeScene(_sceneNumber);
 		checkScene();
 	}
 
-	s.syncAsUint16LE(_globals->_sceneManager._scene->_activeScreenNumber);
 	_globals->_sceneManager._scrollerRect.synchronise(s);
 	SYNC_POINTER(_globals->_scrollFollower);
 	s.syncAsSint16LE(_loadMode);
@@ -252,6 +257,8 @@ Scene::~Scene() {
 }
 
 void Scene::synchronise(Serialiser &s) {
+	StripCallback::synchronise(s);
+
 	s.syncAsSint32LE(_field12);
 	s.syncAsSint32LE(_screenNumber);
 	s.syncAsSint32LE(_activeScreenNumber);






More information about the Scummvm-git-logs mailing list