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(() =>