[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