[Scummvm-git-logs] scummvm master -> 055d0c095efc554630f1e45e581a503fc01d32dc
sev-
noreply at scummvm.org
Thu Jul 7 15:57:44 UTC 2022
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:
055d0c095e DIRECTOR: LINGO: Prevent execution of cast script in presence of D3-sprite script
Commit: 055d0c095efc554630f1e45e581a503fc01d32dc
https://github.com/scummvm/scummvm/commit/055d0c095efc554630f1e45e581a503fc01d32dc
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-07-07T17:57:39+02:00
Commit Message:
DIRECTOR: LINGO: Prevent execution of cast script in presence of D3-sprite script
Changed paths:
engines/director/lingo/lingo-events.cpp
diff --git a/engines/director/lingo/lingo-events.cpp b/engines/director/lingo/lingo-events.cpp
index e0452f334ed..e6a0c2f7857 100644
--- a/engines/director/lingo/lingo-events.cpp
+++ b/engines/director/lingo/lingo-events.cpp
@@ -127,12 +127,15 @@ void Movie::queueSpriteEvent(Common::Queue<LingoEvent> &queue, LEvent event, int
if (sprite->_scriptId.member) {
ScriptContext *script = getScriptContext(kScoreScript, sprite->_scriptId);
if (script) {
- // In D3 the event lingo is not contained in a handler
- // If sprite is immediate, its script is run on mouseDown, otherwise on mouseUp
- if (((event == kEventMouseDown && sprite->_immediate) || (event == kEventMouseUp && !sprite->_immediate))
- && script->_eventHandlers.contains(kEventGeneric)) {
- queue.push(LingoEvent(kEventGeneric, eventId, kScoreScript, sprite->_scriptId, false, spriteId));
+ if (script->_eventHandlers.contains(kEventGeneric)) {
+ // D3-style sprite script, not contained in a handler
+ // If sprite is immediate, its script is run on mouseDown, otherwise on mouseUp
+ if ((event == kEventMouseDown && sprite->_immediate) || (event == kEventMouseUp && !sprite->_immediate)) {
+ queue.push(LingoEvent(kEventGeneric, eventId, kScoreScript, sprite->_scriptId, false, spriteId));
+ }
+ return; // Do not execute the cast script if there is a D3-style sprite script
} else if (script->_eventHandlers.contains(event)) {
+ // D4-style event handler
queue.push(LingoEvent(event, eventId, kScoreScript, sprite->_scriptId, false, spriteId));
}
}
More information about the Scummvm-git-logs
mailing list