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

sev- noreply at scummvm.org
Sat Oct 22 16:40:12 UTC 2022


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

Summary:
717ef66a3d SWORD2: Switch to AdvancedMetaEngineDetection
4543c66d63 SWORD2: Add multiple game variants to the detection table
7e5e8b8f5f SWORD2: Fix indentation in new detection table


Commit: 717ef66a3d60d0c8b2237bddcbc882d446489fe0
    https://github.com/scummvm/scummvm/commit/717ef66a3d60d0c8b2237bddcbc882d446489fe0
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-10-22T18:40:07+02:00

Commit Message:
SWORD2: Switch to AdvancedMetaEngineDetection

Changed paths:
  A engines/sword2/detection_tables.h
  A engines/sword2/obsolete.h
  R engines/sword2/detection_internal.h
    engines/sword2/detection.cpp
    engines/sword2/detection.h
    engines/sword2/metaengine.cpp
    engines/sword2/sword2.cpp
    engines/sword2/sword2.h


diff --git a/engines/sword2/detection.cpp b/engines/sword2/detection.cpp
index a920f787d49..8d84999f7cd 100644
--- a/engines/sword2/detection.cpp
+++ b/engines/sword2/detection.cpp
@@ -23,22 +23,55 @@
 
 #include "common/translation.h"
 
-#include "engines/metaengine.h"
+#include "engines/advancedDetector.h"
+#include "engines/obsolete.h"
 
 #include "sword2/detection.h"
-#include "sword2/detection_internal.h"
+#include "sword2/obsolete.h" // Obsolete ID table.
 
-static const ExtraGuiOption sword2ExtraGuiOption = {
-	_s("Show object labels"),
-	_s("Show labels for objects on mouse hover"),
-	"object_labels",
-	false,
-	0,
-	0
+static const PlainGameDescriptor sword2Games[] = {
+	{"sword2", "Broken Sword II: The Smoking Mirror"},
+	{nullptr, nullptr}
 };
 
-class Sword2MetaEngineDetection : public MetaEngineDetection {
+#include "sword2/detection_tables.h"
+
+static const char *const directoryGlobs[] = {
+	"clusters",
+	nullptr
+};
+
+namespace Sword2 {
+
+static const ADExtraGuiOptionsMap optionsList[] = {
+	{
+		GAMEOPTION_OBJECT_LABELS,
+		{
+			_s("Show object labels"),
+			_s("Show labels for objects on mouse hover"),
+			"object_labels",
+			false,
+			0,
+			0
+		}
+	},
+	AD_EXTRA_GUI_OPTIONS_TERMINATOR
+};
+
+} // End of namespace Sword2
+
+class Sword2MetaEngineDetection : public AdvancedMetaEngineDetection {
 public:
+	Sword2MetaEngineDetection() : AdvancedMetaEngineDetection(Sword2::gameDescriptions, sizeof(Sword2::Sword2GameDescription), sword2Games, Sword2::optionsList) {
+		_guiOptions = GUIO3(GUIO_NOMIDI, GUIO_NOASPECT, GAMEOPTION_OBJECT_LABELS);
+		_maxScanDepth = 2;
+		_directoryGlobs = directoryGlobs;
+	}
+
+	PlainGameDescriptor findGame(const char *gameId) const override {
+		return Engines::findGameID(gameId, _gameIds, obsoleteGameIDsTable);
+	}
+
 	const char *getName() const override {
 		return "sword2";
 	}
@@ -46,60 +79,10 @@ public:
 	const char *getEngineName() const override {
 		return "Broken Sword II: The Smoking Mirror";
 	}
+
 	const char *getOriginalCopyright() const override {
 		return "Broken Sword II: The Smoking Mirror (C) Revolution";
 	}
-
-	PlainGameList getSupportedGames() const override;
-	const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const override;
-	PlainGameDescriptor findGame(const char *gameid) const override;
-	DetectedGames detectGames(const Common::FSList &fslist, uint32 /*skipADFlags*/, bool /*skipIncomplete*/) override;
 };
 
-PlainGameList Sword2MetaEngineDetection::getSupportedGames() const {
-	const Sword2::GameSettings *g = Sword2::sword2_settings;
-	PlainGameList games;
-	while (g->gameid) {
-		games.push_back(PlainGameDescriptor::of(g->gameid, g->description));
-		g++;
-	}
-	return games;
-}
-
-const ExtraGuiOptions Sword2MetaEngineDetection::getExtraGuiOptions(const Common::String &target) const {
-	ExtraGuiOptions options;
-	options.push_back(sword2ExtraGuiOption);
-	return options;
-}
-
-PlainGameDescriptor Sword2MetaEngineDetection::findGame(const char *gameid) const {
-	const Sword2::GameSettings *g = Sword2::sword2_settings;
-	while (g->gameid) {
-		if (0 == scumm_stricmp(gameid, g->gameid))
-			break;
-		g++;
-	}
-	return PlainGameDescriptor::of(g->gameid, g->description);
-}
-
-DetectedGames Sword2MetaEngineDetection::detectGames(const Common::FSList &fslist, uint32 /*skipADFlags*/, bool /*skipIncomplete*/) {
-	// The required game data files can be located in the game directory, or in
-	// a subdirectory called "clusters". In the latter case, we don't want to
-	// detect the game in that subdirectory, as this will detect the game twice
-	// when mass add is searching inside a directory. In this case, the first
-	// result (the game directory) will be correct, but the second result (the
-	// clusters subdirectory) will be wrong, as the optional speech, music and
-	// video data files will be ignored. Note that this fix will skip the game
-	// data files if the user has placed them inside a "clusters" subdirectory,
-	// or if he/she points ScummVM directly to the "clusters" directory of the
-	// game CD. Fixes bug #5273.
-	if (!fslist.empty()) {
-		Common::String directory = fslist[0].getParent().getName();
-		if (directory.hasPrefixIgnoreCase("clusters") && directory.size() <= 9)
-			return DetectedGames();
-	}
-
-	return detectGamesImpl(fslist);
-}
-
 REGISTER_PLUGIN_STATIC(SWORD2_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, Sword2MetaEngineDetection);
diff --git a/engines/sword2/detection.h b/engines/sword2/detection.h
index 1b273d3ba9e..0cce1bf219d 100644
--- a/engines/sword2/detection.h
+++ b/engines/sword2/detection.h
@@ -24,6 +24,8 @@
 #ifndef SWORD2_DETECTION_H
 #define SWORD2_DETECTION_H
 
+#include "engines/advancedDetector.h"
+
 namespace Sword2 {
 
 enum {
@@ -31,6 +33,12 @@ enum {
 	GF_SPANISHDEMO = 1 << 1
 };
 
+struct Sword2GameDescription {
+	ADGameDescription desc;
+
+	uint32 features;
+};
+
 } // End of namespace Sword2
 
 #endif // SWORD2_DETECTION_H
diff --git a/engines/sword2/detection_internal.h b/engines/sword2/detection_internal.h
deleted file mode 100644
index eec8b350acf..00000000000
--- a/engines/sword2/detection_internal.h
+++ /dev/null
@@ -1,125 +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.
- *
- * Additional copyright for this file:
- * Copyright (C) 1994-1998 Revolution Software Ltd.
- *
- * 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 SWORD2_DETECTION_INTERNAL_H
-#define SWORD2_DETECTION_INTERNAL_H
-
-#include "engines/metaengine.h"
-#include "common/gui_options.h"
-#include "sword2/detection.h"
-
-/**
- * The contents of this file are helpful in detecting games,
- * as well as helping to create an instance of the game.
- */
-namespace Sword2 {
-
-struct GameSettings {
-	const char *gameid;
-	const char *description;
-	uint32 features;
-	const char *detectname;
-	Common::Platform platform;
-};
-
-static const GameSettings sword2_settings[] = {
-	/* Broken Sword II */
-	{"sword2", "Broken Sword II: The Smoking Mirror", 0, "players.clu", Common::kPlatformWindows },
-	{"sword2alt", "Broken Sword II: The Smoking Mirror (alt)", 0, "r2ctlns.ocx", Common::kPlatformWindows },
-	{"sword2psx", "Broken Sword II: The Smoking Mirror (PlayStation)", 0, "screens.clu", Common::kPlatformPSX },
-	{"sword2psxdemo", "Broken Sword II: The Smoking Mirror (PlayStation/Demo)", Sword2::GF_DEMO, "screens.clu", Common::kPlatformPSX },
-	{"sword2demo", "Broken Sword II: The Smoking Mirror (Demo)", Sword2::GF_DEMO, "players.clu", Common::kPlatformWindows },
-	{"sword2demo-es", "Broken Sword II: The Smoking Mirror (Spanish/Demo)", Sword2::GF_DEMO | Sword2::GF_SPANISHDEMO, "vielogo.tga", Common::kPlatformWindows },
-	{NULL, NULL, 0, NULL, Common::kPlatformUnknown }
-};
-
-} // End of namespace Sword2
-
-static bool isFullGame(const Common::FSList &fslist) {
-	Common::FSList::const_iterator file;
-
-	// We distinguish between the two versions by the presence of paris.clu
-	for (file = fslist.begin(); file != fslist.end(); ++file) {
-		if (!file->isDirectory()) {
-			if (file->getName().equalsIgnoreCase("paris.clu"))
-				return true;
-		}
-	}
-
-	return false;
-}
-
-static DetectedGames detectGamesImpl(const Common::FSList &fslist, bool recursion = false) {
-	DetectedGames detectedGames;
-	const Sword2::GameSettings *g;
-	Common::FSList::const_iterator file;
-	bool isFullVersion = isFullGame(fslist);
-
-	for (g = Sword2::sword2_settings; g->gameid; ++g) {
-		// Iterate over all files in the given directory
-		for (file = fslist.begin(); file != fslist.end(); ++file) {
-			if (file->isDirectory()) continue;
-
-			if (file->getName().equalsIgnoreCase(g->detectname)) {
-				// Make sure that the sword2 demo is not mixed up with the
-				// full version, since they use the same filename for detection
-				if ((g->features == Sword2::GF_DEMO && isFullVersion) ||
-					(g->features == 0 && !isFullVersion))
-					continue;
-
-				// Match found, add to list of candidates, then abort inner loop.
-				DetectedGame game = DetectedGame("sword2", g->gameid, g->description,
-												 Common::UNK_LANG, g->platform);
-				game.setGUIOptions(GUIO2(GUIO_NOMIDI, GUIO_NOASPECT));
-
-				detectedGames.push_back(game);
-				break;
-			}
-		}
-	}
-
-
-	if (detectedGames.empty() && !recursion) {
-		// Nothing found -- try to recurse into the 'clusters' subdirectory,
-		// present e.g. if the user copied the data straight from CD.
-		for (file = fslist.begin(); file != fslist.end(); ++file) {
-			if (file->isDirectory()) {
-				if (file->getName().equalsIgnoreCase("clusters")) {
-					Common::FSList recList;
-					if (file->getChildren(recList, Common::FSNode::kListAll)) {
-						DetectedGames recGames = detectGamesImpl(recList, true);
-						if (!recGames.empty()) {
-							detectedGames.push_back(recGames);
-							break;
-						}
-					}
-				}
-			}
-		}
-	}
-
-
-	return detectedGames;
-}
-
-#endif // SWORD2_DETECTION_INTERNAL_H
diff --git a/engines/sword2/detection_tables.h b/engines/sword2/detection_tables.h
new file mode 100644
index 00000000000..d30e482940e
--- /dev/null
+++ b/engines/sword2/detection_tables.h
@@ -0,0 +1,71 @@
+/* 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.
+ *
+ * Additional copyright for this file:
+ * Copyright (C) 1994-1998 Revolution Software Ltd.
+ *
+ * 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/>.
+ */
+
+#define GAMEOPTION_OBJECT_LABELS GUIO_GAMEOPTIONS1
+
+namespace Sword2 {
+
+static const Sword2GameDescription gameDescriptions[] = {
+	{
+		{
+			"sword2",
+			"Demo",
+			AD_ENTRY1s("players.clu", "effc399b33e5f85329d7633ad4dc5e90", 10091432),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_DEMO,
+			GUIO0()
+		},
+		GF_DEMO
+	},
+
+	{
+		{
+			"sword2",
+			"Demo",
+			AD_ENTRY1s("players.clu", "5068815a62ba932afba7267bafc9786d", 9904289),
+			Common::ES_ESP,
+			Common::kPlatformWindows,
+			ADGF_DEMO,
+			GUIO0()
+		},
+		GF_DEMO | GF_SPANISHDEMO
+	},
+
+	{
+		{
+			"sword2",
+			"Demo",
+			AD_ENTRY1s("players.clu", "e8786804d399310bda3fcbf897bc44f7", 3085812),
+			Common::EN_ANY,
+			Common::kPlatformPSX,
+			ADGF_DEMO,
+			GUIO0()
+		},
+		GF_DEMO
+	},
+
+	{ AD_TABLE_END_MARKER, 0 }
+};
+
+} // End of namespace Sword2
diff --git a/engines/sword2/metaengine.cpp b/engines/sword2/metaengine.cpp
index c05a426c191..e34fb6116b9 100644
--- a/engines/sword2/metaengine.cpp
+++ b/engines/sword2/metaengine.cpp
@@ -21,7 +21,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "engines/metaengine.h"
+#include "engines/advancedDetector.h"
+#include "engines/obsolete.h"
 
 #include "common/config-manager.h"
 #include "common/events.h"
@@ -33,9 +34,9 @@
 
 #include "sword2/sword2.h"
 #include "sword2/saveload.h"
-#include "sword2/detection_internal.h"
+#include "sword2/obsolete.h"
 
-class Sword2MetaEngine : public MetaEngine {
+class Sword2MetaEngine : public AdvancedMetaEngine {
 public:
 	const char *getName() const override {
 		return "sword2";
@@ -47,7 +48,11 @@ public:
 	int getMaximumSaveSlot() const override;
 	void removeSaveState(const char *target, int slot) const override;
 
-	Common::Error createInstance(OSystem *syst, Engine **engine) override;
+	Common::Error createInstance(OSystem *syst, Engine **engine) override {
+		Engines::upgradeTargetIfNecessary(obsoleteGameIDsTable);
+		return AdvancedMetaEngine::createInstance(syst, engine);
+	}
+	Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override;
 };
 
 bool Sword2MetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -105,28 +110,10 @@ void Sword2MetaEngine::removeSaveState(const char *target, int slot) const {
 	g_system->getSavefileManager()->removeSavefile(filename);
 }
 
-Common::Error Sword2MetaEngine::createInstance(OSystem *syst, Engine **engine) {
-	assert(syst);
-	assert(engine);
-
-	Common::FSList fslist;
-	Common::FSNode dir(ConfMan.get("path"));
-	if (!dir.getChildren(fslist, Common::FSNode::kListAll)) {
-		return Common::kNoGameDataFoundError;
-	}
-
-	// Invoke the detector
-	Common::String gameid = ConfMan.get("gameid");
-	DetectedGames detectedGames = detectGamesImpl(fslist);
-
-	for (uint i = 0; i < detectedGames.size(); i++) {
-		if (detectedGames[i].gameId == gameid) {
-			*engine = new Sword2::Sword2Engine(syst);
-			return Common::kNoError;
-		}
-	}
-
-	return Common::kNoGameDataFoundError;
+Common::Error Sword2MetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
+	const Sword2::Sword2GameDescription *gd = (const Sword2::Sword2GameDescription *)desc;
+	*engine = new Sword2::Sword2Engine(syst, gd);
+	return Common::kNoError;
 }
 
 #if PLUGIN_ENABLED_DYNAMIC(SWORD2)
diff --git a/engines/sword2/obsolete.h b/engines/sword2/obsolete.h
new file mode 100644
index 00000000000..8dd9dc6a5f5
--- /dev/null
+++ b/engines/sword2/obsolete.h
@@ -0,0 +1,36 @@
+/* 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.
+ *
+ * Additional copyright for this file:
+ * Copyright (C) 1994-1998 Revolution Software Ltd.
+ *
+ * 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 SWORD2_OBSOLETE_H
+#define SWORD2_OBSOLETE_H
+
+static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = {
+	{"sword2alt", "sword2", Common::kPlatformWindows},
+	{"sword2psx", "sword2", Common::kPlatformPSX},
+	{"sword2psxdemo", "sword2", Common::kPlatformPSX},
+	{"sword2demo", "sword2", Common::kPlatformWindows},
+	{"sword2demo-es", "sword2", Common::kPlatformWindows},
+	{0, 0, Common::kPlatformUnknown}
+};
+
+#endif // SWORD2_OBSOLETE_H
diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index 305504adbc6..bdf0e5eb86c 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -32,6 +32,7 @@
 
 #include "sword2/sword2.h"
 #include "sword2/defs.h"
+#include "sword2/detection.h"
 #include "sword2/header.h"
 #include "sword2/console.h"
 #include "sword2/controls.h"
@@ -48,7 +49,7 @@ namespace Sword2 {
 
 Common::Platform Sword2Engine::_platform;
 
-Sword2Engine::Sword2Engine(OSystem *syst) : Engine(syst), _rnd("sword2") {
+Sword2Engine::Sword2Engine(OSystem *syst, const Sword2GameDescription *gameDesc) : Engine(syst), _rnd("sword2") {
 	// Add default file directories
 	const Common::FSNode gameDataDir(ConfMan.get("path"));
 	SearchMan.addSubDirectoryMatching(gameDataDir, "clusters");
@@ -57,18 +58,8 @@ Sword2Engine::Sword2Engine(OSystem *syst) : Engine(syst), _rnd("sword2") {
 	SearchMan.addSubDirectoryMatching(gameDataDir, "smacks");
 	SearchMan.addSubDirectoryMatching(gameDataDir, "streams"); // PSX video
 
-	if (!scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2demo") || !scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2psxdemo"))
-		_features = GF_DEMO;
-	else if (!scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2demo-es"))
-		_features = GF_DEMO | GF_SPANISHDEMO;
-	else
-		_features = 0;
-
-	// Check if we are running PC or PSX version.
-	if (!scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2psx") || !scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2psxdemo"))
-		Sword2Engine::_platform = Common::kPlatformPSX;
-	else
-		Sword2Engine::_platform = Common::kPlatformWindows;
+	_features = gameDesc->features;
+	Sword2Engine::_platform = gameDesc->desc.platform;
 
 	_bootParam = ConfMan.getInt("boot_param");
 	_saveSlot = ConfMan.getInt("save_slot");
diff --git a/engines/sword2/sword2.h b/engines/sword2/sword2.h
index f30bf34f08e..cbac4627f14 100644
--- a/engines/sword2/sword2.h
+++ b/engines/sword2/sword2.h
@@ -146,7 +146,7 @@ protected:
 	void pauseEngineIntern(bool pause) override;
 
 public:
-	Sword2Engine(OSystem *syst);
+	Sword2Engine(OSystem *syst, const Sword2GameDescription *gameDesc);
 	~Sword2Engine() override;
 
 	int getFramesPerSecond();


Commit: 4543c66d636c1ac970c04736c2563355cbc2ec2a
    https://github.com/scummvm/scummvm/commit/4543c66d636c1ac970c04736c2563355cbc2ec2a
Author: Lothar Serra Mari (mail at serra.me)
Date: 2022-10-22T18:40:07+02:00

Commit Message:
SWORD2: Add multiple game variants to the detection table

Changed paths:
    engines/sword2/detection.cpp
    engines/sword2/detection_tables.h


diff --git a/engines/sword2/detection.cpp b/engines/sword2/detection.cpp
index 8d84999f7cd..0ce6e7e0a81 100644
--- a/engines/sword2/detection.cpp
+++ b/engines/sword2/detection.cpp
@@ -38,6 +38,8 @@ static const PlainGameDescriptor sword2Games[] = {
 
 static const char *const directoryGlobs[] = {
 	"clusters",
+	"smacks",
+	"video",
 	nullptr
 };
 
diff --git a/engines/sword2/detection_tables.h b/engines/sword2/detection_tables.h
index d30e482940e..505d9a8f053 100644
--- a/engines/sword2/detection_tables.h
+++ b/engines/sword2/detection_tables.h
@@ -30,7 +30,20 @@ static const Sword2GameDescription gameDescriptions[] = {
 		{
 			"sword2",
 			"Demo",
-			AD_ENTRY1s("players.clu", "effc399b33e5f85329d7633ad4dc5e90", 10091432),
+			AD_ENTRY1s("general.clu", "11e824864a75195652610e8b397382a6", 8030769),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_DEMO,
+			GUIO0()
+		},
+		GF_DEMO
+	},
+
+	{
+		{
+			"sword2",
+			"PC Gamer Demo",
+			AD_ENTRY1s("general.clu", "522ecd261027f0b55315a32aaef97295", 4519015),
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_DEMO,
@@ -65,6 +78,302 @@ static const Sword2GameDescription gameDescriptions[] = {
 		GF_DEMO
 	},
 
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY3s("general.clu",  "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "resource.tab", "ee4c0a8a2b8821ca113ea4176968b857", 16584,
+					   "speech1.clu",  "a403904a0e825356107d228f8f74092e", 176260048),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"1CD release",
+			AD_ENTRY2s("general.clu",  "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "resource.tab", "ee4c0a8a2b8821ca113ea4176968b857", 16588),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"EU",
+			AD_ENTRY3s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "9b344d976ca8d19a1cf5aa4413397f6b", 304968,
+			           "speech1.clg", "d49a5f3683b734d1129cbf6a0f95ae83", 57935499),
+			Common::EN_ANY,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "d0cafb4d2982613ca4cf0574a0e4e079", 418165),
+			Common::FR_FRA,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "5771f52410745029d7f71af05072d3d6", 556961),
+			Common::DE_DEU,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "56c1197e72249473538c30c912607d01", 418165),
+			Common::ES_ESP,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "c141e9903e4a1f45252dd1500498b6e2", 488745),
+			Common::IT_ITA,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "bc45e00cfb737ad61fada3ca6b1b2bfc", 279042),
+			Common::CS_CZE,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "11e824864a75195652610e8b397382a6", 8030769,
+			           "text.clu",    "9867bb6dfc850bfa165812f0827a5508", 454229),
+			Common::FI_FIN,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "93ea23ccf78dc746ed9a027fcf66d58d", 248692),
+			Common::HE_ISR,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "82714fa70516486174cddc2754958cd4", 304968),
+			Common::HU_HUN,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "11e824864a75195652610e8b397382a6", 8030769,
+			           "text.clu",    "f1cf2aaa7e56d8bf6572c9b25267931e", 373704),
+			Common::PL_POL,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"English speech",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "cda6306bedfa63ac4386ff82977bfcd6", 410949),
+			Common::PT_BRA,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"Fargus",
+			AD_ENTRY2s("general.clu", "98e43a4fd93227b1d5d44e664eeede0c", 7320908,
+			           "text.clu",    "33a2645498ef1f4e63c4f6a50da4a3e2", 288998),
+			Common::RU_RUS,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"Mediahauz/English speech",
+			AD_ENTRY2s("general.clu", "31db8564f9187538f24d9fda0677f666", 7059728,
+			           "text.clu",    "e85c148037b8bfc02c968d4d22fda5e1", 315178),
+			Common::RU_RUS,
+			Common::kPlatformWindows,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "06691fc9f749f3f7ad0f622fbfe79467", 302756),
+			Common::EN_USA,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "be8ad3f1d9d3ddd8881169b16aa23970", 838392),
+			Common::EN_GRB,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "0920f1aec8bc9d02f8c94f73965c8006", 327668),
+			Common::FR_FRA,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "5ce53dfc154b80d4ca64b60df808e411", 347456),
+			Common::DE_DEU,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "03ffcd1eec48f74a3d16d1b7751cee0b", 316124),
+			Common::ES_ESP,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
+	{
+		{
+			"sword2",
+			"",
+			AD_ENTRY2s("general.clu", "7ef0353ca03338d59b4f4e3d01a38df1", 2095780,
+			           "text.clu",    "298bd6eef464780bf6b0830805eef220", 334784),
+			Common::IT_ITA,
+			Common::kPlatformPSX,
+			ADGF_NO_FLAGS,
+			GUIO0()
+		},
+		0
+	},
+
 	{ AD_TABLE_END_MARKER, 0 }
 };
 


Commit: 7e5e8b8f5f039e3fa29b6f908461674e60e99776
    https://github.com/scummvm/scummvm/commit/7e5e8b8f5f039e3fa29b6f908461674e60e99776
Author: Lothar Serra Mari (mail at serra.me)
Date: 2022-10-22T18:40:07+02:00

Commit Message:
SWORD2: Fix indentation in new detection table

Changed paths:
    engines/sword2/detection_tables.h


diff --git a/engines/sword2/detection_tables.h b/engines/sword2/detection_tables.h
index 505d9a8f053..75b58b94197 100644
--- a/engines/sword2/detection_tables.h
+++ b/engines/sword2/detection_tables.h
@@ -84,7 +84,7 @@ static const Sword2GameDescription gameDescriptions[] = {
 			"",
 			AD_ENTRY3s("general.clu",  "31db8564f9187538f24d9fda0677f666", 7059728,
 			           "resource.tab", "ee4c0a8a2b8821ca113ea4176968b857", 16584,
-					   "speech1.clu",  "a403904a0e825356107d228f8f74092e", 176260048),
+			           "speech1.clu",  "a403904a0e825356107d228f8f74092e", 176260048),
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,




More information about the Scummvm-git-logs mailing list