aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/director/lingo/lingo-builtins.cpp68
-rw-r--r--engines/director/lingo/lingo-the.cpp3
-rw-r--r--engines/director/lingo/lingo-the.h3
-rw-r--r--engines/director/lingo/lingo.h3
4 files changed, 58 insertions, 19 deletions
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 54481aedb6..d8a8f2d2f5 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -32,26 +32,27 @@ static struct BuiltinProto {
bool parens;
} builtins[] = {
// Math
- { "abs", Lingo::b_abs, 1, 1, true }, // D2
- { "atan", Lingo::b_atan, 1, 1, true }, // D4
- { "cos", Lingo::b_cos, 1, 1, true }, // D4
- { "exp", Lingo::b_exp, 1, 1, true }, // D4
- { "float", Lingo::b_float, 1, 1, true }, // D4
- { "integer",Lingo::b_integer, 1, 1, true },
- { "integerp",Lingo::b_integerp, 1, 1, true },
- { "log", Lingo::b_log, 1, 1, true }, // D4
- { "pi", Lingo::b_pi, 0, 0, true }, // D4
- { "power", Lingo::b_power, 2, 2, true }, // D4
- { "random", Lingo::b_random, 1, 1, true }, // D2
- { "sin", Lingo::b_sin, 1, 1, true },
- { "sqrt", Lingo::b_sqrt, 1, 1, true }, // D2
- { "tan", Lingo::b_tan, 1, 1, true }, // D4
+ { "abs", Lingo::b_abs, 1, 1, true }, // D2
+ { "atan", Lingo::b_atan, 1, 1, true }, // D4
+ { "cos", Lingo::b_cos, 1, 1, true }, // D4
+ { "exp", Lingo::b_exp, 1, 1, true }, // D4
+ { "float", Lingo::b_float, 1, 1, true }, // D4
+ { "integer", Lingo::b_integer, 1, 1, true },
+ { "integerp", Lingo::b_integerp, 1, 1, true },
+ { "log", Lingo::b_log, 1, 1, true }, // D4
+ { "pi", Lingo::b_pi, 0, 0, true }, // D4
+ { "power", Lingo::b_power, 2, 2, true }, // D4
+ { "random", Lingo::b_random, 1, 1, true }, // D2
+ { "sin", Lingo::b_sin, 1, 1, true },
+ { "sqrt", Lingo::b_sqrt, 1, 1, true }, // D2
+ { "tan", Lingo::b_tan, 1, 1, true }, // D4
// String
- { "chars", Lingo::b_chars, 3, 3, true }, // D2
- { "charToNum", Lingo::b_charToNum, 1, 1, true }, // D2
- { "length", Lingo::b_length, 1, 1, true }, // D2
- { "numToChar", Lingo::b_numToChar, 1, 1, true }, // D2
- { "string", Lingo::b_string, 1, 1, true }, // D2
+ { "chars", Lingo::b_chars, 3, 3, true }, // D2
+ { "charToNum", Lingo::b_charToNum, 1, 1, true }, // D2
+ { "length", Lingo::b_length, 1, 1, true }, // D2
+ { "numToChar", Lingo::b_numToChar, 1, 1, true }, // D2
+ { "offset", Lingo::b_offset, 2, 2, true }, // D2
+ { "string", Lingo::b_string, 1, 1, true }, // D2
// Files
{ "closeDA", Lingo::b_closeDA, 0, 0, false }, // D2
{ "closeResFile", Lingo::b_closeResFile, 0, 1, false }, // D2
@@ -87,6 +88,7 @@ static struct BuiltinProto {
{ "ilk", Lingo::b_ilk, 1, 2, true }, // D4
// put // D2
// set // D2
+ { "objectp", Lingo::b_objectp, 1, 1, true },
{ "showGlobals", Lingo::b_showGlobals, 0, 0, false }, // D2
{ "showLocals", Lingo::b_showLocals, 0, 0, false }, // D2
// Score
@@ -103,6 +105,7 @@ static struct BuiltinProto {
{ "puppetSprite", Lingo::b_puppetSprite, -1,0, false }, // D2
{ "puppetTempo", Lingo::b_puppetTempo, 1, 1, false }, // D2
{ "puppetTransition",Lingo::b_puppetTransition,-1,0, false },// D2
+ { "rollOver", Lingo::b_rollOver, 1, 1, true }, // D2
{ "spriteBox", Lingo::b_spriteBox, -1,0, false }, // D2
{ "updateStage", Lingo::b_updateStage, 0, 0, false }, // D2
{ "zoomBox", Lingo::b_zoomBox, -1,0, false }, // D2
@@ -353,6 +356,18 @@ void Lingo::b_numToChar(int nargs) {
g_lingo->push(Datum((char)d.u.i));
}
+void Lingo::b_offset(int nargs) {
+ Datum target = g_lingo->pop();
+ Datum source = g_lingo->pop();
+
+ target.toString();
+ source.toString();
+
+ warning("STUB: b_offset()");
+
+ g_lingo->push(Datum(0));
+}
+
void Lingo::b_string(int nargs) {
Datum d = g_lingo->pop();
d.toString();
@@ -522,6 +537,14 @@ void Lingo::b_cursor(int nargs) {
warning("STUB: b_cursor(%d)", d.u.i);
}
+void Lingo::b_objectp(int nargs) {
+ Datum d = g_lingo->pop();
+ int res = (d.type == OBJECT) ? 1 : 0;
+ d.toInt();
+ d.u.i = res;
+ g_lingo->push(d);
+}
+
void Lingo::b_showGlobals(int nargs) {
warning("STUB: b_showGlobals");
}
@@ -622,6 +645,13 @@ void Lingo::b_puppetTransition(int nargs) {
g_lingo->dropStack(nargs);
}
+void Lingo::b_rollOver(int nargs) {
+ Datum d = g_lingo->pop();
+ warning("STUB: b_puppetTempo(%d)", d.u.i);
+
+ g_lingo->push(Datum(0));
+}
+
void Lingo::b_spriteBox(int nargs) {
g_lingo->printStubWithArglist("b_spriteBox", nargs);
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index e6dbb9cac6..20bccf35ac 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -63,11 +63,14 @@ TheEntity entities[] = {
{ kTheMultiSound, "multiSound", false },
{ kTheOptionDown, "optionDown", false },
{ kThePathName, "pathname", false },
+ { kThePauseState, "pauseState", false },
{ kThePerFrameHook, "perframehook", false },
{ kThePreloadEventAbort,"preloadEventAbort",false },
+ { kTheResult, "result", false },
{ kTheRightMouseDown, "rightMouseDown", false },
{ kTheRightMouseUp, "rightMouseUp", false },
{ kTheRomanLingo, "romanLingo", false },
+ { kTheSelection, "selection", false },
{ kTheShiftDown, "shiftDown", false },
{ kTheSprite, "sprite", true },
{ kTheStage, "stage", false },
diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h
index 17ccb2f8e1..0649ebe0b0 100644
--- a/engines/director/lingo/lingo-the.h
+++ b/engines/director/lingo/lingo-the.h
@@ -60,6 +60,7 @@ enum TheEntityType {
kTheMemorySize,
kTheMouseDown,
kTheMouseUp,
+ kThePauseState,
kTheRightMouseUp,
kTheRightMouseDown,
kTheStillDown,
@@ -67,6 +68,8 @@ enum TheEntityType {
kTheKeyCode,
kTheControlDown,
kTheCommandDown,
+ kTheResult,
+ kTheSelection,
kTheShiftDown,
kTheOptionDown,
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 53722d7995..105719e41c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -315,11 +315,13 @@ public:
static void b_charToNum(int nargs);
static void b_length(int nargs);
static void b_numToChar(int nargs);
+ static void b_offset(int nargs);
static void b_string(int nargs);
static void b_ilk(int nargs);
static void b_alert(int nargs);
static void b_cursor(int nargs);
+ static void b_objectp(int nargs);
static void b_printFrom(int nargs);
static void b_showGlobals(int nargs);
static void b_showLocals(int nargs);
@@ -336,6 +338,7 @@ public:
static void b_puppetSprite(int nargs);
static void b_puppetTempo(int nargs);
static void b_puppetTransition(int nargs);
+ static void b_rollOver(int nargs);
static void b_spriteBox(int nargs);
static void b_updateStage(int nargs);
static void b_zoomBox(int nargs);