aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-codegen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo-codegen.cpp')
-rw-r--r--engines/director/lingo/lingo-codegen.cpp7
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;
}