[Scummvm-cvs-logs] SF.net SVN: scummvm:[44843] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Fri Oct 9 21:41:39 CEST 2009
Revision: 44843
http://scummvm.svn.sourceforge.net/scummvm/?rev=44843&view=rev
Author: m_kiewitz
Date: 2009-10-09 19:41:39 +0000 (Fri, 09 Oct 2009)
Log Message:
-----------
SCI/newgui: calling process_sound_events now directly within kAnimate(), fixes hanging scripts (e.g. sq3 exiting pod, kq1 getting killed)
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kgraphics.cpp
scummvm/trunk/engines/sci/engine/vm.cpp
scummvm/trunk/engines/sci/gui/gui_gfx.cpp
scummvm/trunk/engines/sci/gui32/gui32.cpp
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-10-09 19:19:34 UTC (rev 44842)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-10-09 19:41:39 UTC (rev 44843)
@@ -1543,6 +1543,9 @@
reg_t castListReference = (argc > 0) ? argv[0] : NULL_REG;
bool cycle = (argc > 1) ? ((argv[1].toUint16()) ? true : false) : false;
+ // Take care of incoming events (kAnimate is called semi-regularly)
+ process_sound_events(s);
+
s->_gui->animate(castListReference, cycle, argc, argv);
return s->r_acc;
}
Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp 2009-10-09 19:19:34 UTC (rev 44842)
+++ scummvm/trunk/engines/sci/engine/vm.cpp 2009-10-09 19:41:39 UTC (rev 44843)
@@ -931,6 +931,8 @@
xstack->selector = opparams[0];
xstack->type = EXEC_STACK_TYPE_KERNEL;
+ //warning("callk %s", kfun.orig_name.c_str());
+
// Call kernel function
s->r_acc = kfun.fun(s, argc, argv);
Modified: scummvm/trunk/engines/sci/gui/gui_gfx.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-09 19:19:34 UTC (rev 44842)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-09 19:41:39 UTC (rev 44843)
@@ -891,6 +891,7 @@
PUT_SEL32V(curObject, nsRight, celRect.right);
PUT_SEL32V(curObject, nsBottom, celRect.bottom);
+ // Calculate current priority according to y-coordinate
if (!(signal & SCI_ANIMATE_SIGNAL_FIXEDPRIORITY))
PUT_SEL32V(curObject, priority, CoordinateToPriority(y));
Modified: scummvm/trunk/engines/sci/gui32/gui32.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.cpp 2009-10-09 19:19:34 UTC (rev 44842)
+++ scummvm/trunk/engines/sci/gui32/gui32.cpp 2009-10-09 19:41:39 UTC (rev 44843)
@@ -1868,7 +1868,6 @@
List *cast_list = NULL;
int open_animation = 0;
- process_sound_events(s); // Take care of incoming events (kAnimate is called semi-regularly)
_k_animate_ran = true; // Used by some of the invoked functions to check for recursion, which may,
// after all, damage the cast list
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