[Scummvm-cvs-logs] SF.net SVN: scummvm: [27916] scummvm/trunk/engines/saga/sfuncs.cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Thu Jul 5 05:37:24 CEST 2007
Revision: 27916
http://scummvm.svn.sourceforge.net/scummvm/?rev=27916&view=rev
Author: thebluegr
Date: 2007-07-04 20:37:23 -0700 (Wed, 04 Jul 2007)
Log Message:
-----------
Implemented the rest of the differences of the sfScriptGotoScene opcode in IHNM
Modified Paths:
--------------
scummvm/trunk/engines/saga/sfuncs.cpp
Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp 2007-07-05 02:01:22 UTC (rev 27915)
+++ scummvm/trunk/engines/saga/sfuncs.cpp 2007-07-05 03:37:23 UTC (rev 27916)
@@ -548,19 +548,20 @@
sceneNumber = thread->pop();
entrance = thread->pop();
- if (_vm->getGameType() == GType_IHNM)
+ if (_vm->getGameType() == GType_IHNM) {
transition = thread->pop();
- if (sceneNumber < 0) {
- if (_vm->getGameType() == GType_ITE) {
- _vm->shutDown();
- return;
- }
+ _vm->_gfx->setCursor(kCursorBusy);
}
+ if ((_vm->getGameType() == GType_ITE && sceneNumber < 0) ||
+ (_vm->getGameType() == GType_IHNM && sceneNumber == 0)) {
+ // TODO: set creditsFlag to true for IHNM
+ _vm->shutDown();
+ return;
+ }
+
if (_vm->getGameType() == GType_IHNM) {
- warning("FIXME: implement sfScriptGotoScene differences for IHNM");
-
// Since it doesn't look like the IHNM scripts remove the
// cutaway after the intro, this is probably the best place to
// to it.
@@ -574,6 +575,7 @@
_vm->_interface->setMode(kPanelMain);
}
+ // changeScene calls loadScene which calls setVerb. setVerb resets all pending objects and object flags
if (sceneNumber == -1 && _vm->getGameType() == GType_IHNM) {
// TODO: This is used to return back to the character selection screen in IHNM.
// However, it seems more than this is needed, AM's speech is wrong and no actors
@@ -583,10 +585,19 @@
_vm->_scene->changeScene(sceneNumber, entrance, (sceneNumber == ITE_SCENE_ENDCREDIT1) ? kTransitionFade : kTransitionNoFade);
}
- //TODO: placard stuff
+ if (_vm->_interface->getMode() == kPanelPlacard ||
+ _vm->_interface->getMode() == kPanelCutaway ||
+ _vm->_interface->getMode() == kPanelVideo) {
+ _vm->_gfx->showCursor(true);
+ _vm->_interface->setMode(kPanelMain);
+ }
+
_pendingVerb = _vm->_script->getVerbType(kVerbNone);
_currentObject[0] = _currentObject[1] = ID_NOTHING;
- showVerb();
+ showVerb(); // calls setStatusText("")
+
+ if (_vm->getGameType() == GType_IHNM)
+ _vm->_gfx->setCursor(kCursorNormal);
}
// Script function #17 (0x11)
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