aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/sfuncs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/sfuncs.cpp')
-rw-r--r--engines/saga/sfuncs.cpp14
1 files changed, 10 insertions, 4 deletions
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) {