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

sev- noreply at scummvm.org
Fri Jun 3 10:48:56 UTC 2022


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

Summary:
699747bb14 COMMON: Added more debug output to XMLParser
36beb9cc28 GUI: Added new keys in games.xml
e9a110ef23 DIRECTOR: Added detection for mcluhan
7e77b6c585 DIRECTOR: LINGO: Fix crash when referencing non-existing/non-loaded DV cast


Commit: 699747bb14732d04b7f22a3d26a44146dab70844
    https://github.com/scummvm/scummvm/commit/699747bb14732d04b7f22a3d26a44146dab70844
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-06-03T12:36:59+02:00

Commit Message:
COMMON: Added more debug output to XMLParser

Changed paths:
    common/xmlparser.cpp


diff --git a/common/xmlparser.cpp b/common/xmlparser.cpp
index 8be6489e123..b50516df00a 100644
--- a/common/xmlparser.cpp
+++ b/common/xmlparser.cpp
@@ -168,18 +168,26 @@ bool XMLParser::parseActiveKey(bool closed) {
 	if (layout->children.contains(key->name)) {
 		key->layout = layout->children[key->name];
 
-		const StringMap &localMap = key->values;
+		StringMap localMap = key->values;
 		int keyCount = localMap.size();
 
 		for (List<XMLKeyLayout::XMLKeyProperty>::const_iterator i = key->layout->properties.begin(); i != key->layout->properties.end(); ++i) {
 			if (i->required && !localMap.contains(i->name))
 				return parserError("Missing required property '" + i->name + "' inside key '" + key->name + "'");
-			else if (localMap.contains(i->name))
+			else if (localMap.contains(i->name)) {
 				keyCount--;
+				localMap.erase(i->name);
+			}
 		}
 
-		if (keyCount > 0)
-			return parserError("Unhandled property inside key '" + key->name + "'.");
+		if (keyCount > 0) {
+			Common::String missingKeys;
+
+			for (auto i = localMap.begin(); i != localMap.end(); ++i)
+				missingKeys += i->_key + ' ';
+
+			return parserError(Common::String::format("Unhandled property inside key '%s' (%s, %d items).", key->name.c_str(), missingKeys.c_str(), keyCount));
+		}
 
 	} else {
 		return parserError("Unexpected key in the active scope ('" + key->name + "').");


Commit: 36beb9cc284d4baa2e4e983c5da9b0fdce6f9b71
    https://github.com/scummvm/scummvm/commit/36beb9cc284d4baa2e4e983c5da9b0fdce6f9b71
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-06-03T12:39:04+02:00

Commit Message:
GUI: Added new keys in games.xml

Changed paths:
    gui/MetadataParser.h


diff --git a/gui/MetadataParser.h b/gui/MetadataParser.h
index 819bd16e90a..4506b195102 100644
--- a/gui/MetadataParser.h
+++ b/gui/MetadataParser.h
@@ -93,6 +93,9 @@ protected:
 				XML_PROP(datafiles, true)
 				XML_PROP(wikipedia_page, true)
 				XML_PROP(series_id, true)
+				XML_PROP(steam_id, false)
+				XML_PROP(gog_id, false)
+				XML_PROP(additional_stores, false)
 			KEY_END() // game end
 		KEY_END() // games end
 


Commit: e9a110ef236a54cc90774841404fcce4f56635f2
    https://github.com/scummvm/scummvm/commit/e9a110ef236a54cc90774841404fcce4f56635f2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-06-03T12:47:54+02:00

Commit Message:
DIRECTOR: Added detection for mcluhan

Changed paths:
    engines/director/detection_tables.h


diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 0774447c972..2446787a6cd 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -256,6 +256,7 @@ static const PlainGameDescriptor directorGames[] = {
 	{ "maze",				"The Riddle of the Maze" },
 	{ "mckenzie",			"McKenzie & Co." },
 	{ "mckenziemf",			"McKenzie & Co.: More Friends" }, // Expansion for McKenzie & Co.
+	{ "mcluhan",			"Understanding McLuhan" },
 	{ "mcmillennium",		"Mission Code: Millennium" },
 	{ "mediaband",			"Meet MediaBand" },
 	{ "melements",			"Masters of the Elements" },
@@ -3572,6 +3573,10 @@ static const DirectorGameDescription gameDescriptions[] = {
 
 	WINGAME1("mckenziemf", "", "MCKFRAME.EXE", "49c04e880f314a4965d21273df4f2dee", 4038355, 404),
 
+	WINGAME2t("mcluhan", "", "mcluhan/mcluhan.exe", "317d00bfea3c27688462f01bdd6ac2aa", 3587645,
+							 "fg/sunmorn.mov", "baee2df57be48984fabb721ce996b224", 1331857, 404),
+	MACGAME1("mcluhan", "", "McLuhan.dxr", "ce91eb31b2fcebc26451e0cc1632a964", 44371496, 404),
+
 	WINDEMO1("mcmillennium", "Demo", "MILLDEMO.EXE", "b6027f900ae90ed59de3d22e68d2bfed", 3630918, 404),
 
 	// Full game is not Director


Commit: 7e77b6c585ccf19ea11adc2d1ff81ed058e51b05
    https://github.com/scummvm/scummvm/commit/7e77b6c585ccf19ea11adc2d1ff81ed058e51b05
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-06-03T12:48:14+02:00

Commit Message:
DIRECTOR: LINGO: Fix crash when referencing non-existing/non-loaded DV cast

Changed paths:
    engines/director/lingo/lingo-the.cpp


diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index d5743cfe535..56672ddef40 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1567,7 +1567,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		break;
 	case kTheMovieRate:
 		channel->_movieRate = d.asFloat();
-		if (sprite->_cast->_type == kCastDigitalVideo)
+		if (sprite->_cast && sprite->_cast->_type == kCastDigitalVideo)
 			((DigitalVideoCastMember *)sprite->_cast)->setMovieRate(channel->_movieRate);
 		else
 			warning("Setting movieTime for non-digital video");




More information about the Scummvm-git-logs mailing list