From b19569eb39a43548978a608c9a710800856228b2 Mon Sep 17 00:00:00 2001 From: djsrv Date: Tue, 18 Aug 2020 15:19:48 -0400 Subject: [PATCH] DIRECTOR: LINGO: Add eval arg to Lingo::pop/peek --- engines/director/lingo/lingo-code.cpp | 8 ++++---- engines/director/lingo/lingo.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index cb5a5cc1ca8..6f7ca917c33 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -192,23 +192,23 @@ void Lingo::pushVoid() { push(d); } -Datum Lingo::pop(void) { +Datum Lingo::pop(bool eval) { assert (_stack.size() != 0); Datum ret = _stack.back(); _stack.pop_back(); - if (ret.lazy) { + if (eval && ret.lazy) { ret = ret.eval(); } return ret; } -Datum Lingo::peek(uint offset) { +Datum Lingo::peek(uint offset, bool eval) { assert (_stack.size() > offset); Datum ret = _stack[_stack.size() - 1 - offset]; - if (ret.lazy) { + if (eval && ret.lazy) { ret = ret.eval(); } return ret; diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 8af8bebcfa1..8462a815859 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -437,8 +437,8 @@ private: public: void push(Datum d); - Datum pop(void); - Datum peek(uint offset); + Datum pop(bool eval = true); + Datum peek(uint offset, bool eval = true); public: Common::HashMap _eventHandlerTypes;