[Scummvm-cvs-logs] scummvm master -> c2a2a760e9f634b7e24b8fe66d75054d80d1f435

m-kiewitz m_kiewitz at users.sourceforge.net
Mon Dec 23 23:42:07 CET 2013


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:
c2a2a760e9 SCI: change floodfill to fix sq4 ship taking off


Commit: c2a2a760e9f634b7e24b8fe66d75054d80d1f435
    https://github.com/scummvm/scummvm/commit/c2a2a760e9f634b7e24b8fe66d75054d80d1f435
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2013-12-23T14:41:35-08:00

Commit Message:
SCI: change floodfill to fix sq4 ship taking off

fixes bug #6446

Changed paths:
    engines/sci/graphics/picture.cpp



diff --git a/engines/sci/graphics/picture.cpp b/engines/sci/graphics/picture.cpp
index 8ad4f53..d78b488 100644
--- a/engines/sci/graphics/picture.cpp
+++ b/engines/sci/graphics/picture.cpp
@@ -919,15 +919,30 @@ 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 (screenMask & GFX_SCREEN_MASK_VISUAL) {
-		if ((color == _screen->getColorWhite()) || (searchColor != _screen->getColorWhite()))
-			return;
-	} else if (screenMask & GFX_SCREEN_MASK_PRIORITY) {
-		if ((priority == 0) || (searchPriority != 0))
-			return;
-	} else if (screenMask & GFX_SCREEN_MASK_CONTROL) {
-		if ((control == 0) || (searchControl != 0))
-			return;
+	if (isEGA) {
+		if (screenMask & GFX_SCREEN_MASK_VISUAL) {
+			if ((color == _screen->getColorWhite()) || (searchColor != _screen->getColorWhite()))
+				return;
+		} else if (screenMask & GFX_SCREEN_MASK_PRIORITY) {
+			if ((priority == 0) || (searchPriority != 0))
+				return;
+		} else if (screenMask & GFX_SCREEN_MASK_CONTROL) {
+			if ((control == 0) || (searchControl != 0))
+				return;
+		}
+	} else {
+		// VGA logic (SCI1 early w/o QfG2)
+		//  fixes Space Quest 4 orange ship lifting off (bug #6446)
+		if (screenMask & GFX_SCREEN_MASK_VISUAL) {
+			if (color == _screen->getColorWhite())
+				return;
+		} else if (screenMask & GFX_SCREEN_MASK_PRIORITY) {
+			if (priority == 0)
+				return;
+		} else if (screenMask & GFX_SCREEN_MASK_CONTROL) {
+			if (control == 0)
+				return;
+		}
 	}
 
 	// Now remove screens, that already got the right color/priority/control






More information about the Scummvm-git-logs mailing list