aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo.cpp')
-rw-r--r--engines/director/lingo/lingo.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 529738043c..3b0456d956 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -248,11 +248,31 @@ void Lingo::executeScript(ScriptType type, uint16 id) {
cleanLocalVars();
}
+ScriptType Lingo::event2script(LEvent ev) {
+ if (_vm->getVersion() < 4) {
+ switch (ev) {
+ //case kEventStartMovie: // We are precompiling it now
+ // return kMovieScript;
+ case kEventEnterFrame:
+ return kFrameScript;
+ default:
+ return kNoneScript;
+ }
+ }
+
+ return kNoneScript;
+}
+
void Lingo::processEvent(LEvent event, int entityId) {
if (!_eventHandlerTypes.contains(event))
error("processEvent: Unknown event %d for entity %d", event, entityId);
- debug(2, "STUB: processEvent(%s) for %d", _eventHandlerTypes[event], entityId);
+ ScriptType st = event2script(event);
+
+ if (st != kNoneScript)
+ executeScript(st, entityId + 1);
+ else
+ debug(2, "STUB: processEvent(%s) for %d", _eventHandlerTypes[event], entityId);
}
int Lingo::alignTypes(Datum &d1, Datum &d2) {