[Scummvm-cvs-logs] scummvm master -> 22e00a710fe98b291d7b0972fb32f2b18a37efc8

bluegr md5 at scummvm.org
Fri Jan 13 01:39:49 CET 2012


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:
22e00a710f SCI: Fixed some graphics corruption (black boxes) in the dialogs of GK1


Commit: 22e00a710fe98b291d7b0972fb32f2b18a37efc8
    https://github.com/scummvm/scummvm/commit/22e00a710fe98b291d7b0972fb32f2b18a37efc8
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-01-12T16:38:20-08:00

Commit Message:
SCI: Fixed some graphics corruption (black boxes) in the dialogs of GK1

Changed paths:
    engines/sci/graphics/frameout.cpp
    engines/sci/graphics/text32.cpp



diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index 7bb4162..9f150ae 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -498,7 +498,8 @@ void GfxFrameout::kernelFrameout() {
 		// There is a race condition lurking in SQ6, which causes the game to hang in the intro, when teleporting to Polysorbate LX.
 		// Since I first wrote the patch, the race has stopped occurring for me though.
 		// I'll leave this for investigation later, when someone can reproduce.
-		if (it->pictureId == 0xffff)
+		//if (it->pictureId == 0xffff)	// FIXME: This is what SSCI does, and fixes the intro of LSL7, but breaks the dialogs in GK1 (adds black boxes)
+		if (it->planeBack)
 			_paint32->fillRect(it->planeRect, it->planeBack);
 
 		GuiResourceId planeMainPictureId = it->pictureId;
diff --git a/engines/sci/graphics/text32.cpp b/engines/sci/graphics/text32.cpp
index 000bb69..e7595fb 100644
--- a/engines/sci/graphics/text32.cpp
+++ b/engines/sci/graphics/text32.cpp
@@ -175,6 +175,7 @@ void GfxText32::disposeTextBitmap(reg_t hunkId) {
 
 void GfxText32::drawTextBitmap(uint16 x, uint16 y, Common::Rect planeRect, reg_t textObject) {
 	reg_t hunkId = readSelector(_segMan, textObject, SELECTOR(bitmap));
+	uint16 backColor = readSelectorValue(_segMan, textObject, SELECTOR(back));
 	// Sanity check: Check if the hunk is set. If not, either the game scripts
 	// didn't set it, or an old saved game has been loaded, where it wasn't set.
 	if (hunkId.isNull())
@@ -204,7 +205,7 @@ void GfxText32::drawTextBitmap(uint16 x, uint16 y, Common::Rect planeRect, reg_t
 	for (int curY = 0; curY < height; curY++) {
 		for (int curX = 0; curX < width; curX++) {
 			byte pixel = surface[curByte++];
-			if (pixel != skipColor)
+			if (pixel != skipColor && pixel != backColor)
 				_screen->putFontPixel(textY, curX + textX, curY, pixel);
 		}
 	}






More information about the Scummvm-git-logs mailing list