aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/adl/display.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/engines/adl/display.cpp b/engines/adl/display.cpp
index d05257792c..2cf50f72fc 100644
--- a/engines/adl/display.cpp
+++ b/engines/adl/display.cpp
@@ -55,6 +55,9 @@ static const byte colorPalette[COLOR_PALETTE_ENTRIES * 3] = {
0xf2, 0x5e, 0x00
};
+// Opacity of the optional scanlines (percentage)
+#define SCANLINE_OPACITY 75
+
// Corresponding color in second palette
#define PAL2(X) ((X) | 0x04)
@@ -334,14 +337,16 @@ void Display::writeFrameBuffer(const Common::Point &p, byte color, byte mask) {
}
void Display::showScanlines(bool enable) {
- byte pal[COLOR_PALETTE_ENTRIES * 3] = { };
+ byte pal[COLOR_PALETTE_ENTRIES * 3];
+
+ g_system->getPaletteManager()->grabPalette(pal, 0, COLOR_PALETTE_ENTRIES);
- if (enable)
- g_system->getPaletteManager()->setPalette(pal, COLOR_PALETTE_ENTRIES, COLOR_PALETTE_ENTRIES);
- else {
- g_system->getPaletteManager()->grabPalette(pal, 0, COLOR_PALETTE_ENTRIES);
- g_system->getPaletteManager()->setPalette(pal, COLOR_PALETTE_ENTRIES, COLOR_PALETTE_ENTRIES);
+ if (enable) {
+ for (uint i = 0; i < ARRAYSIZE(pal); ++i)
+ pal[i] = pal[i] * (100 - SCANLINE_OPACITY) / 100;
}
+
+ g_system->getPaletteManager()->setPalette(pal, COLOR_PALETTE_ENTRIES, COLOR_PALETTE_ENTRIES);
}
static byte processColorBits(uint16 &bits, bool &odd, bool secondPal) {