From b1503cc1eff844fdba3b4afd633a6427944a4aeb Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 5 Feb 2017 23:41:30 +0100 Subject: DIRECTOR: Lingo: Documented D4 "Cast window management" Lingo --- engines/director/lingo/lingo-builtins.cpp | 65 +++++++++++++++++++++++++++---- engines/director/lingo/lingo-the.cpp | 18 ++++----- engines/director/lingo/lingo.h | 11 +++++- 3 files changed, 75 insertions(+), 19 deletions(-) (limited to 'engines/director') diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp index a7a0d8b879..f7c1abe48a 100644 --- a/engines/director/lingo/lingo-builtins.cpp +++ b/engines/director/lingo/lingo-builtins.cpp @@ -133,14 +133,18 @@ static struct BuiltinProto { // Score { "constrainH", Lingo::b_constrainH, 2, 2, true }, // D2 { "constrainV", Lingo::b_constrainV, 2, 2, true }, // D2 - { "duplicate-cast", Lingo::b_duplicateCast, 1, 2, false }, // D4 + { "duplicate", Lingo::b_duplicate, 1, 2, false }, // D4 { "editableText", Lingo::b_editableText, 0, 0, false }, // D2 - { "erase-cast", Lingo::b_eraseCast, 1, 2, false }, // D4 + { "erase", Lingo::b_erase, 1, 1, false }, // D4 + { "findEmpty", Lingo::b_findEmpty, 1, 1, true }, // D4 // go // D2 + { "importFileInto", Lingo::b_importFileInto,2, 2, false }, // D4 { "installMenu", Lingo::b_installMenu, 1, 1, false }, // D2 { "label", Lingo::b_label, 1, 1, true }, // D2 { "marker", Lingo::b_marker, 1, 1, true }, // D2 + { "move", Lingo::b_move, 1, 2, false }, // D4 { "moveableSprite", Lingo::b_moveableSprite,0, 0, false }, // D2 + { "pasteClipBoardInto",Lingo::b_pasteClipBoardInto,1, 1, false }, // D4 { "puppetPalette", Lingo::b_puppetPalette, -1,0, false }, // D2 { "puppetSound", Lingo::b_puppetSound, -1,0, false }, // D2 { "puppetSprite", Lingo::b_puppetSprite, -1,0, false }, // D2 @@ -148,6 +152,8 @@ static struct BuiltinProto { { "puppetTransition",Lingo::b_puppetTransition,-1,0, false },// D2 { "rollOver", Lingo::b_rollOver, 1, 1, true }, // D2 { "spriteBox", Lingo::b_spriteBox, -1,0, false }, // D2 + { "unLoad", Lingo::b_unLoad, 0, 2, false }, // D4 + { "unLoadCast", Lingo::b_unLoadCast, 0, 2, false }, // D4 { "updateStage", Lingo::b_updateStage, 0, 0, false }, // D2 { "zoomBox", Lingo::b_zoomBox, -1,0, false }, // D2 // Point @@ -172,6 +178,7 @@ static struct BuiltinProto { { "true", Lingo::b_true, 0, 0, false }, // D2 { "version", Lingo::b_version, 0, 0, false }, // D3 // References + { "cast", Lingo::b_cast, 1, 1, false }, // D4 { "field", Lingo::b_field, 1, 1, false }, // D3 { "me", Lingo::b_me, -1,0, false }, // D3 @@ -180,8 +187,8 @@ static struct BuiltinProto { }; static const char *twoWordBuiltins[] = { - "duplicate", - "erase", + //"duplicate", + //"erase", "sound", 0 }; @@ -888,8 +895,8 @@ void Lingo::b_constrainV(int nargs) { g_lingo->push(Datum(0)); } -void Lingo::b_duplicateCast(int nargs) { - g_lingo->printSTUBWithArglist("b_duplicateCast", nargs); +void Lingo::b_duplicate(int nargs) { + g_lingo->printSTUBWithArglist("b_duplicate", nargs); g_lingo->dropStack(nargs); } @@ -898,8 +905,22 @@ void Lingo::b_editableText(int nargs) { warning("STUB: b_editableText"); } -void Lingo::b_eraseCast(int nargs) { - g_lingo->printSTUBWithArglist("b_eraseCast", nargs); +void Lingo::b_erase(int nargs) { + g_lingo->printSTUBWithArglist("b_erase", nargs); + + g_lingo->dropStack(nargs); +} + +void Lingo::b_findEmpty(int nargs) { + g_lingo->printSTUBWithArglist("b_findEmpty", nargs); + + g_lingo->dropStack(nargs); + + g_lingo->push(Datum(0)); +} + +void Lingo::b_importFileInto(int nargs) { + g_lingo->printSTUBWithArglist("b_importFileInto", nargs); g_lingo->dropStack(nargs); } @@ -924,11 +945,23 @@ void Lingo::b_marker(int nargs) { g_lingo->push(marker); } +void Lingo::b_move(int nargs) { + g_lingo->printSTUBWithArglist("b_move", nargs); + + g_lingo->dropStack(nargs); +} + void Lingo::b_moveableSprite(int nargs) { Datum d = g_lingo->pop(); warning("STUB: b_moveableSprite(%d)", d.u.i); } +void Lingo::b_pasteClipBoardInto(int nargs) { + g_lingo->printSTUBWithArglist("b_pasteClipBoardInto", nargs); + + g_lingo->dropStack(nargs); +} + void Lingo::b_puppetPalette(int nargs) { g_lingo->convertVOIDtoString(0, nargs); @@ -975,6 +1008,18 @@ void Lingo::b_spriteBox(int nargs) { g_lingo->dropStack(nargs); } +void Lingo::b_unLoad(int nargs) { + g_lingo->printSTUBWithArglist("b_unLoad", nargs); + + g_lingo->dropStack(nargs); +} + +void Lingo::b_unLoadCast(int nargs) { + g_lingo->printSTUBWithArglist("b_unLoadCast", nargs); + + g_lingo->dropStack(nargs); +} + void Lingo::b_zoomBox(int nargs) { g_lingo->printSTUBWithArglist("b_zoomBox", nargs); @@ -1154,6 +1199,10 @@ void Lingo::factoryCall(Common::String &name, int nargs) { /////////////////// // References /////////////////// +void Lingo::b_cast(int nargs) { + warning("STUB: b_cast"); +} + void Lingo::b_field(int nargs) { warning("STUB: b_field"); } diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 8fc9de3249..5dea147409 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -147,7 +147,7 @@ TheEntityField fields[] = { { kTheSprite, "pattern", kThePattern }, // D2 p { kTheSprite, "puppet", kThePuppet }, // D2 p { kTheSprite, "right", kTheRight }, // D2 p - { kTheSprite, "scriptNum", kTheScriptNum }, D4 p + { kTheSprite, "scriptNum", kTheScriptNum }, // D4 p { kTheSprite, "startTime", kTheStartTime }, { kTheSprite, "stretch", kTheStrech }, // D2 p { kTheSprite, "stopTime", kTheStopTime }, @@ -160,15 +160,15 @@ TheEntityField fields[] = { // Common cast fields { kTheCast, "castType", kTheCastType }, // D4 p - { kTheCast, "filename", kTheFilename }, - { kTheCast, "height", kTheHeight }, - { kTheCast, "loaded", kTheLoaded }, - { kTheCast, "modified", kTheModified }, + { kTheCast, "filename", kTheFilename }, // D4 p + { kTheCast, "height", kTheHeight }, // D4 p + { kTheCast, "loaded", kTheLoaded }, // D4 p + { kTheCast, "modified", kTheModified }, // D4 p { kTheCast, "name", kTheName }, // D3 p { kTheCast, "number", kTheNumber }, // D3 p { kTheCast, "rect", kTheRect }, { kTheCast, "purgePriority",kThePurgePriority },// D4 p // 0 Never purge, 1 Purge Last, 2 Purge next, 2 Purge normal - { kTheCast, "scriptText", kTheScriptText }, + { kTheCast, "scriptText", kTheScriptText }, // D4 p { kTheCast, "width", kTheWidth }, // D4 p // Shape fields @@ -186,13 +186,13 @@ TheEntityField fields[] = { // Bitmap fields { kTheCast, "depth", kTheDepth }, - { kTheCast, "regPoint", kTheRegPoint }, - { kTheCast, "palette", kThePalette }, + { kTheCast, "regPoint", kTheRegPoint }, // D4 p + { kTheCast, "palette", kThePalette }, // D4 p { kTheCast, "picture", kThePicture }, // D3 p // TextCast fields { kTheCast, "hilite", kTheHilite }, // D2 p - { kTheCast, "size", kTheSize }, + { kTheCast, "size", kTheSize }, // D4 p { kTheCast, "text", kTheText }, // D2 p // Field fields diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 0899bacdfa..3c75dd5b85 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -382,13 +382,17 @@ public: static void b_constrainH(int nargs); static void b_constrainV(int nargs); - static void b_duplicateCast(int nargs); + static void b_duplicate(int nargs); static void b_editableText(int nargs); - static void b_eraseCast(int nargs); + static void b_erase(int nargs); + static void b_findEmpty(int nargs); + static void b_importFileInto(int nargs); static void b_installMenu(int nargs); static void b_label(int nargs); static void b_marker(int nargs); + static void b_move(int nargs); static void b_moveableSprite(int nargs); + static void b_pasteClipBoardInto(int nargs); static void b_puppetPalette(int nargs); static void b_puppetSound(int nargs); static void b_puppetSprite(int nargs); @@ -396,6 +400,8 @@ public: static void b_puppetTransition(int nargs); static void b_rollOver(int nargs); static void b_spriteBox(int nargs); + static void b_unLoad(int nargs); + static void b_unLoadCast(int nargs); static void b_updateStage(int nargs); static void b_zoomBox(int nargs); @@ -449,6 +455,7 @@ public: static void b_factory(int nargs); void factoryCall(Common::String &name, int nargs); + static void b_cast(int nargs); static void b_field(int nargs); static void b_me(int nargs); -- cgit v1.2.3