[Scummvm-git-logs] scummvm master -> 678e6df29f4cdb20ccfe917c204ea106430bf37e
djsrv
dservilla at gmail.com
Mon Jun 29 15:44:54 UTC 2020
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:
678e6df29f DIRECTOR: LINGO: Handle stepMovie event
Commit: 678e6df29f4cdb20ccfe917c204ea106430bf37e
https://github.com/scummvm/scummvm/commit/678e6df29f4cdb20ccfe917c204ea106430bf37e
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-29T11:43:10-04:00
Commit Message:
DIRECTOR: LINGO: Handle stepMovie event
Changed paths:
engines/director/lingo/lingo-events.cpp
engines/director/score.cpp
diff --git a/engines/director/lingo/lingo-events.cpp b/engines/director/lingo/lingo-events.cpp
index 8cdc76b7ea..fe0f4d6f07 100644
--- a/engines/director/lingo/lingo-events.cpp
+++ b/engines/director/lingo/lingo-events.cpp
@@ -262,6 +262,7 @@ void Lingo::registerEvent(LEvent event, int spriteId) {
case kEventStart:
case kEventStartUp:
case kEventStartMovie:
+ case kEventStepMovie:
case kEventStopMovie:
case kEventTimeout:
case kEventPrepareMovie:
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index a2cbef2948..4638c1787f 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -490,9 +490,16 @@ void Score::update() {
renderFrame(_currentFrame);
// Stage is drawn between the prepareFrame and enterFrame events (Lingo in a Nutshell, p.100)
- // Enter and exit from previous frame (Director 4)
- if (!_vm->_playbackPaused)
- _lingo->processEvent(kEventEnterFrame);
+ // Enter and exit from previous frame
+ if (!_vm->_playbackPaused) {
+ _lingo->processEvent(kEventEnterFrame); // Triggers the frame script in D2-3, explicit enterFrame handlers in D4+
+ if (_vm->getVersion() == 3) {
+ // Movie version of enterFrame, for D3 only. The Lingo Dictionary claims
+ // "This handler executes before anything else when the playback head moves."
+ // but this is incorrect. The frame script is executed first.
+ _lingo->processEvent(kEventStepMovie);
+ }
+ }
// TODO Director 6 - another order
byte tempo = _puppetTempo ? _puppetTempo : _frames[_currentFrame]->_tempo;
More information about the Scummvm-git-logs
mailing list