From d97df78f4f85633aaac2c56db0746aab835b056b Mon Sep 17 00:00:00 2001 From: IceReaper Date: Thu, 30 Mar 2023 12:27:31 +0200 Subject: [PATCH] Steam and Gog resolvers now take IDFiles into account. --- .../Installer/SourceResolvers/GogSourceResolver.cs | 7 ++++++- .../Installer/SourceResolvers/SteamSourceResolver.cs | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Installer/SourceResolvers/GogSourceResolver.cs b/OpenRA.Mods.Common/Installer/SourceResolvers/GogSourceResolver.cs index 4f4f3dd74b..74a1a9b305 100644 --- a/OpenRA.Mods.Common/Installer/SourceResolvers/GogSourceResolver.cs +++ b/OpenRA.Mods.Common/Installer/SourceResolvers/GogSourceResolver.cs @@ -34,8 +34,13 @@ namespace OpenRA.Mods.Common.Installer var prefixes = new[] { "HKEY_LOCAL_MACHINE\\Software\\", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\" }; foreach (var prefix in prefixes) - if (Registry.GetValue($"{prefix}GOG.com\\Games\\{appId.Value}", "path", null) is string installDir) + { + if (!(Registry.GetValue($"{prefix}GOG.com\\Games\\{appId.Value}", "path", null) is string installDir)) + continue; + + if (InstallerUtils.IsValidSourcePath(installDir, modSource)) return installDir; + } return null; } diff --git a/OpenRA.Mods.Common/Installer/SourceResolvers/SteamSourceResolver.cs b/OpenRA.Mods.Common/Installer/SourceResolvers/SteamSourceResolver.cs index b86de2adb8..712bdd1f8d 100644 --- a/OpenRA.Mods.Common/Installer/SourceResolvers/SteamSourceResolver.cs +++ b/OpenRA.Mods.Common/Installer/SourceResolvers/SteamSourceResolver.cs @@ -43,8 +43,13 @@ namespace OpenRA.Mods.Common.Installer if (!data.TryGetValue("installdir", out var installDir)) continue; - if (installDir != null) - return Path.Combine(steamDirectory, "steamapps", "common", installDir); + if (installDir == null) + continue; + + var path = Path.Combine(steamDirectory, "steamapps", "common", installDir); + + if (InstallerUtils.IsValidSourcePath(path, modSource)) + return path; } return null;