[Scummvm-git-logs] scummvm master -> 2bb5ef5aeb8decd36d33004b60d9c12de930ca0b

waltervn walter at vanniftrik-it.nl
Sat Jul 20 00:38:05 CEST 2019


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:
a721160982 ADL: Correct a variable name
85efc49e0e ADL: Add another hires6 detection entry
2bb5ef5aeb ADL: Fix double listing in detector


Commit: a72116098220d782ceee7dea987ee1829a63fad5
    https://github.com/scummvm/scummvm/commit/a72116098220d782ceee7dea987ee1829a63fad5
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2019-07-19T14:44:19+02:00

Commit Message:
ADL: Correct a variable name

Changed paths:
    engines/adl/disk.cpp


diff --git a/engines/adl/disk.cpp b/engines/adl/disk.cpp
index 2e8e762..7361387 100644
--- a/engines/adl/disk.cpp
+++ b/engines/adl/disk.cpp
@@ -610,9 +610,9 @@ int32 computeMD5(const Common::FSNode &node, Common::String &md5, uint32 md5Byte
 		int version = getVersion_WOZ(f);
 
 		if (version > 0) {
-			StreamPtr bitStream(readTrack_WOZ(f, 0, version == 2));
-			if (bitStream) {
-				bool isDOS33 = detectDOS33(*bitStream, bitStream->size());
+			StreamPtr nibbles(readTrack_WOZ(f, 0, version == 2));
+			if (nibbles) {
+				bool isDOS33 = detectDOS33(*nibbles, nibbles->size());
 				StreamPtr stream(readImage_WOZ(f, isDOS33, tracks));
 				if (stream) {
 					md5 = Common::computeStreamMD5AsString(*stream, md5Bytes);


Commit: 85efc49e0e0b7e18ae7b3dab8172a4b200b8b690
    https://github.com/scummvm/scummvm/commit/85efc49e0e0b7e18ae7b3dab8172a4b200b8b690
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2019-07-19T22:42:00+02:00

Commit Message:
ADL: Add another hires6 detection entry

Changed paths:
    engines/adl/detection.cpp


diff --git a/engines/adl/detection.cpp b/engines/adl/detection.cpp
index 4f898b5..ed3c114 100644
--- a/engines/adl/detection.cpp
+++ b/engines/adl/detection.cpp
@@ -149,7 +149,7 @@ static const AdlGameDescription gameFileDescriptions[] = {
 static const AdlGameDescription gameDiskDescriptions[] = {
 	{ // Hi-Res Adventure #1: Mystery House - Apple II - Contains Coarsegold address
 		{
-			"hires1", 0,
+			"hires1", "",
 			{
 				{ "mysthous", 0, "8df0b3b3e609a2e40237e2419c1cb767", 116480 },
 				AD_LISTEND
@@ -164,7 +164,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #1: Mystery House - Apple II - Roberta Williams Anthology
 		{
-			"hires1", 0,
+			"hires1", "",
 			{
 				{ "mysthous", 0, "54d20eb1ef0084ac3c2d16c31c5b7eb7", 143360 },
 				AD_LISTEND
@@ -179,7 +179,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #2: Wizard and the Princess - Apple II - Roberta Williams Anthology
 		{
-			"hires2", 0,
+			"hires2", "",
 			{
 				{ "wizard", 0, "72b114bf8f94fafe5672daac2a70c765", 143360 },
 				AD_LISTEND
@@ -194,7 +194,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #0: Mission Asteroid - Apple II - Roberta Williams Anthology
 		{
-			"hires0", 0,
+			"hires0", "",
 			{
 				{ "mission", 0, "6bc53f51a3c8ee65c020af55fb8bd875", 116480 },
 				AD_LISTEND
@@ -209,7 +209,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #3: Cranston Manor - Apple II
 		{
-			"hires3", 0,
+			"hires3", "",
 			{
 				{ "cranston", 0, "e4d35440791a36e55299c7be1ccd2b04", 116480 },
 				AD_LISTEND
@@ -224,7 +224,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Apple II - Load 'N' Go
 		{
-			"hires4", 0,
+			"hires4", "",
 			{
 				{ "ulyssesa", 0, "1eaeb2f1a773ce2d1cb9f16b2ef09049", 143360 },
 				{ "ulyssesb", 1, "9fa8552255ae651b252844168b8b6617", 143360 },
@@ -240,7 +240,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #4: Ulysses and the Golden Fleece - Atari 8-bit - Re-release
 		{
-			"hires4", 0,
+			"hires4", "",
 			{
 				{ "ulys1b", 0, "bb6aab9a35b41d160b6eefa088165f56", 92160 },
 				{ "ulys1a", 0, "c227eeee34d0bacd62b2d6231c409204", 92160 },
@@ -258,7 +258,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #5: Time Zone - Apple II - Version 1.1 - Roberta Williams Anthology
 		{
-			"hires5", 0,
+			"hires5", "",
 			{
 				{ "tzone1a", 2, "731844b1d19c2801e3a5bc61d109af54", 143360 },
 				{ "tzone1b", 3, "4eaf8d790e3f93097cca9ddbe863df50", 143360 },
@@ -284,7 +284,7 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 	},
 	{ // Hi-Res Adventure #6: The Dark Crystal - Apple II - Roberta Williams Anthology / SierraVenture
 		{
-			"hires6", 0,
+			"hires6", "SierraVenture [version A]",
 			{
 				{ "dark1a", 0, "9a5968a8f378c84454d88f4cd4e143a9", 143360 },
 				{ "dark1b", 3, "1271ff9c3e1bdb4942301dd37dd0ef87", 143360 },
@@ -300,6 +300,24 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 		GAME_TYPE_HIRES6,
 		GAME_VER_NONE
 	},
+	{ // Hi-Res Adventure #6: The Dark Crystal - Apple II - SierraVenture
+		{
+			"hires6", "SierraVenture [version B]",
+			{
+				{ "dark1a", 0, "d0b8e808b02564b6ce58b5ea5cc61ead", 143360 },
+				{ "dark1b", 3, "1271ff9c3e1bdb4942301dd37dd0ef87", 143360 },
+				{ "dark2a", 4, "090e77563add7b4c9ab25f444d727316", 143360 },
+				{ "dark2b", 5, "f2db96af0955324900b800505af4d91f", 143360 },
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformApple2,
+			ADGF_NO_FLAGS,
+			GUIO2(GAMEOPTION_COLOR_DEFAULT_ON, GAMEOPTION_SCANLINES)
+		},
+		GAME_TYPE_HIRES6,
+		GAME_VER_NONE
+	},
 	{ AD_TABLE_END_MARKER, GAME_TYPE_NONE, GAME_VER_NONE }
 };
 


Commit: 2bb5ef5aeb8decd36d33004b60d9c12de930ca0b
    https://github.com/scummvm/scummvm/commit/2bb5ef5aeb8decd36d33004b60d9c12de930ca0b
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2019-07-20T00:20:44+02:00

Commit Message:
ADL: Fix double listing in detector

Changed paths:
    engines/adl/detection.cpp


diff --git a/engines/adl/detection.cpp b/engines/adl/detection.cpp
index ed3c114..52807ca 100644
--- a/engines/adl/detection.cpp
+++ b/engines/adl/detection.cpp
@@ -532,13 +532,15 @@ bool AdlMetaEngine::addFileProps(const FileMap &allFiles, Common::String fname,
 
 // Based on AdvancedMetaEngine::detectGame
 ADDetectedGames AdlMetaEngine::detectGame(const Common::FSNode &parent, const FileMap &allFiles, Common::Language language, Common::Platform platform, const Common::String &extra) const {
-	// We run the file-based detector first and then add to the returned list
+	// We run the file-based detector first, if it finds a match we do not search for disk images
 	ADDetectedGames matched = AdvancedMetaEngine::detectGame(parent, allFiles, language, platform, extra);
 
+	if (!matched.empty())
+		return matched;
+
 	debug(3, "Starting disk image detection in dir '%s'", parent.getPath().c_str());
 
 	FilePropertiesMap filesProps;
-	bool gotAnyMatchesWithAllFiles = false;
 
 	for (uint g = 0; gameDiskDescriptions[g].desc.gameId != 0; ++g) {
 		ADDetectedGame game(&gameDiskDescriptions[g].desc);
@@ -604,17 +606,20 @@ ADDetectedGames AdlMetaEngine::detectGame(const Common::FSNode &parent, const Fi
 			debug(3, "Matched file: %s", fileName.c_str());
 		}
 
-		if (allFilesPresent && !game.hasUnknownFiles) {
-			debug(2, "Found game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g);
-			gotAnyMatchesWithAllFiles = true;
-			matched.push_back(game);
-		} else {
-			if (allFilesPresent && !gotAnyMatchesWithAllFiles) {
-				if (matched.empty() || strcmp(matched.back().desc->gameId, game.desc->gameId) != 0)
+		// This assumes that the detection table groups together games that have the same gameId and platform
+		if (allFilesPresent) {
+			if (!game.hasUnknownFiles) {
+				debug(2, "Found game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g);
+				// If we just added an unknown variant for this game and platform, remove it
+				if (!matched.empty() && strcmp(matched.back().desc->gameId, game.desc->gameId) == 0 && matched.back().desc->platform == game.desc->platform)
+					matched.pop_back();
+				matched.push_back(game);
+			} else {
+				debug(5, "Skipping game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g);
+				// If we already added a known or unknown variant for this game and platform, don't add another
+				if (matched.empty() || strcmp(matched.back().desc->gameId, game.desc->gameId) != 0 || matched.back().desc->platform != game.desc->platform)
 					matched.push_back(game);
 			}
-
-			debug(5, "Skipping game: %s (%s/%s) (%d)", game.desc->gameId, getPlatformDescription(game.desc->platform), getLanguageDescription(game.desc->language), g);
 		}
 	}
 





More information about the Scummvm-git-logs mailing list