diff options
author | Johannes Schickel | 2010-10-13 03:57:44 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-10-13 03:57:44 +0000 |
commit | 75e8452b6e6a2bf4fb2f588aa00b428a60d873b5 (patch) | |
tree | f29541d55309487a94bd1d38e8b53bb3dde9aec6 /engines/sci/graphics/picture.cpp | |
parent | 48ee83b88957dab86bc763e9ef21a70179fa8679 (diff) | |
parent | e9f50882ea5b6beeefa994040be9d3bab6a1f107 (diff) | |
download | scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.gz scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.bz2 scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.zip |
OPENGL: Merged from trunk, from rev 52105 to 53396.
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.
Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.
svn-id: r53399
Diffstat (limited to 'engines/sci/graphics/picture.cpp')
-rw-r--r-- | engines/sci/graphics/picture.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/engines/sci/graphics/picture.cpp b/engines/sci/graphics/picture.cpp index e568316919..39666b82cb 100644 --- a/engines/sci/graphics/picture.cpp +++ b/engines/sci/graphics/picture.cpp @@ -120,10 +120,6 @@ void GfxPicture::drawSci11Vga() { // [priorityBandData:WORD] * priorityBandCount // [priority:BYTE] [unknown:BYTE] - // Create palette and set it - _palette->createFromData(inbuffer + palette_data_ptr, size - palette_data_ptr, &palette); - _palette->set(&palette, true); - // priority bands are supposed to be 14 for sci1.1 pictures assert(priorityBandsCount == 14); @@ -132,8 +128,13 @@ void GfxPicture::drawSci11Vga() { } // display Cel-data - if (has_cel) + if (has_cel) { + // Create palette and set it + _palette->createFromData(inbuffer + palette_data_ptr, size - palette_data_ptr, &palette); + _palette->set(&palette, true); + drawCelData(inbuffer, size, cel_headerPos, cel_RlePos, cel_LiteralPos, 0, 0, 0); + } // process vector data drawVectorData(inbuffer + vector_dataPos, vector_size); @@ -852,11 +853,11 @@ void GfxPicture::vectorFloodFill(int16 x, int16 y, byte color, byte priority, by // Now remove screens, that already got the right color/priority/control if ((screenMask & GFX_SCREEN_MASK_VISUAL) && (searchColor == color)) - screenMask ^= GFX_SCREEN_MASK_VISUAL; + screenMask &= ~GFX_SCREEN_MASK_VISUAL; if ((screenMask & GFX_SCREEN_MASK_PRIORITY) && (searchPriority == priority)) - screenMask ^= GFX_SCREEN_MASK_PRIORITY; + screenMask &= ~GFX_SCREEN_MASK_PRIORITY; if ((screenMask & GFX_SCREEN_MASK_CONTROL) && (searchControl == control)) - screenMask ^= GFX_SCREEN_MASK_CONTROL; + screenMask &= ~GFX_SCREEN_MASK_CONTROL; // Exit, if no screens left if (!screenMask) |