From 773ab868fe51c2906e31a089a31f16b3a195da1b Mon Sep 17 00:00:00 2001 From: Ted John Date: Wed, 6 Dec 2017 19:55:53 +0000 Subject: [PATCH] Parse new form of original id --- src/openrct2/object/ObjectFactory.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/openrct2/object/ObjectFactory.cpp b/src/openrct2/object/ObjectFactory.cpp index b499f931e3..7adac8c280 100644 --- a/src/openrct2/object/ObjectFactory.cpp +++ b/src/openrct2/object/ObjectFactory.cpp @@ -220,10 +220,19 @@ namespace ObjectFactory if (objectType == "ride") { auto id = json_string_value(json_object_get(jRoot, "id")); - auto originalId = json_string_value(json_object_get(jRoot, "originalId")); rct_object_entry entry = { 0 }; - memcpy(entry.name, originalId, 8); + auto originalId = String::ToStd(json_string_value(json_object_get(jRoot, "originalId"))); + auto originalName = originalId; + if (originalId.length() == 8 + 1 + 8 + 1 + 8) + { + entry.flags = std::stoul(originalId.substr(0, 8), 0, 16); + originalName = originalId.substr(9, 8); + entry.checksum = std::stoul(originalId.substr(18, 8), 0, 16); + } + auto minLength = std::min(8, originalName.length()); + memcpy(entry.name, originalName.c_str(), minLength); + result = new RideObject(entry); auto readContext = ReadObjectContext(id); result->ReadJson(&readContext, jRoot);