diff options
author | Martin Kiewitz | 2009-11-30 19:34:45 +0000 |
---|---|---|
committer | Martin Kiewitz | 2009-11-30 19:34:45 +0000 |
commit | df422c0894e7d7cfc0520ae91b1a1acfb582d3a1 (patch) | |
tree | 429a72981bb379a643781e7800940af8351cdc7c /engines/sci/engine | |
parent | e557075e9059278e7d7dc8354c2d32e12e333463 (diff) | |
download | scummvm-rg350-df422c0894e7d7cfc0520ae91b1a1acfb582d3a1.tar.gz scummvm-rg350-df422c0894e7d7cfc0520ae91b1a1acfb582d3a1.tar.bz2 scummvm-rg350-df422c0894e7d7cfc0520ae91b1a1acfb582d3a1.zip |
SCI: Fix kSetCursor (Sci1.1) to behave like Sierra Sci (fixes cursor hiding/showing in kq6)
svn-id: r46224
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 3f045bba4d..61b8d6b886 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -110,11 +110,20 @@ static reg_t kSetCursorSci11(EngineState *s, int argc, reg_t *argv) { switch (argc) { case 1: - if (argv[0].isNull()) + switch (argv[0].toSint16()) { + case 0: s->_gui->hideCursor(); - else + break; + case -1: + // TODO: Special case at least in kq6, check disassembly + break; + case -2: + // TODO: Special case at least in kq6, check disassembly + break; + default: s->_gui->showCursor(); - break; + break; + } case 2: pos.y = argv[1].toSint16(); pos.x = argv[0].toSint16(); @@ -986,8 +995,6 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { if (argc == 1) return NULL_REG; - s->_gui->hideCursor(); - // The Windows and DOS versions use different video format as well // as a different argument set. if (argv[0].toUint16() == 0) { @@ -1021,8 +1028,6 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { delete seqDecoder; } - s->_gui->showCursor(); - return s->r_acc; } |