[Scummvm-cvs-logs] SF.net SVN: scummvm: [28361] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Jul 31 19:41:11 CEST 2007


Revision: 28361
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28361&view=rev
Author:   thebluegr
Date:     2007-07-31 10:41:10 -0700 (Tue, 31 Jul 2007)

Log Message:
-----------
Some updates to the psychic profile in IHNM. sfPsychicProfileOff has been enabled again

Modified Paths:
--------------
    scummvm/trunk/engines/saga/interface.cpp
    scummvm/trunk/engines/saga/scene.cpp
    scummvm/trunk/engines/saga/sfuncs.cpp

Modified: scummvm/trunk/engines/saga/interface.cpp
===================================================================
--- scummvm/trunk/engines/saga/interface.cpp	2007-07-31 17:05:45 UTC (rev 28360)
+++ scummvm/trunk/engines/saga/interface.cpp	2007-07-31 17:41:10 UTC (rev 28361)
@@ -369,18 +369,18 @@
 }
 
 void Interface::rememberMode() {
-	assert (_savedMode == -1);
+	debug(1, "rememberMode(%d)", _savedMode);
 
 	_savedMode = _panelMode;
-
-	debug(1, "rememberMode(%d)", _savedMode);
 }
 
 void Interface::restoreMode(bool draw_) {
-	assert (_savedMode != -1);
-
 	debug(1, "restoreMode(%d)", _savedMode);
 
+	// If _savedMode is -1 by a race condition, set it to kPanelMain
+	if (_savedMode == -1)
+		_savedMode = kPanelMain;
+
 	_panelMode = _savedMode;
 	_savedMode = -1;
 

Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp	2007-07-31 17:05:45 UTC (rev 28360)
+++ scummvm/trunk/engines/saga/scene.cpp	2007-07-31 17:41:10 UTC (rev 28361)
@@ -1361,12 +1361,13 @@
 }
 
 void Scene::clearPsychicProfile() {
-	_vm->_scene->clearPlacard();
-	_vm->_actor->showActors(false);
-	_vm->_gfx->restorePalette();
-	_vm->_scene->restoreScene();
-	_vm->_interface->setMode(kPanelMain);
-	_vm->_interface->activate();
+	if (_vm->_interface->getMode() == kPanelPlacard) {
+		_vm->_scene->clearPlacard();
+		_vm->_actor->showActors(false);
+		_vm->_gfx->restorePalette();
+		_vm->_scene->restoreScene();
+		_vm->_interface->activate();
+	}
 }
 
 void Scene::showIHNMDemoSpecialScreen() {

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2007-07-31 17:05:45 UTC (rev 28360)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2007-07-31 17:41:10 UTC (rev 28361)
@@ -1519,8 +1519,9 @@
 void Script::sfPsychicProfileOff(SCRIPTFUNC_PARAMS) {
 	thread->wait(kWaitTypePlacard);
 
-	// This is not used
-	//_vm->_scene->clearPsychicProfile();
+	// This is called a while after the psychic profile is
+	// opened, to close it automatically
+	_vm->_scene->clearPsychicProfile();
 }
 
 // Script function #50 (0x32)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list