aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/picture.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2010-02-02 16:25:35 +0000
committerMartin Kiewitz2010-02-02 16:25:35 +0000
commit714665f9d9bde9bf337160276c50b662a5501442 (patch)
tree22f6cb8390a6fbff1838978766a17ba65a74531a /engines/sci/graphics/picture.cpp
parentb0208e7306c40a41b0e5b6365f0c49f8aebe3b94 (diff)
downloadscummvm-rg350-714665f9d9bde9bf337160276c50b662a5501442.tar.gz
scummvm-rg350-714665f9d9bde9bf337160276c50b662a5501442.tar.bz2
scummvm-rg350-714665f9d9bde9bf337160276c50b662a5501442.zip
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
Diffstat (limited to 'engines/sci/graphics/picture.cpp')
-rw-r--r--engines/sci/graphics/picture.cpp23
1 files changed, 19 insertions, 4 deletions
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);