From 7c1805b061b7be0eccbfb45e6ec290f01d3831cc Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Thu, 17 Apr 2025 21:20:59 +0200 Subject: [PATCH] Add support for RCT Classic+ as a source --- src/openrct2/PlatformEnvironment.cpp | 3 +++ src/openrct2/platform/Platform.Common.cpp | 4 ++++ src/openrct2/platform/Platform.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/src/openrct2/PlatformEnvironment.cpp b/src/openrct2/PlatformEnvironment.cpp index 926cff1214..eb49c4576f 100644 --- a/src/openrct2/PlatformEnvironment.cpp +++ b/src/openrct2/PlatformEnvironment.cpp @@ -122,6 +122,9 @@ public: case RCT2Variant::rctClassicMac: directoryName = OpenRCT2::Platform::kRCTClassicMacOSDataFolder; break; + case RCT2Variant::rctClassicPlusMac: + directoryName = OpenRCT2::Platform::kRCTClassicPlusMacOSDataFolder; + break; } break; case DirBase::openrct2: diff --git a/src/openrct2/platform/Platform.Common.cpp b/src/openrct2/platform/Platform.Common.cpp index 1ca453d2f8..e8a3d947e5 100644 --- a/src/openrct2/platform/Platform.Common.cpp +++ b/src/openrct2/platform/Platform.Common.cpp @@ -105,6 +105,10 @@ namespace OpenRCT2::Platform if (File::Exists(combinedPath)) return std::make_optional(RCT2Variant::rctClassicMac); + combinedPath = Path::ResolveCasing(Path::Combine(path, OpenRCT2::Platform::kRCTClassicPlusMacOSDataFolder, u8"g1.dat")); + if (File::Exists(combinedPath)) + return std::make_optional(RCT2Variant::rctClassicPlusMac); + return std::nullopt; } diff --git a/src/openrct2/platform/Platform.h b/src/openrct2/platform/Platform.h index fc0cb2bc57..cb7455e6f1 100644 --- a/src/openrct2/platform/Platform.h +++ b/src/openrct2/platform/Platform.h @@ -51,6 +51,7 @@ enum class RCT2Variant : uint8_t rct2Original, rctClassicWindows, rctClassicMac, + rctClassicPlusMac, }; struct RealWorldDate; @@ -63,6 +64,8 @@ namespace OpenRCT2::Platform // clang-format off constexpr u8string_view kRCTClassicMacOSDataFolder = u8"RCT Classic.app" PATH_SEPARATOR "Contents" PATH_SEPARATOR "Resources"; + constexpr u8string_view kRCTClassicPlusMacOSDataFolder = + u8"RCT Classic+.app" PATH_SEPARATOR "Contents" PATH_SEPARATOR "Resources"; // clang-format on std::string GetEnvironmentVariable(std::string_view name);