From d886c037dd43aa76550c8dcea7b59f8f53f1c6fa Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sat, 20 Nov 2010 19:52:31 +0000 Subject: SCI: Fix ScummVM freezing during the credits scene in EcoQuest 1 (bug #3101846) svn-id: r54395 --- engines/sci/engine/kgraphics.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 8d8b2dd46d..33c819fa4c 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -33,6 +33,7 @@ #include "sci/sci.h" #include "sci/debug.h" // for g_debug_sleeptime_factor +#include "sci/event.h" #include "sci/resource.h" #include "sci/engine/features.h" #include "sci/engine/state.h" @@ -1118,6 +1119,14 @@ reg_t kAnimate(EngineState *s, int argc, reg_t *argv) { g_sci->_gfxAnimate->kernelAnimate(castListReference, cycle, argc, argv); + // WORKAROUND: At the end of Ecoquest 1, during the credits, the game + // doesn't call kGetEvent(), so no events are processed (e.g. window + // focusing, window moving etc). We poll events for that scene, to + // keep ScummVM responsive. Fixes ScummVM "freezing" during the credits, + // bug #3101846 + if (g_sci->getGameId() == GID_ECOQUEST && s->currentRoomNumber() == 680) + g_sci->getEventManager()->getSciEvent(SCI_EVENT_PEEK); + return s->r_acc; } -- cgit v1.2.3