[Scummvm-git-logs] scummvm master -> 8622ca0171acd3b6eb10def56868236ce5861e3a

sev- noreply at scummvm.org
Mon Mar 23 00:40:30 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
8622ca0171 DIRECTOR: Add detection and xlibs for The Legend of Lotus Spring


Commit: 8622ca0171acd3b6eb10def56868236ce5861e3a
    https://github.com/scummvm/scummvm/commit/8622ca0171acd3b6eb10def56868236ce5861e3a
Author: eientei95 (einstein95 at users.noreply.github.com)
Date: 2026-03-23T01:40:25+01:00

Commit Message:
DIRECTOR: Add detection and xlibs for The Legend of Lotus Spring

Changed paths:
  A engines/director/lingo/xlibs/e/ecdctrl.cpp
  A engines/director/lingo/xlibs/e/ecdctrl.h
  A engines/director/lingo/xlibs/q/qtsupport.cpp
  A engines/director/lingo/xlibs/q/qtsupport.h
    engines/director/detection_tables.h
    engines/director/lingo/lingo-object.cpp
    engines/director/module.mk


diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index eed9e9eec29..2489d1f0ab8 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -316,6 +316,7 @@ static const PlainGameDescriptor directorGames[] = {
 	{ "letsdiscover",		"Let's Discover" },
 	{ "letters",			"Letters" },
 	{ "lostfoundvol1",		"Lost & Found: Volume 1" },
+	{ "lotusspring",		"The Legend of Lotus Spring" },
 	{ "louiscatorze",		"Louis Cat Orze: The Mystery of the Queen's Necklace" },
 	{ "luxor",				"Secrets of the Luxor" },
 	{ "madcc12",			"Madeline Classroom Companion: 1st & 2nd Grade" },
@@ -8799,6 +8800,12 @@ static const DirectorGameDescription gameDescriptions[] = {
 	MACGAME1_l("loewe3", "", "xn--Lwenzahn 3-ecb",					"rt:e03c6cc5f2cdeef199f75c02928edafe", 1032378, Common::DE_DEU, 602),
 	WINGAME1_l("loewe3", "", "DATA/LOEWE3/SETUP/WIN95/LOEWE95.exe",	"t:0772adacde0f8fa5a9767de25be13527",  1514451, Common::DE_DEU, 602),
 
+	// Windows version requires installation, setup.exe, Setup Factory v4
+	MACGAME2("lotusspring", "", "LotusSpring/LS",				"r:4ea19c8b2483a9ae71df8000cae1097d", 1034669,
+								"LotusSpring/DXR/ChangeCD.dxr", "t:f1fc18e4479a4e26299cef2160315f19", 459346, 650),
+	WINGAME2("lotusspring", "", "LS.exe",						"t:c7e3b8162d6ab37b1960872efbb44ada", 1722439,
+								"DXR/ChangeCD.dxr", 			"t:f1fc18e4479a4e26299cef2160315f19", 459326, 600),
+
 	MACDEMO1("macos85", "Demo", "Mac OS 8.5 Demo", "49cc011560110af5e19d0cd1ee22b821", 1032397, 650),
 
 	WINDEMO1("madtg", "1998 Demo", "MTGDSLID.EXE", "t:84c90c191a840f2419682fbb7dd2ef35", 1317661, 600),
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 4f8c6a1d056..40ca497c2d0 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -54,6 +54,7 @@
 #include "director/lingo/xlibs/d/dpwavi.h"
 #include "director/lingo/xlibs/d/dpwqtw.h"
 #include "director/lingo/xlibs/d/draw.h"
+#include "director/lingo/xlibs/e/ecdctrl.h"
 #include "director/lingo/xlibs/e/ednox.h"
 #include "director/lingo/xlibs/e/eventq.h"
 #include "director/lingo/xlibs/f/fadegammadownxcmd.h"
@@ -115,8 +116,9 @@
 #include "director/lingo/xlibs/p/processxobj.h"
 #include "director/lingo/xlibs/p/putcurs.h"
 #include "director/lingo/xlibs/p/playsoundmoviexobj.h"
-#include "director/lingo/xlibs/q/qtmovie.h"
 #include "director/lingo/xlibs/q/qtcatmovieplayerxobj.h"
+#include "director/lingo/xlibs/q/qtsupport.h"
+#include "director/lingo/xlibs/q/qtmovie.h"
 #include "director/lingo/xlibs/q/qtvr.h"
 #include "director/lingo/xlibs/q/quicktime.h"
 #include "director/lingo/xlibs/r/registercomponent.h"
@@ -275,6 +277,7 @@ static const struct XLibProto {
 	XLIBDEF(DirectsoundXtra,	kXtraObj,		500),	// D5
 	XLIBDEF(DisplayResXtra,			kXtraObj,					500),	// D5
 	XLIBDEF(DrawXObj,			kXObj,			400),	// D4
+	XLIBDEF(ECDCtrlXObj,			kXObj,					400),	// D4
 	XLIBDEF(Ednox,				kXObj,			300),	// D3
 	XLIBDEF(EventQXObj,			kXObj,			400),	// D4
 	XLIBDEF(FEDraculXObj,		kXObj,			400),	// D4
@@ -344,6 +347,7 @@ static const struct XLibProto {
 	XLIBDEF(PutcursXObj,		kXObj,			400),	// D4
 	XLIBDEF(QTCatMoviePlayerXObj,kXObj,			400),	// D4
 	XLIBDEF(QTMovie,			kXObj,			400),	// D4
+	XLIBDEF(QTSupport,			kXObj,			600),	// D4
 	XLIBDEF(QTVR,				kXObj,			400),	// D4
 	XLIBDEF(QtvrxtraXtra,		kXtraObj,		500),	// D5
 	XLIBDEF(Quicktime,			kXObj,			300),	// D3
diff --git a/engines/director/lingo/xlibs/e/ecdctrl.cpp b/engines/director/lingo/xlibs/e/ecdctrl.cpp
new file mode 100644
index 00000000000..75af2e921e7
--- /dev/null
+++ b/engines/director/lingo/xlibs/e/ecdctrl.cpp
@@ -0,0 +1,144 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "common/system.h"
+
+#include "director/director.h"
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-utils.h"
+#include "director/lingo/xlibs/e/ecdctrl.h"
+
+/**************************************************
+ *
+ * USED IN:
+ * The Legend of Lotus Spring
+ *
+ **************************************************/
+
+/*
+-- ECDCTRL External Factory v0.94 20oct95 rcj
+--ECDCTRL
+II     mNew, deviceNum                   -- Creates a new instance of the XObject for deviceNum
+X      mDispose                          -- Disposes of an XObject instance
+S      mName                             -- Returns the XObject name
+SS     mCapability, capsStr              -- Returns true if caps in capsStr available
+SS     mInfo, infoStr                    -- Returns device information
+IS     mPlay, positionStr                -- Plays from/to positionStr
+IS     mSeek, positionStr                -- Repositions playback to positionStr
+IS     mSet, setStr                      -- Sets attributes in setStr
+SS     mStatus, statusStr                -- Returns status requested by statusStr
+I      mStop                             -- Stops the device
+SI     mError, errorNum                  -- Returns an error string corresponding to errorNum
+SS     mInterpretMCI, sendStr            -- Sends the string sendStr directly to MCI
+III    mSetVolume, leftNum, rightNum     -- Sets the cdaudio volume
+I      mGetVolume                        -- Returns the cdaudio volume,
+                                         -- upper word is left, lower word is right
+I      mTotalDevices                     -- Returns the number of cdaudio devices
+II     mSetMixer, channelNum             -- Sets the mixer channel to channelNum,
+                                         -- returns the current channel
+II     mTest, testNum                    -- Tests MCI commands
+II     mIdle, delayNum                   -- Restarts stalled CD playback after a minimum delay
+                                         -- where delayNum is the delay in milliseconds
+ */
+
+namespace Director {
+
+const char *ECDCtrlXObj::xlibName = "ECDCtrl";
+const XlibFileDesc ECDCtrlXObj::fileNames[] = {
+	{ "ECDCTRL",   nullptr },
+	{ nullptr,        nullptr },
+};
+
+static MethodProto xlibMethods[] = {
+	{ "new",				ECDCtrlXObj::m_new,		 1, 1,	400 },
+	{ "dispose",				ECDCtrlXObj::m_dispose,		 0, 0,	400 },
+	{ "name",				ECDCtrlXObj::m_name,		 0, 0,	400 },
+	{ "capability",				ECDCtrlXObj::m_capability,		 1, 1,	400 },
+	{ "info",				ECDCtrlXObj::m_info,		 1, 1,	400 },
+	{ "play",				ECDCtrlXObj::m_play,		 1, 1,	400 },
+	{ "seek",				ECDCtrlXObj::m_seek,		 1, 1,	400 },
+	{ "set",				ECDCtrlXObj::m_set,		 1, 1,	400 },
+	{ "status",				ECDCtrlXObj::m_status,		 1, 1,	400 },
+	{ "stop",				ECDCtrlXObj::m_stop,		 0, 0,	400 },
+	{ "error",				ECDCtrlXObj::m_error,		 1, 1,	400 },
+	{ "interpretMCI",				ECDCtrlXObj::m_interpretMCI,		 1, 1,	400 },
+	{ "setVolume",				ECDCtrlXObj::m_setVolume,		 2, 2,	400 },
+	{ "getVolume",				ECDCtrlXObj::m_getVolume,		 0, 0,	400 },
+	{ "totalDevices",				ECDCtrlXObj::m_totalDevices,		 0, 0,	400 },
+	{ "setMixer",				ECDCtrlXObj::m_setMixer,		 1, 1,	400 },
+	{ "test",				ECDCtrlXObj::m_test,		 1, 1,	400 },
+	{ "idle",				ECDCtrlXObj::m_idle,		 1, 1,	400 },
+
+	{ nullptr, nullptr, 0, 0, 0 }
+};
+
+static BuiltinProto xlibBuiltins[] = {
+
+	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
+};
+
+ECDCtrlXObject::ECDCtrlXObject(ObjectType ObjectType) :Object<ECDCtrlXObject>("ECDCtrl") {
+	_objType = ObjectType;
+}
+
+void ECDCtrlXObj::open(ObjectType type, const Common::Path &path) {
+    ECDCtrlXObject::initMethods(xlibMethods);
+    ECDCtrlXObject *xobj = new ECDCtrlXObject(type);
+    if (type == kXtraObj) {
+        g_lingo->_openXtras.push_back(xlibName);
+        g_lingo->_openXtraObjects.push_back(xobj);
+    }
+    g_lingo->exposeXObject(xlibName, xobj);
+    g_lingo->initBuiltIns(xlibBuiltins);
+}
+
+void ECDCtrlXObj::close(ObjectType type) {
+    ECDCtrlXObject::cleanupMethods();
+    g_lingo->_globalvars[xlibName] = Datum();
+
+}
+
+void ECDCtrlXObj::m_new(int nargs) {
+	g_lingo->printSTUBWithArglist("ECDCtrlXObj::m_new", nargs);
+	g_lingo->dropStack(nargs);
+	g_lingo->push(g_lingo->_state->me);
+}
+
+XOBJSTUBNR(ECDCtrlXObj::m_dispose)
+XOBJSTUB(ECDCtrlXObj::m_name, "")
+XOBJSTUB(ECDCtrlXObj::m_capability, "")
+XOBJSTUB(ECDCtrlXObj::m_info, "")
+XOBJSTUB(ECDCtrlXObj::m_play, 0)
+XOBJSTUB(ECDCtrlXObj::m_seek, 0)
+XOBJSTUB(ECDCtrlXObj::m_set, 0)
+XOBJSTUB(ECDCtrlXObj::m_status, "")
+XOBJSTUB(ECDCtrlXObj::m_stop, 0)
+XOBJSTUB(ECDCtrlXObj::m_error, "")
+XOBJSTUB(ECDCtrlXObj::m_interpretMCI, "")
+XOBJSTUB(ECDCtrlXObj::m_setVolume, 0)
+XOBJSTUB(ECDCtrlXObj::m_getVolume, 0)
+XOBJSTUB(ECDCtrlXObj::m_totalDevices, 0)
+XOBJSTUB(ECDCtrlXObj::m_setMixer, 0)
+XOBJSTUB(ECDCtrlXObj::m_test, 0)
+XOBJSTUB(ECDCtrlXObj::m_idle, 0)
+
+}
diff --git a/engines/director/lingo/xlibs/e/ecdctrl.h b/engines/director/lingo/xlibs/e/ecdctrl.h
new file mode 100644
index 00000000000..baa2ea03e61
--- /dev/null
+++ b/engines/director/lingo/xlibs/e/ecdctrl.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef DIRECTOR_LINGO_XLIBS_E_ECDCTRL_H
+#define DIRECTOR_LINGO_XLIBS_E_ECDCTRL_H
+
+namespace Director {
+
+class ECDCtrlXObject : public Object<ECDCtrlXObject> {
+public:
+	ECDCtrlXObject(ObjectType objType);
+};
+
+namespace ECDCtrlXObj {
+
+extern const char *xlibName;
+extern const XlibFileDesc fileNames[];
+
+void open(ObjectType type, const Common::Path &path);
+void close(ObjectType type);
+
+void m_new(int nargs);
+void m_dispose(int nargs);
+void m_name(int nargs);
+void m_capability(int nargs);
+void m_info(int nargs);
+void m_play(int nargs);
+void m_seek(int nargs);
+void m_set(int nargs);
+void m_status(int nargs);
+void m_stop(int nargs);
+void m_error(int nargs);
+void m_interpretMCI(int nargs);
+void m_setVolume(int nargs);
+void m_getVolume(int nargs);
+void m_totalDevices(int nargs);
+void m_setMixer(int nargs);
+void m_test(int nargs);
+void m_idle(int nargs);
+
+} // End of namespace ECDCtrlXObj
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/lingo/xlibs/q/qtsupport.cpp b/engines/director/lingo/xlibs/q/qtsupport.cpp
new file mode 100644
index 00000000000..e440c5a2d9c
--- /dev/null
+++ b/engines/director/lingo/xlibs/q/qtsupport.cpp
@@ -0,0 +1,129 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/*************************************
+ *
+ * USED IN:
+ * The Legend of Lotus Spring
+ *
+ *************************************/
+
+/*
+* From "Director in a Nutshell":
++----------------------------------------------------------------------------------------------------------+--------+--------+--------+
+| Command                                                                                                  | System | Member | Sprite |
++==========================================================================================================+========+========+========+
+| canUseQuicktimeStreaming()                                                                               | ✓      |        |        |
+| isUsingQuicktimeStreaming()                                                                              | ✓      |        |        |
+| interface (xtra "QuickTimeSupport")                                                                      | ✓      |        |        |
+| mMessageList (xtra "QuickTimeSupport")                                                                   | ✓      |        |        |
+| new (#quickTimeMedia)                                                                                    | ✓      |        |        |
+| qtRegisterAccessKey (category, key)                                                                      | ✓      |        |        |
+| qtUnRegisterAccessKey (category, key)                                                                    | ✓      |        |        |
+| quickTimeVersion()                                                                                       | ✓      |        |        |
+| setTrackEnabled (sprite qtSprite, track)                                                                 |        |        | ✓      |
+| trackCount (member qtMember); trackCount (sprite qtSprite)                                               |        | ✓      | ✓      |
+| trackEnabled (sprite qtSprite, track)                                                                    |        |        | ✓      |
+| trackText (sprite qtSprite, track)                                                                       |        |        | ✓      |
+| trackType (member qtMember, track); trackType (sprite qtSprite, track)                                   |        | ✓      | ✓      |
+| useQuickTimeStreaming (TRUE | FALSE)                                                                     | ✓      |        |        |
+| VREnableHotSpot (sprite qtvrSprite, hotSpotID, TRUE | FALSE)                                             |        |        | ✓      |
+| VRGetHotSpotRect (sprite qtvrSprite, hotSpotID)                                                          |        |        | ✓      |
+| VRNudge (sprite qtvrSprite, #left | #upLeft | #up | #upRight | #right | #downRight | #down | #downLeft)  |        |        | ✓      |
+| VRPtToHotSpotID (sprite qtvrSprite, point(the mouseH, the mouseV))                                       |        |        | ✓      |
+| VRswing (sprite qtvrSprite, pan, tilt, fieldOfView)                                                      |        |        | ✓      |
++----------------------------------------------------------------------------------------------------------+--------+--------+--------+
+*/
+
+#include "director/director.h"
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-utils.h"
+#include "director/lingo/xlibs/q/qtsupport.h"
+
+
+namespace Director {
+
+const char *QTSupport::xlibName = "QuickTimeSupport";
+const XlibFileDesc QTSupport::fileNames[] = {
+	{ "QuickTime Asset",	nullptr },
+	{ nullptr,		nullptr },
+};
+
+static const MethodProto xlibMethods[] = {
+	{ "new",						QTSupport::m_new,						1, 1,  600 },
+	{ "CanUseQuickTimeStreaming",	QTSupport::m_canUseQuicktimeStreaming,	0, 0,  600 },
+	{ "UseQuickTimeStreaming",		QTSupport::m_useQuickTimeStreaming,		1, 1,  600 },
+	{ "IsUsingQuickTimeStreaming",	QTSupport::m_isUsingQuicktimeStreaming,	0, 0,  600 },
+	// { "interface",					QTSupport::m_interface,					1, 1,  600 },
+	// { "mMessageList",				QTSupport::m_mMessageList,				1, 1,  600 },
+	// { "qtRegisterAccessKey",		QTSupport::m_qtRegisterAccessKey,		2, 2,  600 },
+	// { "qtUnRegisterAccessKey",		QTSupport::m_qtUnRegisterAccessKey,		2, 2,  600 },
+	{ nullptr, nullptr, 0, 0, 0 }
+};
+
+static BuiltinProto xlibBuiltins[] = {
+	{ "QuickTimeVersion",			QTSupport::m_quickTimeVersion,			0, 0,  600, HBLTIN },
+	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
+};
+
+QTSupportXObject::QTSupportXObject(ObjectType ObjectType) :Object<QTSupportXObject>("RegistryReader") {
+	_objType = ObjectType;
+}
+
+bool QTSupportXObject::hasProp(const Common::String &propName) {
+	return (propName == "name");
+}
+
+Datum QTSupportXObject::getProp(const Common::String &propName) {
+	if (propName == "name")
+		return Datum(QTSupport::xlibName);
+	warning("QTSupport::getProp: unknown property '%s'", propName.c_str());
+	return Datum();
+}
+
+void QTSupport::open(ObjectType type, const Common::Path &path) {
+    QTSupportXObject::initMethods(xlibMethods);
+    QTSupportXObject *xobj = new QTSupportXObject(type);
+    if (type == kXtraObj) {
+        g_lingo->_openXtras.push_back(xlibName);
+		g_lingo->_openXtraObjects.push_back(xobj);
+	}
+    g_lingo->exposeXObject(xlibName, xobj);
+    g_lingo->initBuiltIns(xlibBuiltins);
+}
+
+void QTSupport::close(ObjectType type) {
+    QTSupportXObject::cleanupMethods();
+    g_lingo->_globalvars[xlibName] = Datum();
+}
+
+
+XOBJSTUB(QTSupport::m_new, "")
+XOBJSTUB(QTSupport::m_canUseQuicktimeStreaming, "")
+XOBJSTUB(QTSupport::m_isUsingQuicktimeStreaming, "")
+XOBJSTUB(QTSupport::m_interface, "")
+XOBJSTUB(QTSupport::m_mMessageList, "")
+XOBJSTUB(QTSupport::m_qtRegisterAccessKey, "")
+XOBJSTUB(QTSupport::m_qtUnRegisterAccessKey, "")
+XOBJSTUB(QTSupport::m_quickTimeVersion, 4)
+XOBJSTUB(QTSupport::m_useQuickTimeStreaming, "")
+} // End of namespace Director
diff --git a/engines/director/lingo/xlibs/q/qtsupport.h b/engines/director/lingo/xlibs/q/qtsupport.h
new file mode 100644
index 00000000000..dab84a76f19
--- /dev/null
+++ b/engines/director/lingo/xlibs/q/qtsupport.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef DIRECTOR_LINGO_XLIBS_QTSUPPORT_H
+#define DIRECTOR_LINGO_XLIBS_QTSUPPORT_H
+
+namespace Director {
+
+class QTSupportXObject : public Object<QTSupportXObject> {
+public:
+	QTSupportXObject(ObjectType objType);
+
+	bool hasProp(const Common::String &propName) override;
+	Datum getProp(const Common::String &propName) override;
+};
+
+namespace QTSupport {
+
+extern const char *xlibName;
+extern const XlibFileDesc fileNames[];
+
+void open(ObjectType type, const Common::Path &path);
+void close(ObjectType type);
+
+void m_new(int nargs);
+void m_canUseQuicktimeStreaming(int nargs);
+void m_isUsingQuicktimeStreaming(int nargs);
+void m_interface(int nargs);
+void m_mMessageList(int nargs);
+void m_qtRegisterAccessKey(int nargs);
+void m_qtUnRegisterAccessKey(int nargs);
+void m_quickTimeVersion(int nargs);
+void m_useQuickTimeStreaming(int nargs);
+
+} // End of namespace QTSupport
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/module.mk b/engines/director/module.mk
index bc922d454c7..0f70a1b434d 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -85,6 +85,7 @@ MODULE_OBJS = \
 	lingo/xlibs/d/dpwavi.o \
 	lingo/xlibs/d/dpwqtw.o \
 	lingo/xlibs/d/draw.o \
+	lingo/xlibs/e/ecdctrl.o \
 	lingo/xlibs/e/ednox.o \
 	lingo/xlibs/e/eventq.o \
 	lingo/xlibs/f/fadegammadownxcmd.o \
@@ -151,6 +152,7 @@ MODULE_OBJS = \
 	lingo/xlibs/p/putcurs.o \
 	lingo/xlibs/q/qtcatmovieplayerxobj.o \
 	lingo/xlibs/q/qtmovie.o \
+	lingo/xlibs/q/qtsupport.o \
 	lingo/xlibs/q/qtvr.o \
 	lingo/xlibs/q/quicktime.o \
 	lingo/xlibs/r/registercomponent.o \




More information about the Scummvm-git-logs mailing list