diff options
-rw-r--r-- | engines/director/lingo/lingo-code.cpp | 5 | ||||
-rw-r--r-- | engines/director/lingo/lingo.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index 3dead580da..ca04dce550 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -940,8 +940,13 @@ void Lingo::c_whencode() { debugC(3, kDebugLingoExec, "c_whencode([%5d][%5d], %s)", start, end, eventname.c_str()); + int entity = g_lingo->_currentEntityId; + g_lingo->_currentEntityId = 0; + g_lingo->define(eventname, start, 0, NULL, end); + g_lingo->_currentEntityId = entity; + if (debugChannelSet(3, kDebugLingoExec)) { uint pc = start; while (pc <= end) { diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp index cf0038bfdc..32a247a83f 100644 --- a/engines/director/lingo/lingo.cpp +++ b/engines/director/lingo/lingo.cpp @@ -291,7 +291,7 @@ Symbol *Lingo::getHandler(Common::String &name) { } void Lingo::processEvent(LEvent event, ScriptType st, int entityId) { - if (entityId <= 0) + if (entityId < 0) return; debugC(1, kDebugEvents, "Lingo::processEvent(%s, %s, %d)", _eventHandlerTypes[event], scriptType2str(st), entityId); |