public static string FindMixDir(bool RA2)
{
if (IsLinux) // don't expect registry access..
return Environment.CurrentDirectory;
try {
using (var key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) {
var subkey = key.OpenSubKey("SOFTWARE\\Westwood\\" + (RA2 ? "Red Alert 2" : "Tiberian Sun"));
if (subkey != null) return Path.GetDirectoryName((string)subkey.GetValue("InstallPath", string.Empty));
}
}
catch (NullReferenceException) { } // no registry entry
catch (ArgumentException) { } // invalid path
// if current directory contains any mix files, try that
if (Directory.GetFiles(Environment.CurrentDirectory, "*.mix").Any()) return Environment.CurrentDirectory;
else return string.Empty;
}