aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gui/gui_palette.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gui/gui_palette.cpp')
-rw-r--r--engines/sci/gui/gui_palette.cpp8
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();
}