diff --git a/CreamInstaller/CreamInstaller.csproj b/CreamInstaller/CreamInstaller.csproj index 01fde1c..3dd1530 100644 --- a/CreamInstaller/CreamInstaller.csproj +++ b/CreamInstaller/CreamInstaller.csproj @@ -4,7 +4,7 @@ net6.0-windows10.0.22621.0 True Resources\ini.ico - 4.2.1.1 + 4.2.2.0 2021, pointfeev (https://github.com/pointfeev) CreamInstaller Automatic DLC Unlocker Installer & Configuration Generator diff --git a/CreamInstaller/Forms/InstallForm.cs b/CreamInstaller/Forms/InstallForm.cs index 5c83f49..3c227a1 100644 --- a/CreamInstaller/Forms/InstallForm.cs +++ b/CreamInstaller/Forms/InstallForm.cs @@ -66,7 +66,7 @@ internal partial class InstallForm : CustomForm } UpdateUser($"Checking directories for {selection.Name} . . . ", LogTextBox.Operation); IEnumerable invalidDirectories = (await selection.RootDirectory.GetExecutables()) - ?.Where(d => !selection.ExecutableDirectories.Any(s => d.path.Contains(s.directory))) + ?.Where(d => !selection.ExecutableDirectories.Any(s => s.directory == Path.GetDirectoryName(d.path))) ?.Select(d => Path.GetDirectoryName(d.path)); if (!selection.ExecutableDirectories.Any(s => s.directory == selection.RootDirectory)) invalidDirectories = invalidDirectories?.Append(selection.RootDirectory); diff --git a/CreamInstaller/Resources/Resources.cs b/CreamInstaller/Resources/Resources.cs index 12f445f..190102f 100644 --- a/CreamInstaller/Resources/Resources.cs +++ b/CreamInstaller/Resources/Resources.cs @@ -78,7 +78,8 @@ internal static class Resources internal static bool TryGetFileBinaryType(this string path, out BinaryType binaryType) => GetBinaryType(path, out binaryType); internal static async Task> GetExecutableDirectories(this string rootDirectory, bool filterCommon = false, Func validFunc = null) => - await Task.Run(async () => (await rootDirectory.GetExecutables(filterCommon: filterCommon, validFunc: validFunc) ?? await rootDirectory.GetExecutables())?.Select(e => + await Task.Run(async () => (await rootDirectory.GetExecutables(filterCommon: filterCommon, validFunc: validFunc) + ?? (filterCommon || validFunc is not null ? await rootDirectory.GetExecutables() : null))?.Select(e => { e.path = Path.GetDirectoryName(e.path); return e; @@ -114,8 +115,19 @@ internal static class Resources internal static bool IsCommonIncorrectExecutable(this string rootDirectory, string path) { string subPath = path[rootDirectory.Length..].ToUpperInvariant().BeautifyPath(); - return subPath.Contains("SETUP") || subPath.Contains("REDIST") //|| subPath.Contains("SUPPORT") - || subPath.Contains("CRASH") && (subPath.Contains("PAD") || subPath.Contains("REPORT")); + return subPath.Contains("SETUP") + || subPath.Contains("REDIST") + || subPath.Contains("SUPPORT") + || subPath.Contains("CRASH") && (subPath.Contains("PAD") || subPath.Contains("REPORT")) + || subPath.Contains("HELPER") + || subPath.Contains("CEFPROCESS") + || subPath.Contains("ZFGAMEBROWSER") + || subPath.Contains("MONO") + || subPath.Contains("PLUGINS") + || subPath.Contains("MODDING") + || subPath.Contains("MOD") && subPath.Contains("MANAGER") + || subPath.Contains("BATTLEYE") + || subPath.Contains("ANTICHEAT"); } internal static async Task> GetDllDirectoriesFromGameDirectory(this string gameDirectory, Platform platform) => await Task.Run(() =>