diff options
author | Martin Kiewitz | 2009-10-05 22:42:41 +0000 |
---|---|---|
committer | Martin Kiewitz | 2009-10-05 22:42:41 +0000 |
commit | 30596adec20f5b19636c7053bc69d5bc66236f95 (patch) | |
tree | 578bbbfc925c69c05991191d81cfad0e65576d83 | |
parent | 20125b51c49004c827fde6011a3e4c873b47c1f3 (diff) | |
download | scummvm-rg350-30596adec20f5b19636c7053bc69d5bc66236f95.tar.gz scummvm-rg350-30596adec20f5b19636c7053bc69d5bc66236f95.tar.bz2 scummvm-rg350-30596adec20f5b19636c7053bc69d5bc66236f95.zip |
SCI/newgui: Implemented trick to get dithering going after drawing picture w/o destroying statusbar
svn-id: r44681
-rw-r--r-- | engines/sci/gui/gui_picture.cpp | 7 | ||||
-rw-r--r-- | engines/sci/gui/gui_screen.cpp | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/engines/sci/gui/gui_picture.cpp b/engines/sci/gui/gui_picture.cpp index e3b89ca816..1ba69b9849 100644 --- a/engines/sci/gui/gui_picture.cpp +++ b/engines/sci/gui/gui_picture.cpp @@ -321,8 +321,11 @@ void SciGuiPicture::drawVectorData(byte *data, int dataSize) { //warning("%X at %d", data[curPos], curPos); switch (pic_op = data[curPos++]) { case PIC_OP_SET_COLOR: - byte = data[curPos++]; - pic_color = isEGA ? EGApalette[byte] : byte; + pic_color = data[curPos++]; + if (isEGA) { + pic_color = EGApalette[pic_color]; + pic_color ^= pic_color << 4; + } break; case PIC_OP_DISABLE_VISUAL: pic_color = 0xFF; diff --git a/engines/sci/gui/gui_screen.cpp b/engines/sci/gui/gui_screen.cpp index 36826c77ba..c4429e57c9 100644 --- a/engines/sci/gui/gui_screen.cpp +++ b/engines/sci/gui/gui_screen.cpp @@ -204,8 +204,12 @@ void SciGuiScreen::dither() { for (y = 0; y < _height; y++) { for (x = 0; x < _width; x++) { color = *screenPtr; - color = ((x^y) & 1) ? color >> 4 : color & 0x0F; - *screenPtr++ = color; *displayPtr++ = color; + if (color & 0xF0) { + color ^= color << 4; + color = ((x^y) & 1) ? color >> 4 : color & 0x0F; + *screenPtr = color; *displayPtr = color; + } + screenPtr++; displayPtr++; } } } |