[Scummvm-cvs-logs] scummvm master -> 78c00744c21b95e98f022f037dbb38591112a104
wjp
wjp at usecode.org
Fri Mar 4 00:29:00 CET 2011
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
78c00744c2 SCI: Add fixme for EGA flood fill bug (#3078365)
Commit: 78c00744c21b95e98f022f037dbb38591112a104
https://github.com/scummvm/scummvm/commit/78c00744c21b95e98f022f037dbb38591112a104
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-03-03T15:28:23-08:00
Commit Message:
SCI: Add fixme for EGA flood fill bug (#3078365)
Changed paths:
engines/sci/graphics/screen.cpp
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index b019853..ef2bffc 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -357,6 +357,13 @@ byte GfxScreen::isFillMatch(int16 x, int16 y, byte screenMask, byte t_color, byt
int offset = y * _width + x;
byte match = 0;
+ // FIXME:
+ // This does not behave properly in EGA games where a pixel in the
+ // framebuffer is only 4 bits. We store a full byte per pixel to allow
+ // undithering, but when comparing pixels for flood-fill purposes, we
+ // should only compare the visible color of a pixel (with dithering
+ // enabled). See bug #3078365. Also see IS_BOUNDARY in FreeSCI's picfill.
+
if ((screenMask & GFX_SCREEN_MASK_VISUAL) && *(_visualScreen + offset) == t_color)
match |= GFX_SCREEN_MASK_VISUAL;
if ((screenMask & GFX_SCREEN_MASK_PRIORITY) && *(_priorityScreen + offset) == t_pri)
More information about the Scummvm-git-logs
mailing list