aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2009-05-29 09:42:11 +0000
committerFilippos Karapetis2009-05-29 09:42:11 +0000
commitb242d05563069f70a39c863bd1f2b3ac962602cc (patch)
tree95e9f23d325dbec4338b57b51284333953d8b3da /engines/sci/engine
parentc95e5fceeeefb1e52c6456224626680930ecbd84 (diff)
downloadscummvm-rg350-b242d05563069f70a39c863bd1f2b3ac962602cc.tar.gz
scummvm-rg350-b242d05563069f70a39c863bd1f2b3ac962602cc.tar.bz2
scummvm-rg350-b242d05563069f70a39c863bd1f2b3ac962602cc.zip
- Fixed usage of kSetCursor in SCI1.1 games (e.g. when starting KQ6 floppy)
- Removed a static variable (vocab_version) - vocab.996 is now freed after creating the class table in SCI1 games, like in SCI0 games svn-id: r40979
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/game.cpp2
-rw-r--r--engines/sci/engine/kgraphics.cpp11
2 files changed, 11 insertions, 2 deletions
diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp
index b8af8bdc34..b8cf1d8d32 100644
--- a/engines/sci/engine/game.cpp
+++ b/engines/sci/engine/game.cpp
@@ -265,6 +265,8 @@ int create_class_table_sci11(EngineState *s) {
}
}
+ s->resmgr->unlockResource(vocab996, 996, kResourceTypeVocab);
+ vocab996 = NULL;
return 0;
}
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index a587f4eb87..b33b89577c 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -302,8 +302,15 @@ static gfx_color_t graph_map_color(EngineState *s, int color, int priority, int
reg_t kSetCursor(EngineState *s, int funct_nr, int argc, reg_t *argv) {
switch (argc) {
- case 1 : // set cursor according to the first parameter
- GFX_ASSERT(gfxop_set_pointer_cursor(s->gfx_state, SKPV(0)));
+ case 1 :
+ if (s->version < SCI_VERSION_1_1) {
+ // Pre-SCI1.1: set cursor according to the first parameter
+ GFX_ASSERT(gfxop_set_pointer_cursor(s->gfx_state, SKPV(0)));
+ } else {
+ // SCI1.1: Hide cursor
+ if (SKPV(0) == 0)
+ GFX_ASSERT(gfxop_set_pointer_cursor(s->gfx_state, GFXOP_NO_POINTER));
+ }
break;
case 2 :
if (s->version < SCI_VERSION_1_1) {