From 8e3681dda5519515783d285696c9fe5434d71941 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 18 Aug 2016 10:28:03 +0200 Subject: DIRECTOR: Lingo: Handle OBJECT symbols properly --- engines/director/lingo/lingo-code.cpp | 6 ++++++ engines/director/lingo/lingo.cpp | 2 ++ 2 files changed, 8 insertions(+) (limited to 'engines/director') 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; -- cgit v1.2.3