diff options
author | Eugene Sandulenko | 2019-12-29 00:00:44 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-29 00:51:16 +0100 |
commit | d1cd2f51261407fa363d28c256f7697e2dc754ad (patch) | |
tree | 55b5b411b659f7ce8db3510e7ff59dfc81c65f6b /engines/director/lingo | |
parent | ecaebf7cedba882185c1b87f12a01bc84d91f879 (diff) | |
download | scummvm-rg350-d1cd2f51261407fa363d28c256f7697e2dc754ad.tar.gz scummvm-rg350-d1cd2f51261407fa363d28c256f7697e2dc754ad.tar.bz2 scummvm-rg350-d1cd2f51261407fa363d28c256f7697e2dc754ad.zip |
DIRECTOR: LINGO: Fix behaviour of global variables
Diffstat (limited to 'engines/director/lingo')
-rw-r--r-- | engines/director/lingo/lingo-codegen.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp index 84557650fd..7d9f1577e1 100644 --- a/engines/director/lingo/lingo-codegen.cpp +++ b/engines/director/lingo/lingo-codegen.cpp @@ -179,7 +179,7 @@ Symbol *Lingo::lookupVar(const char *name, bool create, bool putInGlobalList) { if (!_localvars || !_localvars->contains(name)) { // Create variable if it was not defined // Check if it is a global symbol - if (_globalvars.contains(name) && _globalvars[name]->type == SYMBOL) + if (_globalvars.contains(name)) return _globalvars[name]; if (!create) @@ -190,10 +190,11 @@ Symbol *Lingo::lookupVar(const char *name, bool create, bool putInGlobalList) { sym->type = VOID; sym->u.i = 0; - if (_localvars) - (*_localvars)[name] = sym; + if (!putInGlobalList) { + if (_localvars) + (*_localvars)[name] = sym; - if (putInGlobalList) { + } else { sym->global = true; _globalvars[name] = sym; } |