diff options
Diffstat (limited to 'engines/sci/engine/kgraphics.cpp')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 63adcf9ed8..6ca6525aec 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -144,14 +144,19 @@ static reg_t kSetCursorSci11(EngineState *s, int argc, reg_t *argv) { g_sci->_gfxCursor->kernelSetPos(pos); break; case 4: { - int16 top = argv[0].toSint16(); - int16 left = argv[1].toSint16(); - int16 bottom = argv[2].toSint16(); - int16 right = argv[3].toSint16(); - - // In SCI32, the right parameter seems to be divided by 2 - if (getSciVersion() >= SCI_VERSION_2) - right *= 2; + int16 top, left, bottom, right; + + if (getSciVersion() >= SCI_VERSION_2) { + top = argv[1].toSint16(); + left = argv[0].toSint16(); + bottom = argv[3].toSint16(); + right = argv[2].toSint16(); + } else { + top = argv[0].toSint16(); + left = argv[1].toSint16(); + bottom = argv[2].toSint16(); + right = argv[3].toSint16(); + } if ((right >= left) && (bottom >= top)) { Common::Rect rect = Common::Rect(left, top, right, bottom); |