[Scummvm-cvs-logs] SF.net SVN: scummvm:[52703] scummvm/trunk/engines/sci/engine/seg_manager. cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Mon Sep 13 15:47:57 CEST 2010
Revision: 52703
http://scummvm.svn.sourceforge.net/scummvm/?rev=52703&view=rev
Author: thebluegr
Date: 2010-09-13 13:47:56 +0000 (Mon, 13 Sep 2010)
Log Message:
-----------
SCI: Changed the script protection code to be a hack for Hoyle 3 only
This shouldn't be happening normally, but apparently it does, which would indicate
a potential issue with the object locking code
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/seg_manager.cpp
Modified: scummvm/trunk/engines/sci/engine/seg_manager.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.cpp 2010-09-13 13:17:55 UTC (rev 52702)
+++ scummvm/trunk/engines/sci/engine/seg_manager.cpp 2010-09-13 13:47:56 UTC (rev 52703)
@@ -1070,10 +1070,15 @@
if (scr->getLockers())
scr->decrementLockers(); // Decrease lockers if this is us ourselves
} else {
- // Uninstantiate superclass, but never uninstantiate
- // system scripts, i.e. script 0 and scripts 900-999 - bug #3038837
- if (superclass_script != 0 && superclass_script < 900)
+ if (g_sci->getGameId() == GID_HOYLE3 && (superclass_script == 0 || superclass_script >= 990)) {
+ // HACK for Hoyle 3: when exiting Checkers or Pachisi, scripts 0, 999 and some others
+ // are deleted but are never instantiated again. We ignore deletion of these scripts
+ // here for Hoyle 3 - bug #3038837
+ // TODO/FIXME: find out why this happens, seems like there is a problem with the object
+ // lock code
+ } else {
uninstantiateScript(superclass_script);
+ }
}
// Recurse to assure that the superclass lockers number gets decreased
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list