aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo
diff options
context:
space:
mode:
authorEugene Sandulenko2017-02-05 23:54:31 +0100
committerEugene Sandulenko2017-02-05 23:54:31 +0100
commit3642054399272a9a038fd166ae0baedf48de0110 (patch)
treec7850d431f14f4c781337aa94ba3b7f76de5b529 /engines/director/lingo
parent4e9341ef7b105d2c979fcce83507326a062dc255 (diff)
downloadscummvm-rg350-3642054399272a9a038fd166ae0baedf48de0110.tar.gz
scummvm-rg350-3642054399272a9a038fd166ae0baedf48de0110.tar.bz2
scummvm-rg350-3642054399272a9a038fd166ae0baedf48de0110.zip
DIRECTOR: Lingo: Documented D4 "Code structures" Lingo
Diffstat (limited to 'engines/director/lingo')
-rw-r--r--engines/director/lingo/lingo-builtins.cpp17
-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.h1
4 files changed, 16 insertions, 8 deletions
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f7c1abe48a..f5abbcadad 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -98,6 +98,7 @@ static struct BuiltinProto {
{ "dontPassEvent", Lingo::b_dontPassEvent, 0, 0, false }, // D2
{ "delay", Lingo::b_delay, 1, 1, false }, // D2
{ "do", Lingo::b_do, 1, 1, false }, // D2
+ { "halt", Lingo::b_halt, 0, 0, false }, // D4
{ "nothing", Lingo::b_nothing, 0, 0, false }, // D2
{ "pause", Lingo::b_pause, 0, 0, false }, // D2
// play // D2
@@ -715,6 +716,12 @@ void Lingo::b_do(int nargs) {
warning("STUB: b_do(%s)", d.u.s->c_str());
}
+void Lingo::b_halt(int nargs) {
+ b_quit(nargs);
+
+ warning("Movie halted");
+}
+
void Lingo::b_pause(int nargs) {
g_director->_playbackPaused = true;
@@ -769,19 +776,13 @@ void Lingo::b_quit(int nargs) {
}
void Lingo::b_restart(int nargs) {
- if (g_director->_currentScore)
- g_director->_currentScore->_stopPlay = true;
-
- g_lingo->pushVoid();
+ b_quit(nargs);
warning("Computer restarts");
}
void Lingo::b_shutDown(int nargs) {
- if (g_director->_currentScore)
- g_director->_currentScore->_stopPlay = true;
-
- g_lingo->pushVoid();
+ b_quit(nargs);
warning("Computer shuts down");
}
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 5dea147409..d606b76945 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -120,6 +120,9 @@ TheEntity entities[] = {
{ kTheTimeoutScript, "timeoutScript", false }, // D2 p
{ kTheTime, "time", false }, // D3 f
{ kTheTimer, "timer", false }, // D2 p
+ { kTheTrace, "trace", false }, // D4 p
+ { kTheTraceLoad, "traceLoad", false }, // D4 p
+ { kTheTraceLogFile, "traceLogFile", false }, // D4 p
{ kTheWindow, "window", false },
{ kTheWords, "words", false }, // D3
{ kTheNOEntity, NULL, false }
diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h
index 8cec0ced13..be501ba984 100644
--- a/engines/director/lingo/lingo-the.h
+++ b/engines/director/lingo/lingo-the.h
@@ -118,6 +118,9 @@ enum TheEntityType {
kTheTimeoutPlay,
kTheTimeoutScript,
kTheTimer,
+ kTheTrace,
+ kTheTraceLoad,
+ kTheTraceLogFile,
kTheWindow,
kTheWords
};
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 3c75dd5b85..b327853b39 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -410,6 +410,7 @@ public:
static void b_dontPassEvent(int nargs);
static void b_delay(int nargs);
static void b_do(int nargs);
+ static void b_halt(int nargs);
static void b_nothing(int nargs);
static void b_pause(int nargs);
static void b_playAccel(int nargs);