From 714665f9d9bde9bf337160276c50b662a5501442 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Tue, 2 Feb 2010 16:25:35 +0000 Subject: SCI: some sort of priority support for sci32 (not working right, but at least the menu in gk1 now correctly shows up) svn-id: r47814 --- engines/sci/graphics/picture.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'engines/sci/graphics/picture.cpp') diff --git a/engines/sci/graphics/picture.cpp b/engines/sci/graphics/picture.cpp index 96683ba344..a2dc25f797 100644 --- a/engines/sci/graphics/picture.cpp +++ b/engines/sci/graphics/picture.cpp @@ -117,7 +117,12 @@ void SciGuiPicture::drawSci11Vga() { } #ifdef ENABLE_SCI32 -void SciGuiPicture::drawSci32Vga() { +int16 SciGuiPicture::getSci32celCount() { + byte *inbuffer = _resource->data; + return inbuffer[2]; +} + +void SciGuiPicture::drawSci32Vga(int16 celNo) { byte *inbuffer = _resource->data; int size = _resource->size; int header_size = READ_LE_UINT16(inbuffer); @@ -128,9 +133,19 @@ void SciGuiPicture::drawSci32Vga() { int cel_relXpos, cel_relYpos; Palette palette; - // Create palette and set it - _palette->createFromData(inbuffer + palette_data_ptr, &palette); - _palette->set(&palette, true); + // HACK + _mirroredFlag = false; + _addToFlag = false; + + if ((celNo == -1) || (celNo == 0)) { + // Create palette and set it + _palette->createFromData(inbuffer + palette_data_ptr, &palette); + _palette->set(&palette, true); + } + if (celNo != -1) { + cel_headerPos += 42 * celNo; + celCount = 1; + } while (celCount > 0) { cel_RlePos = READ_LE_UINT16(inbuffer + cel_headerPos + 24); -- cgit v1.2.3