diff options
Diffstat (limited to 'engines/director/lingo/lingo-code.cpp')
-rw-r--r-- | engines/director/lingo/lingo-code.cpp | 26 |
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(); |