[Scummvm-cvs-logs] scummvm master -> 9a60c58a8d1c91eb5731eaae0093b0ee4b68958f

wjp wjp at usecode.org
Mon Feb 28 10:17:39 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:
9a60c58a8d SCI: Add FIXME comment to workaround


Commit: 9a60c58a8d1c91eb5731eaae0093b0ee4b68958f
    https://github.com/scummvm/scummvm/commit/9a60c58a8d1c91eb5731eaae0093b0ee4b68958f
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-02-28T01:17:35-08:00

Commit Message:
SCI: Add FIXME comment to workaround

Changed paths:
    engines/sci/engine/script_patches.cpp



diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index a5679fa..33ec5ef 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -826,16 +826,22 @@ const uint16 qfg1vgaPatchFightEvents[] = {
 	PATCH_END
 };
 
+// FIXME:
 // When QFG1VGA and QFG3 dispose of a child window. For example, when choosing
 // a spell (parent window), if the spell can't be casted, a subsequent window
 // opens, notifying that it can't be casted. When showing the child window, the
 // scripts restore the area below the parent window, draw the child window, and
 // then attempt to redraw the parent window, which leads to the background
-// picture (which has just been restored) overwriting the child window. It
-// appers that kGraph(redrawBox) is different in QFG1VGA and QFG3. However, we
-// can just remove the window redraw and update calls when the window is
-// supposed to be disposed, and the window is disposed of correctly. Fixes bug
-// #3053093.
+// picture (which has just been restored) overwriting the child window.
+//
+// This faulty redraw is caused by a used and freed SaveBits handle that is
+// still stored in spellWin::pUnderBits being re-assigned with a SaveBits
+// call for the child window. We should ensure that invalidated SaveBits handles
+// can't (soon?) become valid again.
+//
+// However, we can just remove the window redraw and update calls when the
+// window is supposed to be disposed, and the window is disposed of correctly.
+// This is a workaround for bug #3053093.
 const byte qfg1vgaWindowDispose[] = {
 	17,
 	0x39, 0x05,       // pushi 05






More information about the Scummvm-git-logs mailing list