diff options
Diffstat (limited to 'engines/sci/gui/gui_palette.cpp')
-rw-r--r-- | engines/sci/gui/gui_palette.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/gui/gui_palette.cpp b/engines/sci/gui/gui_palette.cpp index b9f75e464a..d979491d1d 100644 --- a/engines/sci/gui/gui_palette.cpp +++ b/engines/sci/gui/gui_palette.cpp @@ -144,6 +144,7 @@ bool SciGuiPalette::setAmiga() { void SciGuiPalette::setEGA() { int i; + byte color1, color2; _sysPalette.colors[1].r = 0x000; _sysPalette.colors[1].g = 0x000; _sysPalette.colors[1].b = 0x0AA; _sysPalette.colors[2].r = 0x000; _sysPalette.colors[2].g = 0x0AA; _sysPalette.colors[2].b = 0x000; _sysPalette.colors[3].r = 0x000; _sysPalette.colors[3].g = 0x0AA; _sysPalette.colors[3].b = 0x0AA; @@ -162,9 +163,14 @@ void SciGuiPalette::setEGA() { for (i = 0; i <= 15; i++) { _sysPalette.colors[i].used = 1; } + // Now setting colors 16-254 to the correct mix colors that occur when not doing a dithering run on + // finished pictures for (i = 16; i <= 254; i++) { - _sysPalette.colors[i].r = 200; _sysPalette.colors[i].used = 1; + color1 = i & 0x0F; color2 = i >> 4; + _sysPalette.colors[i].r = (_sysPalette.colors[color1].r >> 1) + (_sysPalette.colors[color2].r >> 1); + _sysPalette.colors[i].g = (_sysPalette.colors[color1].g >> 1) + (_sysPalette.colors[color2].g >> 1); + _sysPalette.colors[i].b = (_sysPalette.colors[color1].b >> 1) + (_sysPalette.colors[color2].b >> 1); } setOnScreen(); } |