diff options
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/kfile.cpp | 2 | ||||
-rw-r--r-- | engines/sci/graphics/frameout.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp index ec166e4b0a..24c96be111 100644 --- a/engines/sci/engine/kfile.cpp +++ b/engines/sci/engine/kfile.cpp @@ -966,6 +966,8 @@ reg_t kCD(EngineState *s, int argc, reg_t *argv) { reg_t kSave(EngineState *s, int argc, reg_t *argv) { switch (argv[0].toUint16()) { + case 0: // Called by kq7 when starting chapters + return SIGNAL_REG; case 2: // GetSaveDir // Yay! Reusing the old kernel function! return kGetSaveDir(s, argc - 1, argv + 1); diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp index 08cf56c5df..71d5b9ebb2 100644 --- a/engines/sci/graphics/frameout.cpp +++ b/engines/sci/graphics/frameout.cpp @@ -188,6 +188,11 @@ void GfxFrameout::kernelFrameout() { planeRect.bottom = (planeRect.bottom * _screen->getHeight()) / scriptsRunningHeight; planeRect.right = (planeRect.right * _screen->getWidth()) / scriptsRunningWidth; + // We get negative left in kq7 in scrolling rooms + if (planeRect.left < 0) + planeRect.left = 0; + if (planeRect.top < 0) + planeRect.top = 0; // We get bad plane-bottom in sq6 if (planeRect.right > _screen->getWidth()) planeRect.right = _screen->getWidth(); |