diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index 886e918fd8e..f78bbf39a3c 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -418,7 +418,8 @@ static SciKernelMapEntry s_kernelMap[] = { { MAP_CALL(ScriptID), SIG_EVERYWHERE, "[io](i)", NULL, NULL }, { MAP_CALL(SetCursor), SIG_SCI21, SIGFOR_ALL, "i(i)([io])(i*)", NULL, NULL }, // TODO: SCI2.1 may supply an object optionally (mother goose sci21 right on startup) - find out why - { MAP_CALL(SetCursor), SIG_EVERYWHERE, "i(i*)", NULL, NULL }, + { MAP_CALL(SetCursor), SIG_SCI11, SIGFOR_ALL, "i(i)(i)(i)(iiiiii)", NULL, NULL }, + { MAP_CALL(SetCursor), SIG_EVERYWHERE, "i(i)(i)(i)(i)", NULL, NULL }, { MAP_CALL(SetDebug), SIG_EVERYWHERE, "(i*)", NULL, NULL }, { MAP_CALL(SetJump), SIG_EVERYWHERE, "oiii", NULL, NULL }, { MAP_CALL(SetMenu), SIG_EVERYWHERE, "i(.*)", NULL, NULL }, diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 3316269e53d..954c306e0c7 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -173,13 +173,6 @@ static reg_t kSetCursorSci11(EngineState *s, int argc, reg_t *argv) { break; } case 5: - case 9: - case 10: // Freddy Pharkas, when using the whiskey glass to read - // the prescription (bug #3034973) - looks like an erroneous - // extra param - // TODO: We don't really use parameter indices 5-9 (with no side - // effects), are they used for something, or are these a result of - // script bugs? hotspot = new Common::Point(argv[3].toSint16(), argv[4].toSint16()); // Fallthrough case 3: @@ -188,6 +181,11 @@ static reg_t kSetCursorSci11(EngineState *s, int argc, reg_t *argv) { else g_sci->_gfxCursor->kernelSetView(argv[0].toUint16(), argv[1].toUint16(), argv[2].toUint16(), hotspot); break; + case 10: + // Freddy pharkas, when using the whiskey glass to read the prescription (bug #3034973) + // magnifier support, disabled using argc == 1, argv == -1 + warning("kSetCursor: unsupported magnifier"); + break; default : error("kSetCursor: Unhandled case: %d arguments given", argc); break;