aboutsummaryrefslogtreecommitdiff
path: root/engines/tucker/graphics.cpp
diff options
context:
space:
mode:
authorGregory Montoir2011-02-17 16:09:38 +0100
committerGregory Montoir2011-02-18 15:18:44 +0100
commite552b5a8c3b36871b40be49855553865d2471a66 (patch)
treee5226b7ccb312a346b46122f96b45df6933ca106 /engines/tucker/graphics.cpp
parent3557ff5747cbbc8578f2b7ef934b3344d252e4a0 (diff)
downloadscummvm-rg350-e552b5a8c3b36871b40be49855553865d2471a66.tar.gz
scummvm-rg350-e552b5a8c3b36871b40be49855553865d2471a66.tar.bz2
scummvm-rg350-e552b5a8c3b36871b40be49855553865d2471a66.zip
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.
Diffstat (limited to 'engines/tucker/graphics.cpp')
-rw-r--r--engines/tucker/graphics.cpp4
1 files changed, 2 insertions, 2 deletions
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 {