diff options
Diffstat (limited to 'engines/director/lingo/lingo-codegen.cpp')
-rw-r--r-- | engines/director/lingo/lingo-codegen.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp index c145184a19..440efb5b44 100644 --- a/engines/director/lingo/lingo-codegen.cpp +++ b/engines/director/lingo/lingo-codegen.cpp @@ -191,7 +191,7 @@ void Lingo::cleanLocalVars() { delete g_lingo->_localvars; } -void Lingo::define(Common::String &name, int start, int nargs, Common::String *prefix) { +void Lingo::define(Common::String &name, int start, int nargs, Common::String *prefix, int end) { Symbol *sym; if (prefix) @@ -214,7 +214,10 @@ void Lingo::define(Common::String &name, int start, int nargs, Common::String *p delete sym->u.defn; } - sym->u.defn = new ScriptData(&(*_currentScript)[start], _currentScript->size() - start + 1); + if (end == -1) + end = _currentScript->size(); + + sym->u.defn = new ScriptData(&(*_currentScript)[start], end - start + 1); sym->nargs = nargs; } |