From 2bb9dbe8c139508c6965a9185d9a84a80bf2f044 Mon Sep 17 00:00:00 2001 From: Hielke Morsink Date: Sun, 9 Jan 2022 21:48:11 +0100 Subject: [PATCH] Fix: Title Sequence cannot load .park files --- src/openrct2/ParkImporter.cpp | 17 +++++++++++++---- src/openrct2/ParkImporter.h | 5 +++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/openrct2/ParkImporter.cpp b/src/openrct2/ParkImporter.cpp index a8483a582d..a4c9815e35 100644 --- a/src/openrct2/ParkImporter.cpp +++ b/src/openrct2/ParkImporter.cpp @@ -23,24 +23,33 @@ namespace ParkImporter { std::unique_ptr parkImporter; std::string extension = Path::GetExtension(hintPath); - if (ExtensionIsRCT1(extension)) + auto* context = OpenRCT2::GetContext(); + if (ExtensionIsOpenRCT2ParkFile(extension)) + { + parkImporter = CreateParkFile(context->GetObjectRepository()); + } + else if (ExtensionIsRCT1(extension)) { parkImporter = CreateS4(); } else { - auto context = OpenRCT2::GetContext(); parkImporter = CreateS6(context->GetObjectRepository()); } return parkImporter; } - bool ExtensionIsRCT1(const std::string& extension) + bool ExtensionIsOpenRCT2ParkFile(std::string_view extension) + { + return String::Equals(extension, ".park", true); + } + + bool ExtensionIsRCT1(std::string_view extension) { return String::Equals(extension, ".sc4", true) || String::Equals(extension, ".sv4", true); } - bool ExtensionIsScenario(const std::string& extension) + bool ExtensionIsScenario(std::string_view extension) { return String::Equals(extension, ".sc4", true) || String::Equals(extension, ".sc6", true) || String::Equals(extension, ".sea", true); diff --git a/src/openrct2/ParkImporter.h b/src/openrct2/ParkImporter.h index db99c7576a..af3caf9fb7 100644 --- a/src/openrct2/ParkImporter.h +++ b/src/openrct2/ParkImporter.h @@ -64,8 +64,9 @@ namespace ParkImporter [[nodiscard]] std::unique_ptr CreateS6(IObjectRepository& objectRepository); [[nodiscard]] std::unique_ptr CreateParkFile(IObjectRepository& objectRepository); - bool ExtensionIsRCT1(const std::string& extension); - bool ExtensionIsScenario(const std::string& extension); + bool ExtensionIsOpenRCT2ParkFile(std::string_view extension); + bool ExtensionIsRCT1(std::string_view extension); + bool ExtensionIsScenario(std::string_view extension); } // namespace ParkImporter class ObjectLoadException : public std::exception