[Scummvm-cvs-logs] scummvm master -> 179ef7adb2c7dd0eb790a58748ad374ce92b898d

m-kiewitz m_kiewitz at users.sourceforge.net
Thu Apr 23 18:54:47 CEST 2015


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:
179ef7adb2 SCI: fix Camelot save on map screen bug #6744


Commit: 179ef7adb2c7dd0eb790a58748ad374ce92b898d
    https://github.com/scummvm/scummvm/commit/179ef7adb2c7dd0eb790a58748ad374ce92b898d
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-04-23T18:54:07+02:00

Commit Message:
SCI: fix Camelot save on map screen bug #6744

don't put restored script windows into
_windowList[]

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



diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 61f8058..d146cba 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -772,10 +772,17 @@ void GfxPorts::saveLoadWithSerializer(Common::Serializer &s) {
 				if (window->counterTillFree) {
 					_freeCounter++;
 				} else {
-					if (window->wndStyle & SCI_WINDOWMGR_STYLE_TOPMOST)
-						_windowList.push_front(window);
-					else
-						_windowList.push_back(window);
+					// we don't put the saved script windows into _windowList[], so that they aren't used
+					//  by kernel functions. This is important and would cause issues otherwise.
+					//  see Conquests of Camelot - bug #6744 - when saving on the map screen (room 103),
+					//                                restoring would result in a black window in place
+					//                                where the area name was displayed before
+					//                                In Sierra's SCI the behaviour is identical to us
+					//                                 Sierra's SCI won't show those windows after restoring
+					// If this should cause issues in another game, we would have to add a flag to simply
+					//  avoid any drawing operations for such windows
+					// We still have to restore script windows, because for example Conquests of Camelot
+					//  will immediately delete windows, that were created before saving the game.
 				}
 
 				windowCount--;






More information about the Scummvm-git-logs mailing list