using System.Diagnostics; using System.Runtime.InteropServices; using Microsoft.Win32; using SPTInstaller.Models; namespace SPTInstaller.Helpers; public static class PreCheckHelper { private const string registryInstall = @"Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\EscapeFromTarkov"; public static string DetectOriginalGamePath() { // We can't detect the installed path on non-Windows if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return null; var uninstallStringValue = Registry.LocalMachine.OpenSubKey(registryInstall, false) ?.GetValue("InstallLocation"); var info = (uninstallStringValue is string key) ? new DirectoryInfo(key) : null; if (info == null) return null; return Path.TrimEndingDirectorySeparator(info.FullName); } public static Result DetectOriginalGameVersion(string gamePath) { try { string version = FileVersionInfo.GetVersionInfo(Path.Join(gamePath, "/EscapeFromTarkov.exe")).ProductVersion .Replace('-', '.').Split('.')[^2]; return Result.FromSuccess(version); } catch (Exception ex) { return Result.FromError($"File not found: {ex.Message}"); } } }