From 5ee51026c7f492e4d862551aeda31fea26e76ae7 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 10 Jan 2017 00:02:45 +0100 Subject: DIRECTOR: Lingo: More documentation for D3 differences --- engines/director/lingo/lingo-builtins.cpp | 33 +++++++++++++++++++++++++++++++ engines/director/lingo/lingo-the.cpp | 4 +++- engines/director/lingo/lingo-the.h | 2 ++ engines/director/lingo/lingo.h | 3 +++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp index a53601366d..30936c6fa8 100644 --- a/engines/director/lingo/lingo-builtins.cpp +++ b/engines/director/lingo/lingo-builtins.cpp @@ -75,6 +75,8 @@ static struct BuiltinProto { // play // D2 { "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 { "restart", Lingo::b_restart, 0, 0, false }, // D2 { "shutDown", Lingo::b_shutDown, 0, 0, false }, // D2 @@ -136,6 +138,7 @@ static struct BuiltinProto { { "return", Lingo::b_return, 0, 0, false }, // D2 { "tab", Lingo::b_tab, 0, 0, false }, // D2 { "true", Lingo::b_true, 0, 0, false }, // D2 + { "version", Lingo::b_version, 0, 0, false }, // D3 // References { "field", Lingo::b_field, 1, 1, false }, // D3 { "me", Lingo::b_me, -1,0, false }, // D3 @@ -526,6 +529,18 @@ void Lingo::b_playAccel(int nargs) { g_lingo->dropStack(nargs); } +void Lingo::b_preLoad(int nargs) { + g_lingo->printStubWithArglist("b_preLoad", nargs); + + g_lingo->dropStack(nargs); +} + +void Lingo::b_preLoadCast(int nargs) { + g_lingo->printStubWithArglist("b_preLoadCast", nargs); + + g_lingo->dropStack(nargs); +} + void Lingo::b_printFrom(int nargs) { g_lingo->printStubWithArglist("b_printFrom", nargs); @@ -851,6 +866,10 @@ void Lingo::b_true(int nargs) { g_lingo->push(Datum(1)); } +void Lingo::b_version(int nargs) { + g_lingo->push(Datum(g_director->getVersion())); +} + /////////////////// // Factory /////////////////// @@ -858,6 +877,20 @@ void Lingo::b_factory(int nargs) { // This is intentionally empty } +// TODO: +// List of predefined methods in D3 +// mAtFrame +// mDescribe +// mDispose +// mGet +// mInstanceRespondsTo +// mMessageList +// mName +// mNew +// mPerform +// mPut +// mRespondsTo + void Lingo::factoryCall(Common::String &name, int nargs) { Common::String s("factoryCall: "); diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 8eb37a0de5..898bdf50fc 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -44,7 +44,7 @@ TheEntity entities[] = { { kTheDoubleClick, "doubleClick", false }, // D2 f { kTheExitLock, "exitLock", false }, // D2 p { kTheFixStageSize, "fixStageSize", false }, // D2 p - { kTheFloatPrecision, "floatPrecision", false }, + { kTheFloatPrecision, "floatPrecision", false }, // D3 p { kTheFrame, "frame", false }, // D2 f { kTheFreeBlock, "freeBlock", false }, // D2 f { kTheFreeBytes, "freeBytes", false }, // D2 f @@ -54,6 +54,7 @@ TheEntity entities[] = { { kTheKey, "key", false }, // D2 f { kTheKeyCode, "keyCode", false }, // D2 f { kTheKeyDownScript, "keyDownScript", false }, // D2 p + { kTheLabelList, "labelList", false }, // D3 f { kTheLastClick, "lastClick", false }, // D2 f { kTheLastEvent, "lastEvent", false }, // D2 f { kTheLastFrame, "lastFrame", false }, @@ -95,6 +96,7 @@ TheEntity entities[] = { { kTheSqrt, "sqrt", false }, // D2 f { kTheStage, "stage", false }, { kTheStageBottom, "stageBottom", false }, // D2 f + { kTheStageColor, "stageColor", false }, // D3 p { kTheStageLeft, "stageLeft", false }, // D2 f { kTheStageRight, "stageRight", false }, // D2 f { kTheStageTop, "stageTop", false }, // D2 f diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h index a939d56cf9..ba3ef8b87c 100644 --- a/engines/director/lingo/lingo-the.h +++ b/engines/director/lingo/lingo-the.h @@ -70,6 +70,7 @@ enum TheEntityType { kTheKey, kTheKeyDownScript, kTheKeyCode, + kTheLabelList, kTheLastClick, kTheLastEvent, kTheLastFrame, @@ -107,6 +108,7 @@ enum TheEntityType { kTheRomanLingo, kTheStage, kTheStageBottom, + kTheStageColor, kTheStageLeft, kTheStageRight, kTheStageTop diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index cc0bff1bcb..4502eda4c9 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -358,6 +358,8 @@ public: static void b_nothing(int nargs); static void b_pause(int nargs); static void b_playAccel(int nargs); + static void b_preLoad(int nargs); + static void b_preLoadCast(int nargs); static void b_quit(int nargs); static void b_restart(int nargs); static void b_shutDown(int nargs); @@ -393,6 +395,7 @@ public: static void b_return(int nargs); static void b_tab(int nargs); static void b_true(int nargs); + static void b_version(int nargs); static void b_factory(int nargs); void factoryCall(Common::String &name, int nargs); -- cgit v1.2.3