aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-code.cpp
diff options
context:
space:
mode:
authorScott Percival2019-11-29 23:31:13 +0800
committerScott Percival2019-12-02 21:57:09 +0800
commita45da2eb03139d48b98f3f520cfdf23b164a77c1 (patch)
tree96f028bcecab827b166da9218f6dcca3d036db0f /engines/director/lingo/lingo-code.cpp
parent993fbf5a4f0ea93f7e4d5b387a188298ac05f2b5 (diff)
downloadscummvm-rg350-a45da2eb03139d48b98f3f520cfdf23b164a77c1.tar.gz
scummvm-rg350-a45da2eb03139d48b98f3f520cfdf23b164a77c1.tar.bz2
scummvm-rg350-a45da2eb03139d48b98f3f520cfdf23b164a77c1.zip
DIRECTOR: Add c_constpush
Diffstat (limited to 'engines/director/lingo/lingo-code.cpp')
-rw-r--r--engines/director/lingo/lingo-code.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 5bab70c543..ff9ae2428a 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -65,6 +65,7 @@ static struct FuncDescr {
{ Lingo::c_floatpush, "c_floatpush", "f" },
{ Lingo::c_stringpush, "c_stringpush", "s" },
{ Lingo::c_symbolpush, "c_symbolpush", "s" }, // D3
+ { Lingo::c_constpush, "c_constpush", "i" },
{ Lingo::c_varpush, "c_varpush", "s" },
{ Lingo::c_setImmediate,"c_setImmediate","i" },
{ Lingo::c_assign, "c_assign", "" },
@@ -249,6 +250,14 @@ void Lingo::c_symbolpush() {
g_lingo->push(Datum(new Common::String(s)));
}
+void Lingo::c_constpush() {
+ Datum d;
+ inst in = (*g_lingo->_currentScript)[g_lingo->_pc++];
+ int i = READ_UINT32(&in);
+ d = g_lingo->_currentScriptContext->constants[i];
+ g_lingo->push(d);
+}
+
void Lingo::c_argspush() {
Datum d;
inst v = (*g_lingo->_currentScript)[g_lingo->_pc++];