[Scummvm-cvs-logs] scummvm master -> 4c03e4b699916a9b9fe71afffaf41c283045216e

wjp wjp at usecode.org
Sun Apr 26 00:49:56 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:
4c03e4b699 SCI: Stop processing in kGetEvent after loading


Commit: 4c03e4b699916a9b9fe71afffaf41c283045216e
    https://github.com/scummvm/scummvm/commit/4c03e4b699916a9b9fe71afffaf41c283045216e
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2015-04-26T00:48:07+02:00

Commit Message:
SCI: Stop processing in kGetEvent after loading

getSciEvent can trigger the main ScummVM menu, which can trigger loading
a game, which will invalidate the game state that kGetEvent is operating
on.

Other kernel functions may still have the same problem, and a better
solution may be necessary.

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



diff --git a/engines/sci/engine/kevent.cpp b/engines/sci/engine/kevent.cpp
index cb81da2..dfa29bd 100644
--- a/engines/sci/engine/kevent.cpp
+++ b/engines/sci/engine/kevent.cpp
@@ -74,6 +74,11 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) {
 
 	curEvent = g_sci->getEventManager()->getSciEvent(mask);
 
+	// Aborted during getSciEvent (e.g., due to loading a game from the
+	// ScummVM menu), so return immediately
+	if (s->abortScriptProcessing)
+		return NULL_REG;
+
 	// For a real event we use its associated mouse position
 	mousePos = curEvent.mousePos;
 #ifdef ENABLE_SCI32






More information about the Scummvm-git-logs mailing list