From c0dd0f4f53ea5cbaa12a61db6b7972c399c7b0c6 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 8 Feb 2017 21:45:48 +0100 Subject: DIRECTOR: Lingo: Documented D4 "Playing movies" Lingo --- engines/director/lingo/lingo-builtins.cpp | 29 ++++++++++++++++++++--------- engines/director/lingo/lingo-the.cpp | 3 ++- engines/director/lingo/lingo-the.h | 1 + engines/director/lingo/lingo.h | 1 + 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp index 9e95fcbd33..92511b1448 100644 --- a/engines/director/lingo/lingo-builtins.cpp +++ b/engines/director/lingo/lingo-builtins.cpp @@ -96,20 +96,20 @@ static struct BuiltinProto { { "xFactoryList", Lingo::b_xFactoryList, 1, 1, true }, // D3 f // Control { "abort", Lingo::b_abort, 0, 0, false }, // D4 c - { "continue", Lingo::b_continue, 0, 0, false }, // D2 + { "continue", Lingo::b_continue, 0, 0, false }, // D2 c { "dontPassEvent", Lingo::b_dontPassEvent, 0, 0, false }, // D2 c { "delay", Lingo::b_delay, 1, 1, false }, // D2 { "do", Lingo::b_do, 1, 1, false }, // D2 { "halt", Lingo::b_halt, 0, 0, false }, // D4 c { "nothing", Lingo::b_nothing, 0, 0, false }, // D2 c { "pass", Lingo::b_pass, 0, 0, false }, // D4 c - { "pause", Lingo::b_pause, 0, 0, false }, // D2 - // play // D2 + { "pause", Lingo::b_pause, 0, 0, false }, // D2 c + // play // D2 c { "playAccel", Lingo::b_playAccel, -1,0, false }, // D2 // play done // D2 - { "preLoad", Lingo::b_preLoad, -1,0, false }, // D3 - { "preLoadCast", Lingo::b_preLoadCast, -1,0, false }, // D3 - { "quit", Lingo::b_quit, 0, 0, false }, // D2 + { "preLoad", Lingo::b_preLoad, -1,0, false }, // D3 c + { "preLoadCast", Lingo::b_preLoadCast, -1,0, false }, // D3 c + { "quit", Lingo::b_quit, 0, 0, false }, // D2 c { "restart", Lingo::b_restart, 0, 0, false }, // D2 { "shutDown", Lingo::b_shutDown, 0, 0, false }, // D2 { "startTimer", Lingo::b_startTimer, 0, 0, false }, // D2 @@ -149,8 +149,8 @@ static struct BuiltinProto { { "importFileInto", Lingo::b_importFileInto,2, 2, false }, // D4 c { "installMenu", Lingo::b_installMenu, 1, 1, false }, // D2 c { "intersect", Lingo::b_intersect, 2, 2, false }, // D4 f - { "label", Lingo::b_label, 1, 1, true }, // D2 - { "marker", Lingo::b_marker, 1, 1, true }, // D2 + { "label", Lingo::b_label, 1, 1, true }, // D2 f + { "marker", Lingo::b_marker, 1, 1, true }, // D2 f { "move", Lingo::b_move, 1, 2, false }, // D4 c { "moveableSprite", Lingo::b_moveableSprite,0, 0, false }, // D2 { "pasteClipBoardInto",Lingo::b_pasteClipBoardInto,1, 1, false }, // D4 c @@ -159,6 +159,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 + { "ramNeeded", Lingo::b_ramNeeded, 2, 2, true }, // D4 f { "rollOver", Lingo::b_rollOver, 1, 1, true }, // D2 f { "spriteBox", Lingo::b_spriteBox, -1,0, false }, // D2 { "unLoad", Lingo::b_unLoad, 0, 2, false }, // D4 c @@ -240,9 +241,11 @@ static const char *builtinFunctions[] = { "integer", "integerp", "intersect", + "label", "list", "listP", "log", + "marker", "max", "min", "objectp", @@ -250,6 +253,7 @@ static const char *builtinFunctions[] = { "pi", "pictureP", "power", + "ramNeeded", "random", "rollOver", "quote", @@ -1132,9 +1136,16 @@ void Lingo::b_puppetTransition(int nargs) { g_lingo->dropStack(nargs); } +void Lingo::b_ramNeeded(int nargs) { + Datum d = g_lingo->pop(); + warning("STUB: b_ramNeeded(%d)", d.u.i); + + g_lingo->push(Datum(0)); +} + void Lingo::b_rollOver(int nargs) { Datum d = g_lingo->pop(); - warning("STUB: b_puppetTempo(%d)", d.u.i); + warning("STUB: b_rollOver(%d)", d.u.i); g_lingo->push(Datum(0)); } diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 35a5707a52..090a7fed81 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -51,6 +51,7 @@ TheEntity entities[] = { { kTheFixStageSize, "fixStageSize", false }, // D2 p { kTheFloatPrecision, "floatPrecision", false }, // D3 p { kTheFrame, "frame", false }, // D2 f + { kTheFrameLabel, "frameLabel", false }, // D4 p { kTheFrameScript, "frameScript", false }, // D4 p { kTheFreeBlock, "freeBlock", false }, // D2 f { kTheFreeBytes, "freeBytes", false }, // D2 f @@ -65,7 +66,7 @@ TheEntity entities[] = { { kTheLabelList, "labelList", false }, // D3 f { kTheLastClick, "lastClick", false }, // D2 f { kTheLastEvent, "lastEvent", false }, // D2 f - { kTheLastFrame, "lastFrame", false }, + { kTheLastFrame, "lastFrame", false }, // D4 p { kTheLastKey, "lastKey", false }, // D2 f { kTheLastRoll, "lastRoll", false }, // D2 f { kTheLines, "lines", false }, // D3 diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h index 994fcc9e80..e675a2d4b3 100644 --- a/engines/director/lingo/lingo-the.h +++ b/engines/director/lingo/lingo-the.h @@ -49,6 +49,7 @@ enum TheEntityType { kTheFixStageSize, kTheFloatPrecision, kTheFrame, + kTheFrameLabel, kTheFrameScript, kTheFreeBlock, kTheFreeBytes, diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 42aa2328fd..83c34fbf4f 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -408,6 +408,7 @@ public: static void b_puppetSprite(int nargs); static void b_puppetTempo(int nargs); static void b_puppetTransition(int nargs); + static void b_ramNeeded(int nargs); static void b_rollOver(int nargs); static void b_spriteBox(int nargs); static void b_unLoad(int nargs); -- cgit v1.2.3