[Scummvm-git-logs] scummvm master -> 7eea773fc73524cdfaf96a3760f4739c4f100398

bluegr bluegr at gmail.com
Sat Dec 7 19:42:21 UTC 2019


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

Summary:
8b54ff00fa COMPOSER: add detection entries
03ced8ac95 COMPOSER: detect + support macintosh version
84d6d0307f COMPOSER: read book.mac before book.ini
c57ed53552 COMPOSER: specify config file in detection entry
60d67207a2 COMPOSER: fix loop
1a81f1580b COMPOSER: add v1 config files from ticket #5934
7eea773fc7 COMPOSER:  fallback load default configs


Commit: 8b54ff00faa7d4de874cfd98cf56b6cc45de0db1
    https://github.com/scummvm/scummvm/commit/8b54ff00faa7d4de874cfd98cf56b6cc45de0db1
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: add detection entries

Changed paths:
    engines/composer/composer.cpp
    engines/composer/detection.cpp


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 6aafec2..ec0e6da 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -86,12 +86,14 @@ Common::Error ComposerEngine::run() {
 	}
 
 	if (!_bookIni.loadFromFile("book.ini")) {
-		_directoriesToStrip = 0;
-		if (!_bookIni.loadFromFile("programs/book.ini")) {
-			// mac version?
-			if (!_bookIni.loadFromFile("Darby the Dragon.ini"))
-				if (!_bookIni.loadFromFile("Gregory.ini"))
-					error("failed to find book.ini");
+		if (!_bookIni.loadFromFile("demo.ini") && !_bookIni.loadFromFile("ls_demo.ini") && !_bookIni.loadFromFile("by_demo.ini")) {
+			_directoriesToStrip = 0;
+			if (!_bookIni.loadFromFile("programs/book.ini")) {
+				// mac version?
+				if (!_bookIni.loadFromFile("Darby the Dragon.ini"))
+					if (!_bookIni.loadFromFile("Gregory.ini"))
+						error("failed to find book.ini");
+			}
 		}
 	}
 
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 93a3a40..0422091 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -63,6 +63,7 @@ static const PlainGameDescriptor composerGames[] = {
 	{"littlesamurai", "Magic Tales: The Little Samurai"},
 	{"princess", "Magic Tales: The Princess and the Crab"},
 	{"sleepingcub", "Magic Tales: Sleeping Cub's Test of Courage"},
+	{"magictales", "Magic Tales"},
 	{0, 0}
 };
 
@@ -125,6 +126,57 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// Magic Tales: Imo and the King Hebrew
+	{
+		{
+			"imoking",
+			"",
+			{
+				{"book.ini", 0, "2b3eb997e8f55a03e81f67563c40adf4", 3337},
+				AD_LISTEND
+			},
+			Common::HE_ISR,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
+	// Baba Yaga Demo from Imo and the King Hebrew CD
+	{
+		{
+			"babayaga",
+			"Magic Tales: Baba Yaga and the Magic Geese Demo",
+			{
+				{"by_demo.ini", 0, "4a87806683add232916298d6b62b9420", 224},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
+	// Little Samurai Demo from Imo and the King Hebrew CD
+	{
+		{
+			"littlesamurai",
+			"Magic Tales: The Little Samurai Demo",
+			{
+				{"ls_demo.ini", 0, "462cad83006721d2491dde7ef7a2d243", 223},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	// Magic Tales: Imo and the King Mac - from bug #3466402
 	{
 		{
@@ -167,6 +219,20 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// Magic Tales: The Little Samurai Hebrew
+	{
+		{
+			"littlesamurai",
+			"",
+			AD_ENTRY1s("book.ini", "c5f2c84df04780e7e67c70ec85b780a8", 3789),
+			Common::HE_ISR,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	// Magic Tales: The Little Samurai Mac - from bug #3466402
 	{
 		{
@@ -195,6 +261,20 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// from Little Samurai Hebrew CD
+	{
+		{
+			"magictales",
+			"Magic Tales Demo: Baby Yaga, Samurai, Imo",
+			AD_ENTRY1("demo.ini", "ea784af960375834d655eb7281cd4500"),
+			Common::HE_ISR,
+			Common::kPlatformWindows,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	{
 		{
 			"liam",


Commit: 03ced8ac950a63aa36ec99f35b25186d0f673366
    https://github.com/scummvm/scummvm/commit/03ced8ac950a63aa36ec99f35b25186d0f673366
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: detect + support macintosh version

Changed paths:
    engines/composer/composer.cpp
    engines/composer/composer.h
    engines/composer/detection.cpp


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index ec0e6da..0b5eee3 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -92,7 +92,8 @@ Common::Error ComposerEngine::run() {
 				// mac version?
 				if (!_bookIni.loadFromFile("Darby the Dragon.ini"))
 					if (!_bookIni.loadFromFile("Gregory.ini"))
-						error("failed to find book.ini");
+						if (!_bookIni.loadFromFile("demo.mac") && !_bookIni.loadFromFile("book.mac"))
+							error("failed to find book.ini");
 			}
 		}
 	}
@@ -114,7 +115,15 @@ Common::Error ComposerEngine::run() {
 
 	loadLibrary(0);
 
-	uint fps = atoi(getStringFromConfig("Common", "FPS").c_str());
+	uint fps;
+	if (_bookIni.hasKey("FPS", "Common"))
+		fps = atoi(getStringFromConfig("Common", "FPS").c_str());
+	else {
+		// On Macintosh version there is no FPS key
+		if (getPlatform() != Common::kPlatformMacintosh)
+			warning("there is no FPS key in book.ini. Defaulting to 8...");
+		fps = 8;
+	}
 	uint frameTime = 125; // Default to 125ms (1000/8)
 	if (fps != 0)
 		frameTime = 1000 / fps;
@@ -393,10 +402,18 @@ void ComposerEngine::loadLibrary(uint id) {
 	Common::String filename;
 	Common::String oldGroup = _bookGroup;
 	if (getGameType() == GType_ComposerV1) {
-		if (!id || _bookGroup.empty())
-			filename = getStringFromConfig("Common", "StartPage");
-		else
-			filename = getStringFromConfig(_bookGroup, Common::String::format("%d", id));
+		if (getPlatform() == Common::kPlatformMacintosh) {
+			if (!id || _bookGroup.empty())
+				filename = getStringFromConfig("splash.rsc", "100");
+			else
+				filename = getStringFromConfig(_bookGroup + ".rsc", Common::String::format("%d", id));
+		}
+		else {
+			if (!id || _bookGroup.empty())
+				filename = getStringFromConfig("Common", "StartPage");
+			else
+				filename = getStringFromConfig(_bookGroup, Common::String::format("%d", id));
+		}
 		filename = mangleFilename(filename);
 
 		// bookGroup is the basename of the path.
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index a4b421b..22c4097 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -175,6 +175,7 @@ public:
 	const char *getGameId() const;
 	uint32 getFeatures() const;
 	Common::Language getLanguage() const;
+	Common::Platform getPlatform() const;
 
 	const ComposerGameDescription *_gameDescription;
 
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 0422091..e32689d 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -52,6 +52,10 @@ Common::Language ComposerEngine::getLanguage() const {
 	return _gameDescription->desc.language;
 }
 
+Common::Platform ComposerEngine::getPlatform() const {
+	return _gameDescription->desc.platform;
+}
+
 }
 
 static const PlainGameDescriptor composerGames[] = {
@@ -126,7 +130,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
-	// Magic Tales: Imo and the King Hebrew
+	// Magic Tales: Imo and the King Hebrew Windows
 	{
 		{
 			"imoking",
@@ -143,6 +147,23 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// Magic Tales: Imo and the King Hebrew Macintosh
+	{
+		{
+			"imoking",
+			"",
+			{
+				{"book.mac", 0, "4896a22874bb660f5ba26a0af111f9c0", 1868},
+				AD_LISTEND
+			},
+			Common::HE_ISR,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	// Baba Yaga Demo from Imo and the King Hebrew CD
 	{
 		{
@@ -177,6 +198,40 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// Baba Yaga Demo from Imo and the King Hebrew CD
+	{
+		{
+			"babayaga",
+			"Magic Tales: Baba Yaga and the Magic Geese Demo",
+			{
+				{"book.mac", 0, "ed4a902df3b26d58e9c013f814a30ee8", 134},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
+	// Little Samurai Demo from Imo and the King Hebrew CD
+	{
+		{
+			"littlesamurai",
+			"Magic Tales: The Little Samurai Demo",
+			{
+				{"book.mac", 0, "57a82d563800001ed88b2742c3650a2d", 136},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	// Magic Tales: Imo and the King Mac - from bug #3466402
 	{
 		{
@@ -219,7 +274,21 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
-	// Magic Tales: The Little Samurai Hebrew
+	// Magic Tales: The Little Samurai Mac - from bug #3466402
+	{
+		{
+			"littlesamurai",
+			"",
+			AD_ENTRY1("The Little Samurai", "38121dd649c24e8676aa108cf35d44b5"),
+			Common::EN_ANY,
+			Common::kPlatformMacintosh,
+			ADGF_NO_FLAGS,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
+	// Magic Tales: The Little Samurai Hebrew Windows
 	{
 		{
 			"littlesamurai",
@@ -233,13 +302,13 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
-	// Magic Tales: The Little Samurai Mac - from bug #3466402
+	// Magic Tales: The Little Samurai Hebrew Macintosh
 	{
 		{
 			"littlesamurai",
 			"",
-			AD_ENTRY1("The Little Samurai", "38121dd649c24e8676aa108cf35d44b5"),
-			Common::EN_ANY,
+			AD_ENTRY1s("book.mac", "190158751630f69c2b6cf146aa2f1efc", 1874),
+			Common::HE_ISR,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
 			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
@@ -261,7 +330,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
-	// from Little Samurai Hebrew CD
+	// Windows Demo from Little Samurai Hebrew CD
 	{
 		{
 			"magictales",
@@ -275,6 +344,20 @@ static const ComposerGameDescription gameDescriptions[] = {
 		GType_ComposerV1
 	},
 
+	// Macintosh Demo from Little Samurai Hebrew CD
+	{
+		{
+			"magictales",
+			"Magic Tales Demo: Baby Yaga, Samurai, Imo",
+			AD_ENTRY1s("demo.mac", "6e775cda6539102d1ddee852bebf32c1", 488),
+			Common::HE_ISR,
+			Common::kPlatformMacintosh,
+			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
+			GUIO2(GUIO_NOASPECT, GUIO_NOMIDI)
+		},
+		GType_ComposerV1
+	},
+
 	{
 		{
 			"liam",


Commit: 84d6d0307f4561ebd344fff06b1e1df0d97c70ec
    https://github.com/scummvm/scummvm/commit/84d6d0307f4561ebd344fff06b1e1df0d97c70ec
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: read book.mac before book.ini

Changed paths:
    engines/composer/composer.cpp


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 0b5eee3..8fee5d7 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -85,14 +85,15 @@ Common::Error ComposerEngine::run() {
 		_queuedScripts[i]._scriptId = 0;
 	}
 
-	if (!_bookIni.loadFromFile("book.ini")) {
-		if (!_bookIni.loadFromFile("demo.ini") && !_bookIni.loadFromFile("ls_demo.ini") && !_bookIni.loadFromFile("by_demo.ini")) {
+	// NOTE: check book.mac before book.ini for easier platform check (to find the proper section in INI)
+	if (!(_bookIni.loadFromFile("book.mac") || _bookIni.loadFromFile("demo.mac"))) {
+		if (!(_bookIni.loadFromFile("book.ini") || _bookIni.loadFromFile("demo.ini")
+				|| _bookIni.loadFromFile("ls_demo.ini") || _bookIni.loadFromFile("by_demo.ini"))) {
 			_directoriesToStrip = 0;
 			if (!_bookIni.loadFromFile("programs/book.ini")) {
 				// mac version?
 				if (!_bookIni.loadFromFile("Darby the Dragon.ini"))
 					if (!_bookIni.loadFromFile("Gregory.ini"))
-						if (!_bookIni.loadFromFile("demo.mac") && !_bookIni.loadFromFile("book.mac"))
 							error("failed to find book.ini");
 			}
 		}


Commit: c57ed5355255be97425189df6b986026b93ee6ee
    https://github.com/scummvm/scummvm/commit/c57ed5355255be97425189df6b986026b93ee6ee
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: specify config file in detection entry

Changed paths:
    engines/composer/composer.cpp
    engines/composer/composer.h
    engines/composer/detection.cpp


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 8fee5d7..6e2df19 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -85,17 +85,14 @@ Common::Error ComposerEngine::run() {
 		_queuedScripts[i]._scriptId = 0;
 	}
 
-	// NOTE: check book.mac before book.ini for easier platform check (to find the proper section in INI)
-	if (!(_bookIni.loadFromFile("book.mac") || _bookIni.loadFromFile("demo.mac"))) {
-		if (!(_bookIni.loadFromFile("book.ini") || _bookIni.loadFromFile("demo.ini")
-				|| _bookIni.loadFromFile("ls_demo.ini") || _bookIni.loadFromFile("by_demo.ini"))) {
-			_directoriesToStrip = 0;
-			if (!_bookIni.loadFromFile("programs/book.ini")) {
-				// mac version?
-				if (!_bookIni.loadFromFile("Darby the Dragon.ini"))
-					if (!_bookIni.loadFromFile("Gregory.ini"))
-							error("failed to find book.ini");
-			}
+	Common::String configFile;
+	getConfigFile(configFile);
+
+	if (!(_bookIni.loadFromFile(configFile))) {
+		warning("Detected config file is not available - trying other options");
+		_directoriesToStrip = 0;
+		if (!_bookIni.loadFromFile("programs/book.ini")) {
+			error("failed to find book.ini");
 		}
 	}
 
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index 22c4097..8af620d 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -58,6 +58,12 @@ enum GameType {
 	GType_ComposerV2
 };
 
+enum GameFileTypes {
+	GAME_CONFIGFILE     = 1 << 0,    // Game configuration
+	GAME_SCRIPTFILE     = 1 << 1,    // Game script
+	GAME_EXECUTABLE     = 1 << 2,    // Game executable
+};
+
 class Archive;
 struct Animation;
 class ComposerEngine;
@@ -176,6 +182,7 @@ public:
 	uint32 getFeatures() const;
 	Common::Language getLanguage() const;
 	Common::Platform getPlatform() const;
+	void getConfigFile(Common::String &file) const;
 
 	const ComposerGameDescription *_gameDescription;
 
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index e32689d..01ae333 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -56,6 +56,18 @@ Common::Platform ComposerEngine::getPlatform() const {
 	return _gameDescription->desc.platform;
 }
 
+void ComposerEngine::getConfigFile(Common::String &configFile) const {
+	const ADGameFileDescription *res = _gameDescription->desc.filesDescriptions;
+	while (res->fileName != NULL) {
+		if (res->fileType == GAME_CONFIGFILE) {
+			configFile = res->fileName;
+			return;
+		}
+	}
+	// default config file name
+	configFile = "book.ini";
+}
+
 }
 
 static const PlainGameDescriptor composerGames[] = {
@@ -65,9 +77,9 @@ static const PlainGameDescriptor composerGames[] = {
 	{"imoking", "Magic Tales: Imo and the King"},
 	{"liam", "Magic Tales: Liam Finds a Story"},
 	{"littlesamurai", "Magic Tales: The Little Samurai"},
+	{"magictales", "Magic Tales"},
 	{"princess", "Magic Tales: The Princess and the Crab"},
 	{"sleepingcub", "Magic Tales: Sleeping Cub's Test of Courage"},
-	{"magictales", "Magic Tales"},
 	{0, 0}
 };
 
@@ -78,8 +90,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"babayaga",
-			"",
-			AD_ENTRY1s("book.ini", "412b7f4b0ef07f442009d28e3a819974", 3852),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "412b7f4b0ef07f442009d28e3a819974", 3852},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -92,8 +107,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"babayaga",
-			"",
-			AD_ENTRY1s("Baba Yaga", "ae3a4445f42fe10253da7ee4ea0d37d6", 44321),
+			0,
+			{
+				{"Baba Yaga", GAME_EXECUTABLE, "ae3a4445f42fe10253da7ee4ea0d37d6", 44321},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -106,8 +124,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"babayaga",
-			"",
-			AD_ENTRY1s("book.ini", "2a20e73d33ecd0f2fa8123d4f9862f90", 3814),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "2a20e73d33ecd0f2fa8123d4f9862f90", 3814},
+				AD_LISTEND
+			},
 			Common::DE_DEU,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -120,8 +141,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"imoking",
-			"",
-			AD_ENTRY1s("book.ini", "62b52a1763cce7d7d6ccde9f9d32fd4b", 3299),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "62b52a1763cce7d7d6ccde9f9d32fd4b", 3299},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -134,9 +158,9 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"imoking",
-			"",
+			0,
 			{
-				{"book.ini", 0, "2b3eb997e8f55a03e81f67563c40adf4", 3337},
+				{"book.ini", GAME_CONFIGFILE, "2b3eb997e8f55a03e81f67563c40adf4", 3337},
 				AD_LISTEND
 			},
 			Common::HE_ISR,
@@ -151,9 +175,9 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"imoking",
-			"",
+			0,
 			{
-				{"book.mac", 0, "4896a22874bb660f5ba26a0af111f9c0", 1868},
+				{"book.mac", GAME_CONFIGFILE, "4896a22874bb660f5ba26a0af111f9c0", 1868},
 				AD_LISTEND
 			},
 			Common::HE_ISR,
@@ -170,7 +194,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"babayaga",
 			"Magic Tales: Baba Yaga and the Magic Geese Demo",
 			{
-				{"by_demo.ini", 0, "4a87806683add232916298d6b62b9420", 224},
+				{"by_demo.ini", GAME_CONFIGFILE, "4a87806683add232916298d6b62b9420", 224},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -187,7 +211,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"littlesamurai",
 			"Magic Tales: The Little Samurai Demo",
 			{
-				{"ls_demo.ini", 0, "462cad83006721d2491dde7ef7a2d243", 223},
+				{"ls_demo.ini", GAME_CONFIGFILE, "462cad83006721d2491dde7ef7a2d243", 223},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -204,7 +228,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"babayaga",
 			"Magic Tales: Baba Yaga and the Magic Geese Demo",
 			{
-				{"book.mac", 0, "ed4a902df3b26d58e9c013f814a30ee8", 134},
+				{"book.mac", GAME_CONFIGFILE, "ed4a902df3b26d58e9c013f814a30ee8", 134},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -221,7 +245,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"littlesamurai",
 			"Magic Tales: The Little Samurai Demo",
 			{
-				{"book.mac", 0, "57a82d563800001ed88b2742c3650a2d", 136},
+				{"book.mac", GAME_CONFIGFILE, "57a82d563800001ed88b2742c3650a2d", 136},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -236,8 +260,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"imoking",
-			"",
-			AD_ENTRY1("imo and the king", "b0277885fec943b5f19409f35b33964c"),
+			0,
+			{
+				{"imo and the king", GAME_EXECUTABLE, "b0277885fec943b5f19409f35b33964c", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -250,8 +277,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"imoking",
-			"",
-			AD_ENTRY1s("book.ini", "5925c6d4bf85d89b17208be4fcace5e8", 3274),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "5925c6d4bf85d89b17208be4fcace5e8", 3274},
+				AD_LISTEND
+			},
 			Common::DE_DEU,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -264,8 +294,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"littlesamurai",
-			"",
-			AD_ENTRY1s("book.ini", "7a851869d022a9041e0dd11e5bace09b", 3747),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "7a851869d022a9041e0dd11e5bace09b", 3747},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -278,8 +311,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"littlesamurai",
-			"",
-			AD_ENTRY1("The Little Samurai", "38121dd649c24e8676aa108cf35d44b5"),
+			0,
+			{
+				{"The Little Samurai", GAME_EXECUTABLE, "38121dd649c24e8676aa108cf35d44b5", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -292,8 +328,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"littlesamurai",
-			"",
-			AD_ENTRY1s("book.ini", "c5f2c84df04780e7e67c70ec85b780a8", 3789),
+			0,
+			{
+				{"book.ini", GAME_CONFIGFILE, "c5f2c84df04780e7e67c70ec85b780a8", 3789},
+				AD_LISTEND
+			},
 			Common::HE_ISR,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -306,8 +345,11 @@ static const ComposerGameDescription gameDescriptions[] = {
 	{
 		{
 			"littlesamurai",
-			"",
-			AD_ENTRY1s("book.mac", "190158751630f69c2b6cf146aa2f1efc", 1874),
+			0,
+			{
+				{"book.mac", GAME_CONFIGFILE, "190158751630f69c2b6cf146aa2f1efc", 1874},
+				AD_LISTEND
+			},
 			Common::HE_ISR,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -321,7 +363,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"magictales",
 			"Magic Tales Demo: Baby Yaga, Samurai, Imo",
-			AD_ENTRY1("book.ini", "dbc98c566f4ac61b544443524585dccb"),
+			{
+				{"book.ini", GAME_CONFIGFILE, "dbc98c566f4ac61b544443524585dccb", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
@@ -335,7 +380,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"magictales",
 			"Magic Tales Demo: Baby Yaga, Samurai, Imo",
-			AD_ENTRY1("demo.ini", "ea784af960375834d655eb7281cd4500"),
+			{
+				{"demo.ini", GAME_CONFIGFILE, "ea784af960375834d655eb7281cd4500", -1},
+				AD_LISTEND
+			},
 			Common::HE_ISR,
 			Common::kPlatformWindows,
 			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
@@ -349,7 +397,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"magictales",
 			"Magic Tales Demo: Baby Yaga, Samurai, Imo",
-			AD_ENTRY1s("demo.mac", "6e775cda6539102d1ddee852bebf32c1", 488),
+			{
+				{"demo.mac", GAME_CONFIGFILE, "6e775cda6539102d1ddee852bebf32c1", 488},
+				AD_LISTEND
+			},
 			Common::HE_ISR,
 			Common::kPlatformMacintosh,
 			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
@@ -362,7 +413,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"liam",
 			0,
-			AD_ENTRY1s("book.ini", "fc9d9b9e72e7301d011b808606eaa15b", 834),
+			{
+				{"book.ini", GAME_CONFIGFILE, "fc9d9b9e72e7301d011b808606eaa15b", 834},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -377,8 +431,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"liam",
 			0,
 			{
-				{"liam finds a story.ini", 0, "85a1ca6002ded8572920bbdb73d35b0a", -1},
-				{"page99.rsc", 0, "11b0a19c6b6d73c39e2bd289a457c1dc", -1},
+				{"liam finds a story.ini", GAME_CONFIGFILE, "85a1ca6002ded8572920bbdb73d35b0a", -1},
+				{"page99.rsc", GAME_SCRIPTFILE, "11b0a19c6b6d73c39e2bd289a457c1dc", -1},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -394,7 +448,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"magictales",
 			"Magic Tales Demo: Sleeping Cub, Princess & Crab",
-			AD_ENTRY1("book.ini", "3dede2522bb0886c95667b082987a87f"),
+			{
+				{"book.ini", GAME_CONFIGFILE, "3dede2522bb0886c95667b082987a87f", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_USEEXTRAASTITLE | ADGF_DEMO,
@@ -408,8 +465,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"darby",
 			0,
 			{
-				{"book.ini", 0, "7e3404c559d058521fff2aebe5c427a8", 2545},
-				{"page99.rsc", 0, "49cc6b16caa1c5ec7d94a3c47eed9a02", 1286480},
+				{"book.ini", GAME_CONFIGFILE, "7e3404c559d058521fff2aebe5c427a8", 2545},
+				{"page99.rsc", GAME_SCRIPTFILE, "49cc6b16caa1c5ec7d94a3c47eed9a02", 1286480},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -424,7 +481,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"darby",
 			0,
-			AD_ENTRY1("Darby the Dragon.ini", "d81f9214936fa70d42fc578908d4bb3d"),
+			{
+				{"Darby the Dragon.ini", GAME_CONFIGFILE, "d81f9214936fa70d42fc578908d4bb3d", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -438,7 +498,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"darby",
 			0,
 			{
-				{"page99.rsc", 0, "ca350397f0c009649afc0cb6145921f0", 1286480},
+				{"page99.rsc", GAME_SCRIPTFILE, "ca350397f0c009649afc0cb6145921f0", 1286480},
 				AD_LISTEND
 			},
 			Common::FR_FRA,
@@ -453,7 +513,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"darby",
 			0,
-			AD_ENTRY1("book.ini", "285308372f7dddff2ca5a25c9192cf5c"),
+			{
+				{"book.ini", GAME_CONFIGFILE, "285308372f7dddff2ca5a25c9192cf5c", -1},
+				AD_LISTEND
+			},
 			Common::FR_FRA,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -467,8 +530,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"darby",
 			0,
 			{
-				{"book.ini", 0, "285308372f7dddff2ca5a25c9192cf5c", 2545},
-				{"page99.rsc", 0, "40b4879e9ba6a34d6aa2a9d2e30c5ef7", 1286480},
+				{"book.ini", GAME_CONFIGFILE, "285308372f7dddff2ca5a25c9192cf5c", 2545},
+				{"page99.rsc", GAME_SCRIPTFILE, "40b4879e9ba6a34d6aa2a9d2e30c5ef7", 1286480},
 				AD_LISTEND
 			},
 			Common::DE_DEU,
@@ -483,7 +546,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"darby",
 			0,
-			AD_ENTRY1("page99.rsc", "183463d18c050563dcdec2d9f9670515"),
+			{
+				{"page99.rsc", GAME_SCRIPTFILE, "183463d18c050563dcdec2d9f9670515", -1},
+				AD_LISTEND
+			},
 			Common::HE_ISR,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -497,8 +563,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"gregory",
 			0,
 			{
-				{"book.ini", 0, "14a562dcf361773445255af9f3e94790", 2234},
-				{"page99.rsc", 0, "01f9381162467e052dfd4c704169ef3e", 388644},
+				{"book.ini", GAME_CONFIGFILE, "14a562dcf361773445255af9f3e94790", 2234},
+				{"page99.rsc", GAME_SCRIPTFILE, "01f9381162467e052dfd4c704169ef3e", 388644},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -513,7 +579,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"gregory",
 			0,
-			AD_ENTRY1("Gregory.ini", "fa82f14731f28c7379c5a106df07a0d6"),
+			{
+				{"Gregory.ini", GAME_CONFIGFILE, "fa82f14731f28c7379c5a106df07a0d6", -1},
+				AD_LISTEND
+			},
 			Common::EN_ANY,
 			Common::kPlatformMacintosh,
 			ADGF_NO_FLAGS,
@@ -526,7 +595,10 @@ static const ComposerGameDescription gameDescriptions[] = {
 		{
 			"gregory",
 			0,
-			AD_ENTRY1("book.ini", "e54fc5c00de5f94e908a969e445af5d0"),
+			{
+				{"book.ini", GAME_CONFIGFILE, "e54fc5c00de5f94e908a969e445af5d0", -1},
+				AD_LISTEND
+			},
 			Common::FR_FRA,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
@@ -540,8 +612,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"gregory",
 			0,
 			{
-				{"book.ini", 0, "e54fc5c00de5f94e908a969e445af5d0", 2234},
-				{"page99.rsc", 0, "1ae6610de621a9901bf87b874fbf331f", 388644},
+				{"book.ini", GAME_CONFIGFILE, "e54fc5c00de5f94e908a969e445af5d0", 2234},
+				{"page99.rsc", GAME_SCRIPTFILE, "1ae6610de621a9901bf87b874fbf331f", 388644},
 				AD_LISTEND
 			},
 			Common::DE_DEU,
@@ -557,8 +629,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"princess",
 			0,
 			{
-				{"book.ini", 0, "fb32572577b9a41ba299825ef1e3181e", 966},
-				{"page99.rsc", 0, "fd5ebd3b5e36c4651c50241619525355", 45418},
+				{"book.ini", GAME_CONFIGFILE, "fb32572577b9a41ba299825ef1e3181e", 966},
+				{"page99.rsc", GAME_SCRIPTFILE, "fd5ebd3b5e36c4651c50241619525355", 45418},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -575,8 +647,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"princess",
 			0,
 			{
-				{"the princess and the crab.ini", 0, "f6b551a7304643004bd5e4df7ac1e76e", -1},
-				{"page99.rsc", 0, "fd5ebd3b5e36c4651c50241619525355", -1},
+				{"the princess and the crab.ini", GAME_CONFIGFILE, "f6b551a7304643004bd5e4df7ac1e76e", -1},
+				{"page99.rsc", GAME_SCRIPTFILE, "fd5ebd3b5e36c4651c50241619525355", -1},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -592,8 +664,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"sleepingcub",
 			0,
 			{
-				{"book.ini", 0, "0d329e592387009c6387a733a3ea2235", 964},
-				{"page99.rsc", 0, "219fbd9bd2ff87c7023814405d753145", 46916},
+				{"book.ini", GAME_CONFIGFILE, "0d329e592387009c6387a733a3ea2235", 964},
+				{"page99.rsc", GAME_SCRIPTFILE, "219fbd9bd2ff87c7023814405d753145", 46916},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -610,8 +682,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"sleepingcub",
 			0,
 			{
-				{"sleeping cub.ini", 0, "39642a4036cb51443f5e90052c3ad0b2", -1},
-				{"page99.rsc", 0, "219fbd9bd2ff87c7023814405d753145", -1},
+				{"sleeping cub.ini", GAME_CONFIGFILE, "39642a4036cb51443f5e90052c3ad0b2", -1},
+				{"page99.rsc", GAME_SCRIPTFILE, "219fbd9bd2ff87c7023814405d753145", -1},
 				AD_LISTEND
 			},
 			Common::EN_ANY,


Commit: 60d67207a2af4aef541f17a08d3b8dd6e294e762
    https://github.com/scummvm/scummvm/commit/60d67207a2af4aef541f17a08d3b8dd6e294e762
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: fix loop

Changed paths:
    engines/composer/detection.cpp


diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 01ae333..2ecd8ba 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -63,6 +63,7 @@ void ComposerEngine::getConfigFile(Common::String &configFile) const {
 			configFile = res->fileName;
 			return;
 		}
+		res++;
 	}
 	// default config file name
 	configFile = "book.ini";


Commit: 1a81f1580b0362918fe39a43d44e27a438d40212
    https://github.com/scummvm/scummvm/commit/1a81f1580b0362918fe39a43d44e27a438d40212
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER: add v1 config files from ticket #5934

Changed paths:
    engines/composer/detection.cpp


diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 2ecd8ba..3d09089 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -110,7 +110,8 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"babayaga",
 			0,
 			{
-				{"Baba Yaga", GAME_EXECUTABLE, "ae3a4445f42fe10253da7ee4ea0d37d6", 44321},
+				{"book.mac", GAME_CONFIGFILE, "d82143cbc4a36093250c7d6f80af1147", -1},
+  				{"Baba Yaga", GAME_EXECUTABLE, "ae3a4445f42fe10253da7ee4ea0d37d6", 44321},
 				AD_LISTEND
 			},
 			Common::EN_ANY,
@@ -263,6 +264,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"imoking",
 			0,
 			{
+				{"book.mac", GAME_CONFIGFILE, "190158751630f69c2b6cf146aa2f1efc", -1},
 				{"imo and the king", GAME_EXECUTABLE, "b0277885fec943b5f19409f35b33964c", -1},
 				AD_LISTEND
 			},
@@ -314,6 +316,7 @@ static const ComposerGameDescription gameDescriptions[] = {
 			"littlesamurai",
 			0,
 			{
+				{"book.mac", GAME_CONFIGFILE, "190158751630f69c2b6cf146aa2f1efc", -1},
 				{"The Little Samurai", GAME_EXECUTABLE, "38121dd649c24e8676aa108cf35d44b5", -1},
 				AD_LISTEND
 			},


Commit: 7eea773fc73524cdfaf96a3760f4739c4f100398
    https://github.com/scummvm/scummvm/commit/7eea773fc73524cdfaf96a3760f4739c4f100398
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2019-12-07T21:42:14+02:00

Commit Message:
COMPOSER:  fallback load default configs

Changed paths:
    engines/composer/composer.cpp
    engines/composer/composer.h
    engines/composer/detection.cpp


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 6e2df19..9931298 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -85,11 +85,8 @@ Common::Error ComposerEngine::run() {
 		_queuedScripts[i]._scriptId = 0;
 	}
 
-	Common::String configFile;
-	getConfigFile(configFile);
-
-	if (!(_bookIni.loadFromFile(configFile))) {
-		warning("Detected config file is not available - trying other options");
+	if (!loadDetectedConfigFile(_bookIni)) {
+		// Config files for Darby the Dragon are located in subdirectory
 		_directoriesToStrip = 0;
 		if (!_bookIni.loadFromFile("programs/book.ini")) {
 			error("failed to find book.ini");
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index 8af620d..64ec077 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -182,7 +182,7 @@ public:
 	uint32 getFeatures() const;
 	Common::Language getLanguage() const;
 	Common::Platform getPlatform() const;
-	void getConfigFile(Common::String &file) const;
+	bool loadDetectedConfigFile(Common::INIFile &configFile) const;
 
 	const ComposerGameDescription *_gameDescription;
 
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 3d09089..69100d6 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -56,17 +56,16 @@ Common::Platform ComposerEngine::getPlatform() const {
 	return _gameDescription->desc.platform;
 }
 
-void ComposerEngine::getConfigFile(Common::String &configFile) const {
+bool ComposerEngine::loadDetectedConfigFile(Common::INIFile &configFile) const {
 	const ADGameFileDescription *res = _gameDescription->desc.filesDescriptions;
 	while (res->fileName != NULL) {
 		if (res->fileType == GAME_CONFIGFILE) {
-			configFile = res->fileName;
-			return;
+			return configFile.loadFromFile(res->fileName);
 		}
 		res++;
 	}
 	// default config file name
-	configFile = "book.ini";
+	return configFile.loadFromFile("book.ini") || configFile.loadFromFile("book.mac");
 }
 
 }




More information about the Scummvm-git-logs mailing list