From e552b5a8c3b36871b40be49855553865d2471a66 Mon Sep 17 00:00:00 2001 From: Gregory Montoir Date: Thu, 17 Feb 2011 16:09:38 +0100 Subject: TUCKER: fix #3106542 - Ego drawn behind background Looks like an original game glitch, the location 14 background bitmap contains some pixels in range [0xE0-0xF8] which is usually reserved ; add workaround. --- engines/tucker/graphics.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/tucker/graphics.cpp') diff --git a/engines/tucker/graphics.cpp b/engines/tucker/graphics.cpp index 52018d25e6..163719197d 100644 --- a/engines/tucker/graphics.cpp +++ b/engines/tucker/graphics.cpp @@ -112,7 +112,7 @@ void Graphics::decodeRLE_224(uint8 *dst, const uint8 *src, int w, int h) { } } -void Graphics::decodeRLE_248(uint8 *dst, const uint8 *src, int w, int h, int y1, int y2, bool xflip) { +void Graphics::decodeRLE_248(uint8 *dst, const uint8 *src, int w, int h, int y1, int y2, bool xflip, bool color248Only) { int code = 0; int color = 0; for (int y = 0; y < h; ++y) { @@ -125,7 +125,7 @@ void Graphics::decodeRLE_248(uint8 *dst, const uint8 *src, int w, int h, int y1, } } if (color != 0) { - if ((dst[offset] < 0xE0 || y + y1 < y2) && dst[offset] < 0xF8) { + if ((color248Only || dst[offset] < 0xE0 || y + y1 < y2) && dst[offset] < 0xF8) { dst[offset] = color; } } else { -- cgit v1.2.3