Skip to content

Commit

Permalink
SCI: change floodfill fix for sq4
Browse files Browse the repository at this point in the history
behaviour wasn't changed in SCI1, instead it seems that SSCI draws overlays to separate memory and then copies them over. Previous commit caused regression in qfg1vga (funny room)
  • Loading branch information
Martin Kiewitz committed Dec 24, 2013
1 parent 43c2054 commit 8b3efba
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions engines/sci/graphics/picture.cpp
Expand Up @@ -919,7 +919,7 @@ void GfxPicture::vectorFloodFill(int16 x, int16 y, byte color, byte priority, by
}

// This logic was taken directly from sierra sci, floodfill will get aborted on various occations
if (isEGA) {
if (!_addToFlag) {
if (screenMask & GFX_SCREEN_MASK_VISUAL) {
if ((color == _screen->getColorWhite()) || (searchColor != _screen->getColorWhite()))
return;
Expand All @@ -931,7 +931,9 @@ void GfxPicture::vectorFloodFill(int16 x, int16 y, byte color, byte priority, by
return;
}
} else {
// VGA logic (SCI1 early w/o QfG2)
// When adding a picture onto another picture, don't abort in case current pixel was already drawn previously
// It seems Sierra SCI unpacks such pictures separately and then copies them over
// We draw directly to the screen.
// fixes Space Quest 4 orange ship lifting off (bug #6446)
if (screenMask & GFX_SCREEN_MASK_VISUAL) {
if (color == _screen->getColorWhite())
Expand Down Expand Up @@ -982,6 +984,12 @@ void GfxPicture::vectorFloodFill(int16 x, int16 y, byte color, byte priority, by
_screen->putPixel(--w, p.y, screenMask, color, priority, control);
while (e < r && (matchedMask = _screen->isFillMatch(e + 1, p.y, matchMask, searchColor, searchPriority, searchControl, isEGA)))
_screen->putPixel(++e, p.y, screenMask, color, priority, control);
#if 0
// debug code for floodfill
_screen->copyToScreen();
g_system->updateScreen();
g_system->delayMillis(100);
#endif
// checking lines above and below for possible flood targets
a_set = b_set = 0;
while (w <= e) {
Expand Down

0 comments on commit 8b3efba

Please sign in to comment.