diff options
-rw-r--r-- | engines/director/lingo/lingo-code.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index dd5977673e..c9f9c14e84 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -895,9 +895,10 @@ void Lingo::call(Common::String name, int nargs) { return; } - if (sym->nargs != -1 && sym->nargs < nargs) { - warning("Incorrect number of arguments for function %s. Dropping extra %d", name.c_str(), nargs - sym->nargs); - for (int i = 0; i < nargs - sym->nargs; i++) + if (sym->nargs != -1 && sym->maxArgs < nargs) { + warning("Incorrect number of arguments for function %s (%d, expected %d to %d). Dropping extra %d", + name.c_str(), nargs, sym->nargs, sym->maxArgs, nargs - sym->nargs); + for (int i = 0; i < nargs - sym->maxArgs; i++) g_lingo->pop(); } |