[Scummvm-cvs-logs] scummvm master -> 3f052213346e7887c85b6a2a5d31b24015d672bc

wjp wjp at usecode.org
Wed Mar 2 23:50:13 CET 2011


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a55179177e Revert "SCI: Fixed bug #3039775 - "KQ4: Graphics glitch [...]""
1ef1f3e671 SCI: Call Graph(RedrawBox) from EndUpdate for SCI0/01
3f05221334 SCI: Always add new windows to back of list up to SCI_1_EGA_ONLY.


Commit: a55179177ed3dff9ebb2ece424b41cc2c18ec9ce
    https://github.com/scummvm/scummvm/commit/a55179177ed3dff9ebb2ece424b41cc2c18ec9ce
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-03-02T14:48:57-08:00

Commit Message:
Revert "SCI: Fixed bug #3039775 - "KQ4: Graphics glitch [...]""

This reverts commit 74e99328ec0fa43074c52b69d21922407153a1aa.
SSCI takes care of this issue in a different manner, which
the next commit emulates.

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



diff --git a/engines/sci/graphics/paint16.cpp b/engines/sci/graphics/paint16.cpp
index 7746224..4449076 100644
--- a/engines/sci/graphics/paint16.cpp
+++ b/engines/sci/graphics/paint16.cpp
@@ -378,14 +378,14 @@ void GfxPaint16::kernelDrawPicture(GuiResourceId pictureId, int16 animationNr, b
 		drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
 		_transitions->setup(animationNr, animationBlackoutFlag);
 	} else {
-		// The picture window is not in the front, which means that there is a
-		// textbox shown above it. We need to invalidate the old picture
-		// otherwise it will never be shown by kAnimate. Here are some
-		// examples where this occurs:
-		// - LSL5 (english) - last wakeup (taj mahal flute dream)
-		// - SQ5 (english v1.03) - during the scene following the scrubbing
-		// - KQ4 (all versions) - falling off the staircase (bug #3039775)
-		_screen->_picNotValid = 1;
+		// We need to set it for SCI1EARLY+ (sierra sci also did so), otherwise we get at least the following issues:
+		//  LSL5 (english) - last wakeup (taj mahal flute dream)
+		//  SQ5 (english v1.03) - during the scene following the scrubbing
+		//   in both situations a window is shown when kDrawPic is called, which would result otherwise in
+		//   no showpic getting called from kAnimate and we would get graphic corruption
+		// XMAS1990 EGA did not set it in this case, VGA did
+		if (getSciVersion() >= SCI_VERSION_1_EARLY)
+			_screen->_picNotValid = 1;
 		_ports->beginUpdate(_ports->_picWind);
 		drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
 		_ports->endUpdate(_ports->_picWind);


Commit: 1ef1f3e67183b8b2f19bc9ba22b04d774381f9f9
    https://github.com/scummvm/scummvm/commit/1ef1f3e67183b8b2f19bc9ba22b04d774381f9f9
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-03-02T14:48:57-08:00

Commit Message:
SCI: Call Graph(RedrawBox) from EndUpdate for SCI0/01

Confirmed this behaviour in KQ1sci, KQ4, Iceman, and that
it isn't present in QfG2 and KQ5CD.

This fixes the graphics glitch in KQ4 when falling down the
stairs in room 61 (#3039775).

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



diff --git a/engines/sci/graphics/ports.cpp b/engines/sci/graphics/ports.cpp
index 924ffaa..d971b77 100644
--- a/engines/sci/graphics/ports.cpp
+++ b/engines/sci/graphics/ports.cpp
@@ -272,6 +272,9 @@ void GfxPorts::endUpdate(Window *wnd) {
 		updateWindow((Window *)*it);
 	}
 
+	if (getSciVersion() < SCI_VERSION_1_EGA_ONLY)
+		g_sci->_gfxPaint16->kernelGraphRedrawBox(_curPort->rect);
+
 	setPort(oldPort);
 }
 


Commit: 3f052213346e7887c85b6a2a5d31b24015d672bc
    https://github.com/scummvm/scummvm/commit/3f052213346e7887c85b6a2a5d31b24015d672bc
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-03-02T14:48:57-08:00

Commit Message:
SCI: Always add new windows to back of list up to SCI_1_EGA_ONLY.

Confirmed this behaviour in KQ1sci, KQ4, Iceman and QfG2.
Hoyle3-demo remains an exception.

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



diff --git a/engines/sci/graphics/ports.cpp b/engines/sci/graphics/ports.cpp
index d971b77..c89f46b 100644
--- a/engines/sci/graphics/ports.cpp
+++ b/engines/sci/graphics/ports.cpp
@@ -308,10 +308,11 @@ Window *GfxPorts::addWindow(const Common::Rect &dims, const Common::Rect *restor
 
 	_windowsById[id] = pwnd;
 
-
-	// Hoyle3-demo's NewWindow always adds windows to the back of the list.
-	// TODO: Determine if other interpreters do the same.
-	bool forceToBack = (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo());
+	// KQ1sci, KQ4, iceman, QfG2 always add windows to the back of the list.
+	// KQ5CD checks style.
+	// Hoyle3-demo also always adds to the back (#3036763).
+	bool forceToBack = (getSciVersion() <= SCI_VERSION_1_EGA_ONLY) ||
+	                   (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo());
 
 	if (!forceToBack && (style & SCI_WINDOWMGR_STYLE_TOPMOST))
 		_windowList.push_front(pwnd);






More information about the Scummvm-git-logs mailing list