[Scummvm-cvs-logs] SF.net SVN: scummvm:[54405] scummvm/trunk/engines/cruise/cruise_main.cpp
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sun Nov 21 06:31:13 CET 2010
Revision: 54405
http://scummvm.svn.sourceforge.net/scummvm/?rev=54405&view=rev
Author: dreammaster
Date: 2010-11-21 05:31:13 +0000 (Sun, 21 Nov 2010)
Log Message:
-----------
CRUISE: Bugfix for #3064846 - Raoul appearing in Book screen
Modified Paths:
--------------
scummvm/trunk/engines/cruise/cruise_main.cpp
Modified: scummvm/trunk/engines/cruise/cruise_main.cpp
===================================================================
--- scummvm/trunk/engines/cruise/cruise_main.cpp 2010-11-21 02:08:35 UTC (rev 54404)
+++ scummvm/trunk/engines/cruise/cruise_main.cpp 2010-11-21 05:31:13 UTC (rev 54405)
@@ -1886,12 +1886,28 @@
currentMouseButton = 0;
}
- manageScripts(&relHead);
- manageScripts(&procHead);
+ // FIXME: I suspect that the original game does multiple script executions between game frames; the bug with
+ // Raoul appearing when looking at the book is being there are 3 script iterations separation between the
+ // scene being changed to the book, and the Raoul actor being frozen/disabled. This loop is a hack to ensure
+ // that when a background changes, a few extra script executions are done
+ bool bgChanged;
+ int numIterations = 1;
- removeFinishedScripts(&relHead);
- removeFinishedScripts(&procHead);
+ while (numIterations-- > 0) {
+ bgChanged = backgroundChanged[masterScreen];
+
+ manageScripts(&relHead);
+ manageScripts(&procHead);
+ removeFinishedScripts(&relHead);
+ removeFinishedScripts(&procHead);
+
+ if (!bgChanged && backgroundChanged[masterScreen]) {
+ bgChanged = true;
+ numIterations += 2;
+ }
+ }
+
processAnimation();
if (remdo) {
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