[Scummvm-cvs-logs] scummvm master -> 13efaff2ad15e6cef488d14a274a1d7b679e3adf

dreammaster dreammaster at scummvm.org
Thu Apr 28 12:47:25 CEST 2011


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

Summary:
1651ac8ca2 TSAGE: Proper bugfix for problem saving/restoring game in Scene #5000 and others
13efaff2ad TSAGE: Proper setting of startup cursor for full game versus demo


Commit: 1651ac8ca2548a8f81af975d20894498008edf99
    https://github.com/scummvm/scummvm/commit/1651ac8ca2548a8f81af975d20894498008edf99
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-04-28T03:41:00-07:00

Commit Message:
TSAGE: Proper bugfix for problem saving/restoring game in Scene #5000 and others

Changed paths:
    engines/tsage/globals.cpp
    engines/tsage/saveload.cpp
    engines/tsage/scenes.cpp



diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp
index 2dc4107..3914d77 100644
--- a/engines/tsage/globals.cpp
+++ b/engines/tsage/globals.cpp
@@ -43,11 +43,6 @@ static SavedObject *classFactoryProc(const Common::String &className) {
 	if (className == "ObjectMover2") return new ObjectMover2();
 	if (className == "ObjectMover3") return new ObjectMover3();
 	if (className == "PlayerMover") return new PlayerMover();
-	// The following is needed, as saved games can contain SceneObjectWrapper
-	// objects (e.g. scene 4050 and 5000).
-	// FIXME: Since SceneObjectWrapper objects are contained within other
-	// objects, I'm not quite sure if this is the best solution (however, saved
-	// games do work with this). If this is correct, please remove this FIXME.
 	if (className == "SceneObjectWrapper") return new SceneObjectWrapper();
 
 	return NULL;
diff --git a/engines/tsage/saveload.cpp b/engines/tsage/saveload.cpp
index 3c9af87..8b07767 100644
--- a/engines/tsage/saveload.cpp
+++ b/engines/tsage/saveload.cpp
@@ -177,16 +177,6 @@ Common::Error Saver::restore(int slot) {
 
 	// Loop through each registered object to load in the data
 	for (SynchronisedList<SavedObject *>::iterator i = _objList.begin(); i != _objList.end(); ++i) {
-		// Saved games can contain PlayerMover objects, but these aren't synchronized.
-		// Fixes loading in scene 5000.
-		// TODO/FIXME: Add a more proper handling for these objects
-		if ((*i)->getClassName() == "PlayerMover") {
-			warning("HACK: PlayerMover object found, removing it");
-			// Remove that object from the list
-			i = _objList.erase(i);
-			assert(i ==  _objList.end());
-			break;
-		}
 		serialiser.validate((*i)->getClassName());
 		(*i)->synchronise(serialiser);
 	}
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index e316a60..f5f3444 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -117,7 +117,11 @@ void SceneManager::sceneChange() {
 
 	// Instantiate and set the new scene
 	_scene = getNewScene();
-	_scene->postInit();
+
+	if (!_saver->getMacroRestoreFlag())
+		_scene->postInit();
+	else
+		_scene->loadScene(_sceneNumber);
 }
 
 Scene *SceneManager::getNewScene() {
@@ -289,7 +293,7 @@ void Scene::loadScene(int sceneNum) {
 }
 
 void Scene::loadSceneData(int sceneNum) {
-	_globals->_sceneManager._scene->_activeScreenNumber = sceneNum;
+	_activeScreenNumber = sceneNum;
 
 	// Get the basic scene size
 	byte *data = _resourceManager->getResource(RES_BITMAP, sceneNum, 9999);


Commit: 13efaff2ad15e6cef488d14a274a1d7b679e3adf
    https://github.com/scummvm/scummvm/commit/13efaff2ad15e6cef488d14a274a1d7b679e3adf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-04-28T03:41:01-07:00

Commit Message:
TSAGE: Proper setting of startup cursor for full game versus demo

Changed paths:
    engines/tsage/ringworld_logic.cpp



diff --git a/engines/tsage/ringworld_logic.cpp b/engines/tsage/ringworld_logic.cpp
index 0a2220c..d8fef02 100644
--- a/engines/tsage/ringworld_logic.cpp
+++ b/engines/tsage/ringworld_logic.cpp
@@ -1319,6 +1319,8 @@ void RingworldGame::start() {
 
 	// Switch to the title screen
 	_globals->_sceneManager.setNewScene(1000);
+
+	_globals->_events.showCursor();
 }
 
 void RingworldGame::restart() {
@@ -1407,6 +1409,8 @@ void RingworldGame::endGame(int resNum, int lineNum) {
 void RingworldDemoGame::start() {
 	// Start the demo's single scene
 	_globals->_sceneManager.changeScene(1);
+	
+	_globals->_events.setCursor(CURSOR_NONE);
 }
 
 void RingworldDemoGame::restart() {






More information about the Scummvm-git-logs mailing list