From b242d05563069f70a39c863bd1f2b3ac962602cc Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 29 May 2009 09:42:11 +0000 Subject: - 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 --- engines/sci/engine/game.cpp | 2 ++ engines/sci/engine/kgraphics.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine') 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) { -- cgit v1.2.3