public static bool FixBlurredWheels(string acRoot, string carName)
{
var kn5File = FileUtils.GetMainCarFilename(acRoot, carName);
var kn5 = Kn5.FromFile(kn5File);
var wheels = 0;
string[] normalRims;
string[] blurredRims;
try {
var normalRimsList = new List <string>();
var blurredRimsList = new List <string>();
foreach (var section in new IniFile(FileUtils.GetCarDirectory(acRoot, carName), "blurred_objects.ini").Values)
{
if (Math.Abs(section.GetDouble("MIN_SPEED", 0d)) < 0.001)
{
normalRimsList.Add(section.GetPossiblyEmpty("NAME"));
}
else
{
blurredRimsList.Add(section.GetPossiblyEmpty("NAME"));
}
}
normalRims = normalRimsList.ToArray();
blurredRims = blurredRimsList.ToArray();
} catch (Exception) {
normalRims = new [] { "RIM_LF", "RIM_RF", "RIM_LR", "RIM_RR" };
blurredRims = new [] { "RIM_BLUR_LF", "RIM_BLUR_RF", "RIM_BLUR_LR", "RIM_BLUR_RR" };
}
foreach (var node in kn5.Nodes.Where(node => node.NodeClass == Kn5NodeClass.Base))
{
if (!node.Active && normalRims.Contains(node.Name))
{
node.Active = true;
wheels++;
}
else if (node.Active && blurredRims.Contains(node.Name))
{
node.Active = false;
wheels++;
}
}
if (wheels == 0)
{
return(false);
}
FileUtils.Recycle(kn5File);
kn5.SaveAll(kn5File);
return(true);
}