[Scummvm-git-logs] scummvm master -> 3704b01c46e1cdc66d34d6a40badd33c1582f052

sev- noreply at scummvm.org
Sat Jun 15 23:07:14 UTC 2024


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

Summary:
7f8db3afdd DIRECTOR: Add a handful of german detection entries
46b350a804 DIRECTOR: XOBJ: Revert redundant duplicate definitions in jwxini xLib
362882e805 DIRECTOR: XOBJ: Add inixobj
ec48ec243d DIRECTOR: XOBJ: Duplicate methods from inixobj in jwxini
07221c99b4 DIRECTOR: XOBJ: Add bimxobj
18b670b617 DIRECTOR: XOBJ: Add filexobj
f8710e88dd DIRECTOR: Add detection table entry for Karma (German)
650057a5f8 DIRECTOR: XOBJ: Remove filexobj and use fileio instead
3704b01c46 DIRECTOR: XOBJ: Remove usage comment for "Karma" in jwxini


Commit: 7f8db3afdde26e61bbb34b7b936f6dff940a0ac4
    https://github.com/scummvm/scummvm/commit/7f8db3afdde26e61bbb34b7b936f6dff940a0ac4
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: Add a handful of german detection entries

- Das Buch von Lulu
- Mein Freund, der Hase
- Blinky Bill 1 (german)

Changed paths:
    engines/director/detection_tables.h


diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index f76386289e2..0e9105a641f 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -920,6 +920,7 @@ static const PlainGameDescriptor directorGames[] = {
 	{ "girlspack",			"Girl's Pack!" },
 	{ "glitzerschuppen",	"Der Regenbogenfisch Die Suche Nach Den Glitzerschuppen" },
 	{ "globiabc",			"Globi's ABC" },
+	{ "hase",				"Mein Freund, der Hase" },
 	{ "ichsehewas",			"Ich sehe was..." },
 	{ "informaticus",		"Informaticus" },
 	{ "janoschpanama",		"JANOSCH: Oh, wie schön ist Panama" },
@@ -932,6 +933,7 @@ static const PlainGameDescriptor directorGames[] = {
 	{ "loewe4",				"Löwenzahn 4" },
 	{ "loewe5",				"Löwenzahn 5" },
 	{ "loewe6",				"Löwenzahn 6" },
+	{ "lulu",				"Das Buch von Lulu" },
 	{ "mathica",			"Mathica ... und Mathematik wird zum Abenteuer" },
 	{ "mats3",				"Mats und das rätselhafte Tier" },
 	{ "maus2",				"Die CD-ROM mit der Maus 2" },
@@ -3643,6 +3645,10 @@ static const DirectorGameDescription gameDescriptions[] = {
 	WINGAME1t_l("blinkybill1", "", "BLINKY95.EXE", "146512cdebe499a48872cc9e8710d738", 717025, Common::PT_BRA, 404),
 	MACGAME2_l(	"blinkybill1", "", "BB/16M", "17efee018a660458fae80de4364021ac", 481254,
 								   "A Caverna do Fantasma", "cbf7119d62a3528d490cd517b4451061", 5965, Common::IT_ITA, 404),
+	//Original filename is Das Geheimnis der Geisterhöhle
+	MACGAME2_l("blinkybill1", "", "BB/16M", 								"tr:5d2b19cb3951261ca08a95815c703e61", 481254,
+								  "xn--Das Geheimnis der Geisterhhle-55c",	"tr:e2eb9adade533ceb57418c4558323ade", 5960, Common::DE_DEU, 404),
+	WINGAME1_l("blinkybill1", "", "BLINKY95.EXE", "t:53dae92fa6a4f1ac8a95f5c1f5178d0f", 727923, Common::DE_DEU, 404),
 	MACDEMO2(	"blinkybill1", "Demo", "BB/16M", "17efee018a660458fae80de4364021ac", 481254,
 									   "Ghost Cave Demo 16Mb", "5b8b1a76b4724565b8b3f184a753b79a", 2502, 404),
 	WINDEMO1t(	"blinkybill1", "Demo", "BLINKY.EXE", "6641493b9033e5c39e0f0fa1870b1081", 712501, 404),
@@ -4303,6 +4309,9 @@ static const DirectorGameDescription gameDescriptions[] = {
 	WINGAME1_l("hamsterland2", "", "HL2SP.EXE",					   "d:8dd22b8bde300c9fb5b66808905300f7", 875665, Common::ES_ESP, 404),
 	WINGAME1("hamsterland2", "",   "HL2EN.EXE",					   "d:4c812a63165c1f50242e879aae62718d", 859681, 404),
 
+	WINGAME2_l("hase", "", "HASE.EXE", "t:45047854f4e15a45a8627618df44e9c3", 696857,
+						   "HASE.LIB", "d:8d8f5a4bf0d27ec926022e90ac4aeefe", 4483876, Common::DE_DEU, 404),
+
 	// Sampler is found on AlphaBonk Farm and probably elsewhere
 	MACGAME1("headbone", "Sampler", "Headbone CD-ROM Sampler", "r:5bbb193a8785c70abe2a4d86b99e1536", 303870, 404),
 	WINGAME2("headbone", "Sampler", "SAMPLER.EXE",  "b083372f35bfaa97f68cfa7f9bb5222e", 2132572,
@@ -4726,6 +4735,10 @@ static const DirectorGameDescription gameDescriptions[] = {
 	// Win/Mac versions are D3
 	PIPGAME1_l("lzone", "", "L-ZONE", "07c3095bd36e5aed00ba12f17f761070", 60096, Common::JA_JPN, 400),
 
+	MACGAME1_l("lulu", "", "Das Buch von Lulu PowerMac", "tr:c49c2f262fa9eb574d06f6f46903330a", 78730, Common::DE_DEU, 404),
+	WINGAME2_l("lulu", "", "LULU.EXE", 					 "t:a89aa6079ba7745917c63b99e52ade66", 876993,
+						   "CHAP/1CHAP.DXR",  			 "d:f4f62669342b305b789479014969e782", 5011138, Common::DE_DEU, 404),
+
 	// Pre-rendered CG animated adventure based on the popular comedy manga
 	// Developed by Future Pirates, published by Toshiba EMI
 	MACGAME1_l("macaroni", "", "Macaroni.PowerMac", "be7faef1b5c713e2d13a693eb6e1f5c9", 180281, Common::JA_JPN, 404),


Commit: 46b350a8047a74a46dd0176b214c3e8004b3db73
    https://github.com/scummvm/scummvm/commit/46b350a8047a74a46dd0176b214c3e8004b3db73
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Revert redundant duplicate definitions in jwxini xLib

Changed paths:
    engines/director/lingo/xlibs/jwxini.cpp
    engines/director/lingo/xlibs/jwxini.h


diff --git a/engines/director/lingo/xlibs/jwxini.cpp b/engines/director/lingo/xlibs/jwxini.cpp
index 6d56d782c26..1caf8e41ea9 100644
--- a/engines/director/lingo/xlibs/jwxini.cpp
+++ b/engines/director/lingo/xlibs/jwxini.cpp
@@ -58,20 +58,12 @@ const char *JourneyWareXINIXObj::fileNames[] = {
 };
 
 static MethodProto xlibMethods[] = {
-	{"dispose", 					JourneyWareXINIXObj::m_dispose, 0, 0, 400}, // D4
 	{"new", 						JourneyWareXINIXObj::m_new, 0, 0, 400}, // D4
-	{"name", 						JourneyWareXINIXObj::m_name, 0, 0, 400}, // D4
-	{"getPrivateProfileInt", 		JourneyWareXINIXObj::m_GetPrivateProfileInt, 4, 4, 400}, // D4
 	{"GetPrivateProfileInt", 		JourneyWareXINIXObj::m_GetPrivateProfileInt, 4, 4, 400}, // D4
-	{"getPrivateProfileString", 	JourneyWareXINIXObj::m_GetPrivateProfileString, 5, 5, 400}, // D4
 	{"GetPrivateProfileString", 	JourneyWareXINIXObj::m_GetPrivateProfileString, 5, 5, 400}, // D4
-	{"getProfileInt", 				JourneyWareXINIXObj::m_GetProfileInt, 3, 3, 400}, // D4
 	{"GetProfileInt", 				JourneyWareXINIXObj::m_GetProfileInt, 3, 3, 400}, // D4
-	{"getProfileString", 			JourneyWareXINIXObj::m_GetProfileString, 4, 4, 400}, // D4
 	{"GetProfileString", 			JourneyWareXINIXObj::m_GetProfileString, 4, 4, 400}, // D4
-	{"writePrivateProfileString", 	JourneyWareXINIXObj::m_WritePrivateProfileString, 4, 4, 400}, // D4
 	{"WritePrivateProfileString", 	JourneyWareXINIXObj::m_WritePrivateProfileString, 4, 4, 400}, // D4
-	{"writeProfileString", 			JourneyWareXINIXObj::m_WriteProfileString, 3, 3, 400}, // D4
 	{"WriteProfileString", 			JourneyWareXINIXObj::m_WriteProfileString, 3, 3, 400}, // D4
 	{nullptr, nullptr, 0, 0, 0}
 };
@@ -139,7 +131,5 @@ void JourneyWareXINIXObj::m_GetProfileString(int nargs) {
 
 XOBJSTUB(JourneyWareXINIXObj::m_WritePrivateProfileString, 0)
 XOBJSTUB(JourneyWareXINIXObj::m_WriteProfileString, 0)
-XOBJSTUBNR(JourneyWareXINIXObj::m_dispose)
-XOBJSTUB(JourneyWareXINIXObj::m_name, "")
 
 } // End of namespace Director
diff --git a/engines/director/lingo/xlibs/jwxini.h b/engines/director/lingo/xlibs/jwxini.h
index 92b7d1351a9..74c46339605 100644
--- a/engines/director/lingo/xlibs/jwxini.h
+++ b/engines/director/lingo/xlibs/jwxini.h
@@ -39,9 +39,7 @@ void open(ObjectType type, const Common::Path &path);
 void close(ObjectType type);
 
 void m_new(int nargs);
-void m_name(int nargs);
 void m_clear(int nargs);
-void m_dispose(int nargs);
 
 void m_GetPrivateProfileInt(int nargs);
 void m_GetPrivateProfileString(int nargs);


Commit: 362882e805cd5dbedae69a85fe2f1c50c1fb5ecd
    https://github.com/scummvm/scummvm/commit/362882e805cd5dbedae69a85fe2f1c50c1fb5ecd
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Add inixobj

Changed paths:
  A engines/director/lingo/xlibs/inixobj.cpp
  A engines/director/lingo/xlibs/inixobj.h


diff --git a/engines/director/lingo/xlibs/inixobj.cpp b/engines/director/lingo/xlibs/inixobj.cpp
new file mode 100644
index 00000000000..af817b46797
--- /dev/null
+++ b/engines/director/lingo/xlibs/inixobj.cpp
@@ -0,0 +1,90 @@
+/* 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/inixobj.h"
+
+/**************************************************
+ *
+ * USED IN:
+ * Karma: Curse of the 12 Caves
+ *
+ **************************************************/
+
+/*
+-- Ini File External Factory. 9feb93 JT
+--Ini
+I     mNew         -- Creates a new instance of the XObject
+SSSSS mReadString  fileName, SecName, EntryName, DefaultStr -- Read .INI
+ISSSS mWriteString fileName, SecName, EntryName, String     -- Write .INI
+I     mDispose     -- Disposes of XObject instance.
+ */
+
+namespace Director {
+
+const char *IniXObj::xlibName = "Ini";
+const char *IniXObj::fileNames[] = {
+	"INI",
+	nullptr
+};
+
+static MethodProto xlibMethods[] = {
+	{"new",			IniXObj::m_new, 0, 0, 400},
+	{"readString",	IniXObj::m_readString, 4, 4, 400},
+	{"writeString",	IniXObj::m_writeString, 4, 4, 400},
+	{nullptr, nullptr, 0, 0, 0}
+};
+
+static BuiltinProto xlibBuiltins[] = {
+	{nullptr, nullptr, 0, 0, 0, VOIDSYM}
+};
+
+IniXObject::IniXObject(const ObjectType objType) : Object<IniXObject>("Ini") {
+	_objType = objType;
+}
+
+void IniXObj::open(const ObjectType type, const Common::Path &path) {
+	IniXObject::initMethods(xlibMethods);
+	IniXObject *xobj = new IniXObject(type);
+	g_lingo->exposeXObject(xlibName, xobj);
+	g_lingo->initBuiltIns(xlibBuiltins);
+}
+
+void IniXObj::close(ObjectType type) {
+	IniXObject::cleanupMethods();
+	g_lingo->_globalvars[xlibName] = Datum();
+}
+
+void IniXObj::m_new(const int nargs) {
+	g_lingo->printSTUBWithArglist("IniXObj::m_new", nargs);
+	g_lingo->dropStack(nargs);
+	g_lingo->push(g_lingo->_state->me);
+}
+
+XOBJSTUB(IniXObj::m_readString, "")
+XOBJSTUB(IniXObj::m_writeString, 0)
+
+}
diff --git a/engines/director/lingo/xlibs/inixobj.h b/engines/director/lingo/xlibs/inixobj.h
new file mode 100644
index 00000000000..3f59557f378
--- /dev/null
+++ b/engines/director/lingo/xlibs/inixobj.h
@@ -0,0 +1,52 @@
+/* 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_INI_H
+#define DIRECTOR_LINGO_XLIBS_INI_H
+
+#include "common/path.h"
+#include "director/types.h"
+#include "director/lingo/lingo-object.h"
+
+namespace Director {
+
+class IniXObject : public Object<IniXObject> {
+public:
+	IniXObject(ObjectType objType);
+};
+
+namespace IniXObj {
+
+extern const char *xlibName;
+extern const char *fileNames[];
+
+void open(ObjectType type, const Common::Path &path);
+void close(ObjectType type);
+
+void m_new(int nargs);
+void m_readString(int nargs);
+void m_writeString(int nargs);
+
+} // End of namespace IniXObj
+
+} // End of namespace Director
+
+#endif


Commit: ec48ec243d880db80f12353c074c35212b8682e7
    https://github.com/scummvm/scummvm/commit/ec48ec243d880db80f12353c074c35212b8682e7
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Duplicate methods from inixobj in jwxini

As both xLibs use the same name (INI), this change is required for now until we have a system where the xLibs can be selected target-specific.

When this is done, this commit should be reverted.

Changed paths:
    engines/director/lingo/xlibs/jwxini.cpp
    engines/director/lingo/xlibs/jwxini.h


diff --git a/engines/director/lingo/xlibs/jwxini.cpp b/engines/director/lingo/xlibs/jwxini.cpp
index 1caf8e41ea9..0b3d13f083c 100644
--- a/engines/director/lingo/xlibs/jwxini.cpp
+++ b/engines/director/lingo/xlibs/jwxini.cpp
@@ -25,6 +25,7 @@
  * Gahan Wilson's Ultimate Haunted House
  * Wellen, Wracks und Wassermaenner
  *
+ * Karma: Curse of the 12 Caves
  *************************************/
 
 /*
@@ -41,13 +42,22 @@
  * ISSS   mWriteProfileString, App, Key, String                     --WriteProfileString
  */
 
+/*
+ * Duplicated from inixobj
+ * TODO: remove when inixobj is properly connected and used
+ *
+ * -- Ini File External Factory. 9feb93 JT
+ * --Ini
+ * SSSSS mReadString  fileName, SecName, EntryName, DefaultStr -- Read .INI
+ * ISSSS mWriteString fileName, SecName, EntryName, String     -- Write .INI
+ */
+
 #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/jwxini.h"
 
-
 namespace Director {
 
 const char *JourneyWareXINIXObj::xlibName = "INI";
@@ -65,6 +75,12 @@ static MethodProto xlibMethods[] = {
 	{"GetProfileString", 			JourneyWareXINIXObj::m_GetProfileString, 4, 4, 400}, // D4
 	{"WritePrivateProfileString", 	JourneyWareXINIXObj::m_WritePrivateProfileString, 4, 4, 400}, // D4
 	{"WriteProfileString", 			JourneyWareXINIXObj::m_WriteProfileString, 3, 3, 400}, // D4
+
+	// Duplicated from inixobj
+	// TODO: remove when inixobj is properly connected and used
+	{"readString",	JourneyWareXINIXObj::m_readString, 4, 4, 400},
+	{"writeString",	JourneyWareXINIXObj::m_writeString, 4, 4, 400},
+	// End
 	{nullptr, nullptr, 0, 0, 0}
 };
 
@@ -83,7 +99,6 @@ void JourneyWareXINIXObj::close(ObjectType type) {
    }
 }
 
-
 JourneyWareXINIXObject::JourneyWareXINIXObject(ObjectType ObjectType) :Object<JourneyWareXINIXObject>("INI") {
    _objType = ObjectType;
 }
@@ -132,4 +147,9 @@ void JourneyWareXINIXObj::m_GetProfileString(int nargs) {
 XOBJSTUB(JourneyWareXINIXObj::m_WritePrivateProfileString, 0)
 XOBJSTUB(JourneyWareXINIXObj::m_WriteProfileString, 0)
 
+// TODO: remove when inixobj is properly connected and used
+XOBJSTUB(JourneyWareXINIXObj::m_readString, "")
+XOBJSTUB(JourneyWareXINIXObj::m_writeString, 0)
+// End
+
 } // End of namespace Director
diff --git a/engines/director/lingo/xlibs/jwxini.h b/engines/director/lingo/xlibs/jwxini.h
index 74c46339605..8ceef8040fc 100644
--- a/engines/director/lingo/xlibs/jwxini.h
+++ b/engines/director/lingo/xlibs/jwxini.h
@@ -48,6 +48,11 @@ void m_GetProfileString(int nargs);
 void m_WritePrivateProfileString(int nargs);
 void m_WriteProfileString(int nargs);
 
+// TODO: remove when inixobj is properly connected and used
+void m_readString(int nargs);
+void m_writeString(int nargs);
+// End
+
 } // End of namespace JourneyWareXINIXObj
 
 } // End of namespace Director


Commit: 07221c99b47a0a020c7a27d42861649a3e19ec55
    https://github.com/scummvm/scummvm/commit/07221c99b47a0a020c7a27d42861649a3e19ec55
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Add bimxobj

Changed paths:
  A engines/director/lingo/xlibs/bimxobj.cpp
  A engines/director/lingo/xlibs/bimxobj.h
    engines/director/lingo/lingo-object.cpp
    engines/director/module.mk


diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index a083eda9a0b..0c7c47d8564 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -36,6 +36,7 @@
 #include "director/lingo/xlibs/backdrop.h"
 #include "director/lingo/xlibs/barakeobj.h"
 #include "director/lingo/xlibs/batqt.h"
+#include "director/lingo/xlibs/bimxobj.h"
 #include "director/lingo/xlibs/blitpict.h"
 #include "director/lingo/xlibs/cdromxobj.h"
 #include "director/lingo/xlibs/closebleedwindowxcmd.h"
@@ -203,6 +204,7 @@ static struct XLibProto {
 	{ BackdropXObj::fileNames,			BackdropXObj::open,			BackdropXObj::close,		kXObj,					400 },	// D4
 	{ BarakeObj::fileNames,				BarakeObj::open,			BarakeObj::close,			kXObj,					400 },	// D4
 	{ BatQT::fileNames,					BatQT::open,				BatQT::close,				kXObj,					400 },	// D4
+	{ BIMXObj::fileNames,					BIMXObj::open,			BIMXObj::close,			kXObj,					400 },	// D4
 	{ BlitPictXObj::fileNames,			BlitPictXObj::open,			BlitPictXObj::close,		kXObj,					400 },	// D4
 	{ CDROMXObj::fileNames,				CDROMXObj::open,			CDROMXObj::close,			kXObj,					200 },	// D2
 	{ CloseBleedWindowXCMD::fileNames,	CloseBleedWindowXCMD::open,	CloseBleedWindowXCMD::close,kXObj,					300 },	// D3
diff --git a/engines/director/lingo/xlibs/bimxobj.cpp b/engines/director/lingo/xlibs/bimxobj.cpp
new file mode 100644
index 00000000000..88a1dc76b08
--- /dev/null
+++ b/engines/director/lingo/xlibs/bimxobj.cpp
@@ -0,0 +1,96 @@
+/* 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/bimxobj.h"
+
+/**************************************************
+ *
+ * USED IN:
+ * Karma: Curse of the 12 Caves
+ *
+ **************************************************/
+
+/*
+ * -- BIM16 External Factory. 14JULY94
+ * --BIM
+ * I      mNew                                            --Creates a new instance of the XObject
+ * ISII   mPlay,    FileName, x, y                        --Play Flc file
+ * ISIII  mPlayTo,  FileName, x, y, frame                 --Play Flc file
+ * ISIII  mVideo,   FileName, x, y, delay                 --Play Flc file
+ * ISIIII mStretch, FileName, destx, desty, destw, desth  --Play Flc file
+ * I      mDispose                                        --Disposes of XObject instance
+ */
+
+namespace Director {
+
+const char *BIMXObj::xlibName = "BIM";
+const char *BIMXObj::fileNames[] = {
+	"FLC",
+	nullptr
+};
+
+static MethodProto xlibMethods[] = {
+	{"new",		BIMXObj::m_new, 0, 0, 400},
+	{"play",	BIMXObj::m_play, 3, 3, 400},
+	{"playTo",	BIMXObj::m_playTo, 4, 4, 400},
+	{"video",	BIMXObj::m_video, 4, 4, 400},
+	{"stretch",	BIMXObj::m_stretch, 5, 5, 400},
+	{nullptr, nullptr, 0, 0, 0}
+};
+
+static BuiltinProto xlibBuiltins[] = {
+	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
+};
+
+BIMXObject::BIMXObject(const ObjectType objType) :Object<BIMXObject>("BIM") {
+	_objType = objType;
+}
+
+void BIMXObj::open(ObjectType type, const Common::Path &path) {
+    BIMXObject::initMethods(xlibMethods);
+    BIMXObject *xobj = new BIMXObject(type);
+    g_lingo->exposeXObject(xlibName, xobj);
+    g_lingo->initBuiltIns(xlibBuiltins);
+}
+
+void BIMXObj::close(ObjectType type) {
+    BIMXObject::cleanupMethods();
+    g_lingo->_globalvars[xlibName] = Datum();
+}
+
+void BIMXObj::m_new(const int nargs) {
+	g_lingo->printSTUBWithArglist("BIMXObj::m_new", nargs);
+	g_lingo->dropStack(nargs);
+	g_lingo->push(g_lingo->_state->me);
+}
+
+XOBJSTUB(BIMXObj::m_play, 0)
+XOBJSTUB(BIMXObj::m_playTo, 0)
+XOBJSTUB(BIMXObj::m_video, 0)
+XOBJSTUB(BIMXObj::m_stretch, 0)
+
+}
diff --git a/engines/director/lingo/xlibs/bimxobj.h b/engines/director/lingo/xlibs/bimxobj.h
new file mode 100644
index 00000000000..543b0342b95
--- /dev/null
+++ b/engines/director/lingo/xlibs/bimxobj.h
@@ -0,0 +1,50 @@
+/* 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_FLC_H
+#define DIRECTOR_LINGO_XLIBS_FLC_H
+
+namespace Director {
+
+class BIMXObject : public Object<BIMXObject> {
+public:
+	BIMXObject(ObjectType objType);
+};
+
+namespace BIMXObj {
+
+extern const char *xlibName;
+extern const char *fileNames[];
+
+void open(ObjectType type, const Common::Path &path);
+void close(ObjectType type);
+
+void m_new(int nargs);
+void m_play(int nargs);
+void m_playTo(int nargs);
+void m_video(int nargs);
+void m_stretch(int nargs);
+
+} // End of namespace BIMXObj
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 0d818d28789..8ca69db4155 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -65,6 +65,7 @@ MODULE_OBJS = \
 	lingo/xlibs/backdrop.o \
 	lingo/xlibs/barakeobj.o \
 	lingo/xlibs/batqt.o \
+	lingo/xlibs/bimxobj.o \
 	lingo/xlibs/blitpict.o \
 	lingo/xlibs/cdromxobj.o \
 	lingo/xlibs/closebleedwindowxcmd.o \


Commit: 18b670b617b6e6421f208ba8d9ec0e8afe7111af
    https://github.com/scummvm/scummvm/commit/18b670b617b6e6421f208ba8d9ec0e8afe7111af
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Add filexobj

Changed paths:
  A engines/director/lingo/xlibs/filexobj.cpp
  A engines/director/lingo/xlibs/filexobj.h
    engines/director/lingo/lingo-object.cpp
    engines/director/module.mk


diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 0c7c47d8564..c745bb298de 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -62,6 +62,7 @@
 #include "director/lingo/xlibs/feiprefs.h"
 #include "director/lingo/xlibs/fileexists.h"
 #include "director/lingo/xlibs/fileio.h"
+#include "director/lingo/xlibs/filexobj.h"
 #include "director/lingo/xlibs/findereventsxcmd.h"
 #include "director/lingo/xlibs/findfolder.h"
 #include "director/lingo/xlibs/findsys.h"
@@ -230,6 +231,7 @@ static struct XLibProto {
 	{ FadeGammaXCMD::fileNames,			FadeGammaXCMD::open,		FadeGammaXCMD::close,		kXObj,					400 },	// D4
 	{ FileExists::fileNames,			FileExists::open,			FileExists::close,			kXObj,					300 },	// D3
 	{ FileIO::fileNames,				FileIO::open,				FileIO::close,				kXObj | kXtraObj,		200 },	// D2
+	{ FileXObj::fileNames,			FileXObj::open,			FileXObj::close,				kXObj,					400 },	// D4
 	{ FindFolder::fileNames,			FindFolder::open,			FindFolder::close,			kXObj,					300 },	// D3
 	{ FindSys::fileNames,				FindSys::open,				FindSys::close,				kXObj,					400 },	// D4
 	{ FindWin::fileNames,				FindWin::open,				FindWin::close,				kXObj,					400 },	// D4
diff --git a/engines/director/lingo/xlibs/filexobj.cpp b/engines/director/lingo/xlibs/filexobj.cpp
new file mode 100644
index 00000000000..50ee4c6992f
--- /dev/null
+++ b/engines/director/lingo/xlibs/filexobj.cpp
@@ -0,0 +1,139 @@
+/* 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/filexobj.h"
+
+/**************************************************
+ *
+ * USED IN:
+ * Karma: Curse of the 12 Caves
+ *
+ **************************************************/
+
+/*
+ * -- File External Factory. 9feb93 JT
+ * --File
+ * ISS    mNew, mode, fileNameOrType  --Creates a new instance of the XObject
+ * X      mDispose                --Disposes of XObject instance.
+ * II     mWriteChar, charNum     --Writes a single character. Returns error code
+ * IS     mWriteString, string    --Writes out a string of chars. Returns error code
+ * I      mReadChar       --Returns a single character
+ * S      mReadWord       --Returns the next word of an input file
+ * S      mReadLine       --Returns the next line of an input file
+ * S      mReadFile       --Returns the remainder of the file
+ * SSS    mReadToken, breakString, skipString
+ * I      mGetPosition    --Returns the file position
+ * II     mSetPosition, newPos    --Sets the file position. Returns error code
+ * I      mGetLength      --Returns the number of chars in the file
+ * ISS    mSetFinderInfo, typeString, creatorString
+ * S      mGetFinderInfo  --Gets the finder info
+ * S      mFileName       --Returns the name of the file
+ * I      mDelete         --Delete the file and dispose of me
+ * I      mStatus         --Returns result code of the last file io activity
+ * SI     +mError, errorCode  --Returns error message string
+ * S      mNativeFileName     --Returns the native (dos) name of the file
+ * II     +mSetOverrideDrive, driveLetter --Set override drive letter ('A' - 'Z') to use when loading linked castmembers.  Use 0x00 to clear override.
+ */
+
+namespace Director {
+
+const char *FileXObj::xlibName = "File";
+const char *FileXObj::fileNames[] = {
+	"FILE",
+	nullptr
+};
+
+static MethodProto xlibMethods[] = {
+	{"new",					FileXObj::m_new, 2, 2, 400},
+	{"writeChar",			FileXObj::m_writeChar, 1, 1, 400},
+	{"writeString",			FileXObj::m_writeString, 1, 1, 400},
+	{"readChar",			FileXObj::m_readChar, 0, 0, 400},
+	{"readWord",			FileXObj::m_readWord, 0, 0, 400},
+	{"readLine",			FileXObj::m_readLine, 0, 0, 400},
+	{"readFile",			FileXObj::m_readFile, 0, 0, 400},
+	{"readToken",			FileXObj::m_readToken, 2, 2, 400},
+	{"getPosition",			FileXObj::m_getPosition, 0, 0, 400},
+	{"setPosition",			FileXObj::m_setPosition, 1, 1, 400},
+	{"getLength",			FileXObj::m_getLength, 0, 0, 400},
+	{"setFinderInfo",		FileXObj::m_setFinderInfo, 2, 2, 400},
+	{"getFinderInfo",		FileXObj::m_getFinderInfo, 0, 0, 400},
+	{"fileName",			FileXObj::m_fileName, 0, 0, 400},
+	{"delete",				FileXObj::m_delete, 0, 0, 400},
+	{"status",				FileXObj::m_status, 0, 0, 400},
+	{"error",				FileXObj::m_error, 1, 1, 400},
+	{"nativeFileName",		FileXObj::m_nativeFileName, 0, 0, 400},
+	{"setOverrideDrive",	FileXObj::m_setOverrideDrive, 1, 1, 400},
+	{ nullptr, nullptr, 0, 0, 0 }
+};
+
+static BuiltinProto xlibBuiltins[] = {
+	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
+};
+
+FileXObject::FileXObject(ObjectType objType) :Object<FileXObject>("File") {
+	_objType = objType;
+}
+
+void FileXObj::open(ObjectType type, const Common::Path &path) {
+    FileXObject::initMethods(xlibMethods);
+    FileXObject *xobj = new FileXObject(type);
+    g_lingo->exposeXObject(xlibName, xobj);
+    g_lingo->initBuiltIns(xlibBuiltins);
+}
+
+void FileXObj::close(ObjectType type) {
+    FileXObject::cleanupMethods();
+    g_lingo->_globalvars[xlibName] = Datum();
+
+}
+
+void FileXObj::m_new(int nargs) {
+	g_lingo->printSTUBWithArglist("FileXObj::m_new", nargs);
+	g_lingo->dropStack(nargs);
+	g_lingo->push(g_lingo->_state->me);
+}
+
+XOBJSTUB(FileXObj::m_writeChar, 0)
+XOBJSTUB(FileXObj::m_writeString, 0)
+XOBJSTUB(FileXObj::m_readChar, 0)
+XOBJSTUB(FileXObj::m_readWord, "")
+XOBJSTUB(FileXObj::m_readLine, "")
+XOBJSTUB(FileXObj::m_readFile, "")
+XOBJSTUB(FileXObj::m_readToken, "")
+XOBJSTUB(FileXObj::m_getPosition, 0)
+XOBJSTUB(FileXObj::m_setPosition, 0)
+XOBJSTUB(FileXObj::m_getLength, 0)
+XOBJSTUB(FileXObj::m_setFinderInfo, 0)
+XOBJSTUB(FileXObj::m_getFinderInfo, "")
+XOBJSTUB(FileXObj::m_fileName, "")
+XOBJSTUB(FileXObj::m_delete, 0)
+XOBJSTUB(FileXObj::m_status, 0)
+XOBJSTUB(FileXObj::m_error, "")
+XOBJSTUB(FileXObj::m_nativeFileName, "")
+XOBJSTUB(FileXObj::m_setOverrideDrive, 0)
+
+}
diff --git a/engines/director/lingo/xlibs/filexobj.h b/engines/director/lingo/xlibs/filexobj.h
new file mode 100644
index 00000000000..084f8cfd226
--- /dev/null
+++ b/engines/director/lingo/xlibs/filexobj.h
@@ -0,0 +1,64 @@
+/* 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_FILE_H
+#define DIRECTOR_LINGO_XLIBS_FILE_H
+
+namespace Director {
+
+class FileXObject : public Object<FileXObject> {
+public:
+	FileXObject(ObjectType objType);
+};
+
+namespace FileXObj {
+
+extern const char *xlibName;
+extern const char *fileNames[];
+
+void open(ObjectType type, const Common::Path &path);
+void close(ObjectType type);
+
+void m_new(int nargs);
+void m_writeChar(int nargs);
+void m_writeString(int nargs);
+void m_readChar(int nargs);
+void m_readWord(int nargs);
+void m_readLine(int nargs);
+void m_readFile(int nargs);
+void m_readToken(int nargs);
+void m_getPosition(int nargs);
+void m_setPosition(int nargs);
+void m_getLength(int nargs);
+void m_setFinderInfo(int nargs);
+void m_getFinderInfo(int nargs);
+void m_fileName(int nargs);
+void m_delete(int nargs);
+void m_status(int nargs);
+void m_error(int nargs);
+void m_nativeFileName(int nargs);
+void m_setOverrideDrive(int nargs);
+
+} // End of namespace FileXObj
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 8ca69db4155..3c2381229dc 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -91,6 +91,7 @@ MODULE_OBJS = \
 	lingo/xlibs/feiprefs.o \
 	lingo/xlibs/fileexists.o \
 	lingo/xlibs/fileio.o \
+	lingo/xlibs/filexobj.o \
 	lingo/xlibs/findereventsxcmd.o \
 	lingo/xlibs/findfolder.o \
 	lingo/xlibs/findsys.o \


Commit: f8710e88ddf1b79a651026a8e53913fe8f757e2c
    https://github.com/scummvm/scummvm/commit/f8710e88ddf1b79a651026a8e53913fe8f757e2c
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: Add detection table entry for Karma (German)

Changed paths:
    engines/director/detection_tables.h
    engines/director/lingo/xlibs/bimxobj.cpp


diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 0e9105a641f..c9efaaaea91 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -4648,6 +4648,9 @@ static const DirectorGameDescription gameDescriptions[] = {
 	WINGAME2("karma", "", "KARMA.EXE", "e830af6b5dfca4964184e7d61039e120", 697047,
 						  "01_0Y.BIM", "246c2f5ab5499d46f395aa9d0da05c9a", 780158, 404),
 	WINGAME1_l("karma", "", "DH.EXE", "f917ac9c649bff9eaf538ae69432a145", 690991, Common::ZH_TWN, 400),
+	MACGAME1_l("karma", "", "Karma", "rt:a002b7710fd2a968ff1ddd5aa9819f8f", 485279, Common::DE_DEU, 404),
+	WINGAME2_l("karma", "", "KARMA.EXE", "t:abe9fe1d7ae185cacb6f9f3e5fa8fe77", 697079,
+							  "01_0Y.BIM", "d:5ec986161fb602b5b105ffd066a0c270", 5827468, Common::DE_DEU, 404),
 
 	// Original Mac filename is かるたでおじゃる
 	MACGAME1_l("karuta", "", "xn--t8jb4b0a4b1lzbf", "78138a77207907642744d0960c14d9e5", 486623, Common::JA_JPN, 404),
diff --git a/engines/director/lingo/xlibs/bimxobj.cpp b/engines/director/lingo/xlibs/bimxobj.cpp
index 88a1dc76b08..ec1db87b9fa 100644
--- a/engines/director/lingo/xlibs/bimxobj.cpp
+++ b/engines/director/lingo/xlibs/bimxobj.cpp
@@ -50,6 +50,7 @@ namespace Director {
 const char *BIMXObj::xlibName = "BIM";
 const char *BIMXObj::fileNames[] = {
 	"FLC",
+	"BIM",
 	nullptr
 };
 


Commit: 650057a5f8787a1d54e4c26b25d1018de8a8809a
    https://github.com/scummvm/scummvm/commit/650057a5f8787a1d54e4c26b25d1018de8a8809a
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Remove filexobj and use fileio instead

Changed paths:
  R engines/director/lingo/xlibs/filexobj.cpp
  R engines/director/lingo/xlibs/filexobj.h
    engines/director/lingo/lingo-object.cpp
    engines/director/lingo/xlibs/fileio.cpp
    engines/director/module.mk


diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index c745bb298de..0c7c47d8564 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -62,7 +62,6 @@
 #include "director/lingo/xlibs/feiprefs.h"
 #include "director/lingo/xlibs/fileexists.h"
 #include "director/lingo/xlibs/fileio.h"
-#include "director/lingo/xlibs/filexobj.h"
 #include "director/lingo/xlibs/findereventsxcmd.h"
 #include "director/lingo/xlibs/findfolder.h"
 #include "director/lingo/xlibs/findsys.h"
@@ -231,7 +230,6 @@ static struct XLibProto {
 	{ FadeGammaXCMD::fileNames,			FadeGammaXCMD::open,		FadeGammaXCMD::close,		kXObj,					400 },	// D4
 	{ FileExists::fileNames,			FileExists::open,			FileExists::close,			kXObj,					300 },	// D3
 	{ FileIO::fileNames,				FileIO::open,				FileIO::close,				kXObj | kXtraObj,		200 },	// D2
-	{ FileXObj::fileNames,			FileXObj::open,			FileXObj::close,				kXObj,					400 },	// D4
 	{ FindFolder::fileNames,			FindFolder::open,			FindFolder::close,			kXObj,					300 },	// D3
 	{ FindSys::fileNames,				FindSys::open,				FindSys::close,				kXObj,					400 },	// D4
 	{ FindWin::fileNames,				FindWin::open,				FindWin::close,				kXObj,					400 },	// D4
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 26c8c47f4c6..24a0e650ea8 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -23,6 +23,7 @@
  *
  * USED IN:
  * Standard Director Xtra
+ * Karma: Curse of the 12 Caves
  *
  *************************************/
 
@@ -137,6 +138,7 @@ const char *FileIO::xlibName = "FileIO";
 const char *FileIO::fileNames[] = {
 	"FileIO",
 	"shFILEIO", // TD loads this up using openXLib("@:shFILEIO.DLL")
+	"FILE",
 	nullptr
 };
 
diff --git a/engines/director/lingo/xlibs/filexobj.cpp b/engines/director/lingo/xlibs/filexobj.cpp
deleted file mode 100644
index 50ee4c6992f..00000000000
--- a/engines/director/lingo/xlibs/filexobj.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/* 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/filexobj.h"
-
-/**************************************************
- *
- * USED IN:
- * Karma: Curse of the 12 Caves
- *
- **************************************************/
-
-/*
- * -- File External Factory. 9feb93 JT
- * --File
- * ISS    mNew, mode, fileNameOrType  --Creates a new instance of the XObject
- * X      mDispose                --Disposes of XObject instance.
- * II     mWriteChar, charNum     --Writes a single character. Returns error code
- * IS     mWriteString, string    --Writes out a string of chars. Returns error code
- * I      mReadChar       --Returns a single character
- * S      mReadWord       --Returns the next word of an input file
- * S      mReadLine       --Returns the next line of an input file
- * S      mReadFile       --Returns the remainder of the file
- * SSS    mReadToken, breakString, skipString
- * I      mGetPosition    --Returns the file position
- * II     mSetPosition, newPos    --Sets the file position. Returns error code
- * I      mGetLength      --Returns the number of chars in the file
- * ISS    mSetFinderInfo, typeString, creatorString
- * S      mGetFinderInfo  --Gets the finder info
- * S      mFileName       --Returns the name of the file
- * I      mDelete         --Delete the file and dispose of me
- * I      mStatus         --Returns result code of the last file io activity
- * SI     +mError, errorCode  --Returns error message string
- * S      mNativeFileName     --Returns the native (dos) name of the file
- * II     +mSetOverrideDrive, driveLetter --Set override drive letter ('A' - 'Z') to use when loading linked castmembers.  Use 0x00 to clear override.
- */
-
-namespace Director {
-
-const char *FileXObj::xlibName = "File";
-const char *FileXObj::fileNames[] = {
-	"FILE",
-	nullptr
-};
-
-static MethodProto xlibMethods[] = {
-	{"new",					FileXObj::m_new, 2, 2, 400},
-	{"writeChar",			FileXObj::m_writeChar, 1, 1, 400},
-	{"writeString",			FileXObj::m_writeString, 1, 1, 400},
-	{"readChar",			FileXObj::m_readChar, 0, 0, 400},
-	{"readWord",			FileXObj::m_readWord, 0, 0, 400},
-	{"readLine",			FileXObj::m_readLine, 0, 0, 400},
-	{"readFile",			FileXObj::m_readFile, 0, 0, 400},
-	{"readToken",			FileXObj::m_readToken, 2, 2, 400},
-	{"getPosition",			FileXObj::m_getPosition, 0, 0, 400},
-	{"setPosition",			FileXObj::m_setPosition, 1, 1, 400},
-	{"getLength",			FileXObj::m_getLength, 0, 0, 400},
-	{"setFinderInfo",		FileXObj::m_setFinderInfo, 2, 2, 400},
-	{"getFinderInfo",		FileXObj::m_getFinderInfo, 0, 0, 400},
-	{"fileName",			FileXObj::m_fileName, 0, 0, 400},
-	{"delete",				FileXObj::m_delete, 0, 0, 400},
-	{"status",				FileXObj::m_status, 0, 0, 400},
-	{"error",				FileXObj::m_error, 1, 1, 400},
-	{"nativeFileName",		FileXObj::m_nativeFileName, 0, 0, 400},
-	{"setOverrideDrive",	FileXObj::m_setOverrideDrive, 1, 1, 400},
-	{ nullptr, nullptr, 0, 0, 0 }
-};
-
-static BuiltinProto xlibBuiltins[] = {
-	{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
-};
-
-FileXObject::FileXObject(ObjectType objType) :Object<FileXObject>("File") {
-	_objType = objType;
-}
-
-void FileXObj::open(ObjectType type, const Common::Path &path) {
-    FileXObject::initMethods(xlibMethods);
-    FileXObject *xobj = new FileXObject(type);
-    g_lingo->exposeXObject(xlibName, xobj);
-    g_lingo->initBuiltIns(xlibBuiltins);
-}
-
-void FileXObj::close(ObjectType type) {
-    FileXObject::cleanupMethods();
-    g_lingo->_globalvars[xlibName] = Datum();
-
-}
-
-void FileXObj::m_new(int nargs) {
-	g_lingo->printSTUBWithArglist("FileXObj::m_new", nargs);
-	g_lingo->dropStack(nargs);
-	g_lingo->push(g_lingo->_state->me);
-}
-
-XOBJSTUB(FileXObj::m_writeChar, 0)
-XOBJSTUB(FileXObj::m_writeString, 0)
-XOBJSTUB(FileXObj::m_readChar, 0)
-XOBJSTUB(FileXObj::m_readWord, "")
-XOBJSTUB(FileXObj::m_readLine, "")
-XOBJSTUB(FileXObj::m_readFile, "")
-XOBJSTUB(FileXObj::m_readToken, "")
-XOBJSTUB(FileXObj::m_getPosition, 0)
-XOBJSTUB(FileXObj::m_setPosition, 0)
-XOBJSTUB(FileXObj::m_getLength, 0)
-XOBJSTUB(FileXObj::m_setFinderInfo, 0)
-XOBJSTUB(FileXObj::m_getFinderInfo, "")
-XOBJSTUB(FileXObj::m_fileName, "")
-XOBJSTUB(FileXObj::m_delete, 0)
-XOBJSTUB(FileXObj::m_status, 0)
-XOBJSTUB(FileXObj::m_error, "")
-XOBJSTUB(FileXObj::m_nativeFileName, "")
-XOBJSTUB(FileXObj::m_setOverrideDrive, 0)
-
-}
diff --git a/engines/director/lingo/xlibs/filexobj.h b/engines/director/lingo/xlibs/filexobj.h
deleted file mode 100644
index 084f8cfd226..00000000000
--- a/engines/director/lingo/xlibs/filexobj.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* 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_FILE_H
-#define DIRECTOR_LINGO_XLIBS_FILE_H
-
-namespace Director {
-
-class FileXObject : public Object<FileXObject> {
-public:
-	FileXObject(ObjectType objType);
-};
-
-namespace FileXObj {
-
-extern const char *xlibName;
-extern const char *fileNames[];
-
-void open(ObjectType type, const Common::Path &path);
-void close(ObjectType type);
-
-void m_new(int nargs);
-void m_writeChar(int nargs);
-void m_writeString(int nargs);
-void m_readChar(int nargs);
-void m_readWord(int nargs);
-void m_readLine(int nargs);
-void m_readFile(int nargs);
-void m_readToken(int nargs);
-void m_getPosition(int nargs);
-void m_setPosition(int nargs);
-void m_getLength(int nargs);
-void m_setFinderInfo(int nargs);
-void m_getFinderInfo(int nargs);
-void m_fileName(int nargs);
-void m_delete(int nargs);
-void m_status(int nargs);
-void m_error(int nargs);
-void m_nativeFileName(int nargs);
-void m_setOverrideDrive(int nargs);
-
-} // End of namespace FileXObj
-
-} // End of namespace Director
-
-#endif
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 3c2381229dc..8ca69db4155 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -91,7 +91,6 @@ MODULE_OBJS = \
 	lingo/xlibs/feiprefs.o \
 	lingo/xlibs/fileexists.o \
 	lingo/xlibs/fileio.o \
-	lingo/xlibs/filexobj.o \
 	lingo/xlibs/findereventsxcmd.o \
 	lingo/xlibs/findfolder.o \
 	lingo/xlibs/findsys.o \


Commit: 3704b01c46e1cdc66d34d6a40badd33c1582f052
    https://github.com/scummvm/scummvm/commit/3704b01c46e1cdc66d34d6a40badd33c1582f052
Author: codengine (498798+codengine at users.noreply.github.com)
Date: 2024-06-16T01:07:07+02:00

Commit Message:
DIRECTOR: XOBJ: Remove usage comment for "Karma" in jwxini

Changed paths:
    engines/director/lingo/xlibs/jwxini.cpp


diff --git a/engines/director/lingo/xlibs/jwxini.cpp b/engines/director/lingo/xlibs/jwxini.cpp
index 0b3d13f083c..d676e2902a0 100644
--- a/engines/director/lingo/xlibs/jwxini.cpp
+++ b/engines/director/lingo/xlibs/jwxini.cpp
@@ -25,7 +25,6 @@
  * Gahan Wilson's Ultimate Haunted House
  * Wellen, Wracks und Wassermaenner
  *
- * Karma: Curse of the 12 Caves
  *************************************/
 
 /*




More information about the Scummvm-git-logs mailing list