diff options
author | Eugene Sandulenko | 2016-08-18 10:28:03 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-18 20:46:43 +0200 |
commit | 8e3681dda5519515783d285696c9fe5434d71941 (patch) | |
tree | 23c38e1dee9b6df21f501ec8657e529e889b2a28 /engines | |
parent | 6a622b07eea5af8144cb9095249ac237de507c1c (diff) | |
download | scummvm-rg350-8e3681dda5519515783d285696c9fe5434d71941.tar.gz scummvm-rg350-8e3681dda5519515783d285696c9fe5434d71941.tar.bz2 scummvm-rg350-8e3681dda5519515783d285696c9fe5434d71941.zip |
DIRECTOR: Lingo: Handle OBJECT symbols properly
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/lingo/lingo-code.cpp | 6 | ||||
-rw-r--r-- | engines/director/lingo/lingo.cpp | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index a39eb61a05..014cec5a78 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -170,6 +170,9 @@ void Lingo::c_printtop(void) { case SYMBOL: warning("%s", d.type2str(true)); break; + case OBJECT: + warning("#%s", d.u.s->c_str()); + break; default: warning("--unknown--"); } @@ -263,8 +266,11 @@ void Lingo::c_assign() { delete d2.u.arr; } else if (d2.type == SYMBOL) { d1.u.sym->u.i = d2.u.i; + } else if (d2.type == OBJECT) { + d1.u.sym->u.s = d2.u.s; } else { warning("c_assign: unhandled type: %s", d2.type2str()); + d1.u.sym->u.s = d2.u.s; } d1.u.sym->type = d2.type; diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp index 9aea9593e9..7f0fd4d8b5 100644 --- a/engines/director/lingo/lingo.cpp +++ b/engines/director/lingo/lingo.cpp @@ -313,6 +313,8 @@ const char *Datum::type2str(bool isk) { return isk ? "#point" : "POINT"; case SYMBOL: return isk ? "#symbol" : "SYMBOL"; + case OBJECT: + return isk ? "#object" : "OBJECT"; default: snprintf(res, 20, "-- (%d) --", type); return res; |