diff options
Diffstat (limited to 'engines/director/lingo/lingo-codegen.cpp')
-rw-r--r-- | engines/director/lingo/lingo-codegen.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp index 2f31f5c1d9..2ba3c0940c 100644 --- a/engines/director/lingo/lingo-codegen.cpp +++ b/engines/director/lingo/lingo-codegen.cpp @@ -212,7 +212,7 @@ void Lingo::cleanLocalVars() { g_lingo->_localvars = 0; } -Symbol *Lingo::define(Common::String &name, int start, int nargs, Common::String *prefix, int end) { +Symbol *Lingo::define(Common::String &name, int start, int nargs, Common::String *prefix, int end, bool removeCode) { if (prefix) name = *prefix + "-" + name; @@ -244,6 +244,12 @@ Symbol *Lingo::define(Common::String &name, int start, int nargs, Common::String sym->nargs = nargs; sym->maxArgs = nargs; + // Now remove all defined code from the _currentScript + if (removeCode) + for (int i = end - 1; i >= start; i--) { + _currentScript->remove_at(i); + } + return sym; } |