aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2009-11-30 19:34:45 +0000
committerMartin Kiewitz2009-11-30 19:34:45 +0000
commitdf422c0894e7d7cfc0520ae91b1a1acfb582d3a1 (patch)
tree429a72981bb379a643781e7800940af8351cdc7c /engines/sci/engine
parente557075e9059278e7d7dc8354c2d32e12e333463 (diff)
downloadscummvm-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.cpp19
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;
}