aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2007-06-13 13:00:25 +0000
committerFilippos Karapetis2007-06-13 13:00:25 +0000
commit85658095525c9472b1c2b59fbde3ac496830a2d2 (patch)
tree5961158f07c9043a6ebdb61f2750c844ceb50c3d
parenta0cd025a16a365a5ef366ef8149c7e26216e7832 (diff)
downloadscummvm-rg350-85658095525c9472b1c2b59fbde3ac496830a2d2.tar.gz
scummvm-rg350-85658095525c9472b1c2b59fbde3ac496830a2d2.tar.bz2
scummvm-rg350-85658095525c9472b1c2b59fbde3ac496830a2d2.zip
IHNM: Fixed sfSetSpeechBox, now the dialog of Nimdok and Mengele will show up correctly. Also, done some preliminary work on sfScriptGotoScene and changeScene to return to the character selection screen, but it's not right yet
svn-id: r27385
-rw-r--r--engines/saga/scene.cpp6
-rw-r--r--engines/saga/sfuncs.cpp14
2 files changed, 16 insertions, 4 deletions
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index 839beca349..b83e1e29f9 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -477,6 +477,12 @@ void Scene::changeScene(int16 sceneNumber, int actorsEntrance, SceneTransitionTy
if (sceneNumber != -2) {
endScene();
}
+
+ if (sceneParams.sceneDescriptor == -1 && _vm->getGameType() == GType_IHNM) {
+ sceneParams.chapter = 8;
+ sceneParams.sceneDescriptor = 152;
+ }
+
loadScene(&sceneParams);
}
diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp
index 08e80cb799..c84a09e7bf 100644
--- a/engines/saga/sfuncs.cpp
+++ b/engines/saga/sfuncs.cpp
@@ -544,12 +544,18 @@ void Script::sfSetFollower(SCRIPTFUNC_PARAMS) {
void Script::sfScriptGotoScene(SCRIPTFUNC_PARAMS) {
int16 sceneNumber;
int16 entrance;
+ int16 transition = 0; // IHNM
sceneNumber = thread->pop();
entrance = thread->pop();
+ if (_vm->getGameType() == GType_IHNM)
+ transition = thread->pop();
+
if (sceneNumber < 0) {
- _vm->shutDown();
- return;
+ if (_vm->getGameType() == GType_ITE) {
+ _vm->shutDown();
+ return;
+ }
}
if (_vm->getGameType() == GType_IHNM) {
@@ -2053,8 +2059,8 @@ void Script::sfSetSpeechBox(SCRIPTFUNC_PARAMS) {
_vm->_actor->_speechBoxScript.left = param1;
_vm->_actor->_speechBoxScript.top = param2;
- _vm->_actor->_speechBoxScript.setWidth(param3);
- _vm->_actor->_speechBoxScript.setHeight(param4);
+ _vm->_actor->_speechBoxScript.setWidth(param3 - param1);
+ _vm->_actor->_speechBoxScript.setHeight(param4 - param2);
}
void Script::sfDebugShowData(SCRIPTFUNC_PARAMS) {