[Scummvm-git-logs] scummvm master -> b7dd4328318b927de18b3a06d31ccdbee813f724

sev- noreply at scummvm.org
Sun May 14 21:16:06 UTC 2023


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

Summary:
b7dd432831 TETRAEDGE: Skip garbage value entry in inventory data


Commit: b7dd4328318b927de18b3a06d31ccdbee813f724
    https://github.com/scummvm/scummvm/commit/b7dd4328318b927de18b3a06d31ccdbee813f724
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2023-05-14T23:16:02+02:00

Commit Message:
TETRAEDGE: Skip garbage value entry in inventory data

There exist a Russian variant of Syberia 2 for mac. It's created by
injecting iOS translation into official mac Syberia 2. Unfortunately
inventory XML contains a garbage value entry. Ignore it but issue warning.

Changed paths:
    engines/tetraedge/game/inventory_objects_xml_parser.cpp
    engines/tetraedge/game/inventory_objects_xml_parser.h


diff --git a/engines/tetraedge/game/inventory_objects_xml_parser.cpp b/engines/tetraedge/game/inventory_objects_xml_parser.cpp
index 1e366da6817..2dde4560aff 100644
--- a/engines/tetraedge/game/inventory_objects_xml_parser.cpp
+++ b/engines/tetraedge/game/inventory_objects_xml_parser.cpp
@@ -32,4 +32,13 @@ bool InventoryObjectsXmlParser::parserCallback_Object(ParserNode *node) {
 	return true;
 }
 
+bool InventoryObjectsXmlParser::handleUnknownKey(ParserNode *node) {
+	if (node->name == "value") {
+		warning("Garbage entry <value> in inventory file");
+		return true;
+	}
+	parserError("Unknown key");
+	return false;
+}
+
 } // end namespace Tetraedge
diff --git a/engines/tetraedge/game/inventory_objects_xml_parser.h b/engines/tetraedge/game/inventory_objects_xml_parser.h
index f8c5bec0f77..ab8d1eaee5a 100644
--- a/engines/tetraedge/game/inventory_objects_xml_parser.h
+++ b/engines/tetraedge/game/inventory_objects_xml_parser.h
@@ -45,6 +45,7 @@ public:
 
 	bool parserCallback_document(ParserNode *node) { return true; };
 	bool parserCallback_Object(ParserNode *node);
+	bool handleUnknownKey(ParserNode *node) override;
 
 public:
 	Common::HashMap<Common::String, Inventory::InventoryObjectData> _objects;




More information about the Scummvm-git-logs mailing list