aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-code.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo-code.cpp')
-rw-r--r--engines/director/lingo/lingo-code.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index a8881d7888..16bd7dbde4 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -218,6 +218,32 @@ void Lingo::c_eval() {
g_lingo->push(d);
}
+void Lingo::c_theentitypush() {
+ inst e = (*g_lingo->_currentScript)[g_lingo->_pc++];
+ inst f = (*g_lingo->_currentScript)[g_lingo->_pc++];
+ inst i = (*g_lingo->_currentScript)[g_lingo->_pc++];
+
+ int entity = READ_UINT32(&e);
+ int field = READ_UINT32(&f);
+ int id = READ_UINT32(&i);
+
+ Datum d = g_lingo->getTheEntity(entity, id, field);
+ g_lingo->push(d);
+}
+
+void Lingo::c_theentityassign() {
+ inst e = (*g_lingo->_currentScript)[g_lingo->_pc++];
+ inst f = (*g_lingo->_currentScript)[g_lingo->_pc++];
+ inst i = (*g_lingo->_currentScript)[g_lingo->_pc++];
+
+ int entity = READ_UINT32(&e);
+ int field = READ_UINT32(&f);
+ int id = READ_UINT32(&i);
+
+ Datum d = g_lingo->pop();
+ g_lingo->setTheEntity(entity, id, field, d);
+}
+
void Lingo::c_add() {
Datum d2 = g_lingo->pop();
Datum d1 = g_lingo->pop();