protected override IniFile ConvertConfig(IniFile ini) { ini = base.ConvertConfig(ini); if (SettingsHolder.Drive.KunosCareerUserAiLevel) { ini["RACE"].Set("AI_LEVEL", UserAiLevel); } // why, Kunos, why ini.Remove("SPECIAL_EVENT"); // well, just in case ini["BENCHMARK"].Set("ACTIVE", false); ini["REPLAY"].Set("ACTIVE", false); ini["REMOTE"].Set("ACTIVE", false); IniFile opponentsIniFile = null; foreach (var i in Enumerable.Range(0, ini["RACE"].GetInt("CARS", 0)).Skip(1)) { var sectionKey = @"CAR_" + i; if (!ini.ContainsKey(sectionKey) || string.IsNullOrWhiteSpace(ini[sectionKey].GetPossiblyEmpty("DRIVER_NAME"))) { if (opponentsIniFile == null) { var career = KunosCareerManager.Instance.GetById(KunosCareerId); if (career == null) throw new Exception($"Can’t find parent career with ID={KunosCareerId}"); opponentsIniFile = new IniFile(career.OpponentsIniFilename); if (opponentsIniFile.IsEmptyOrDamaged()) break; } ini[sectionKey] = opponentsIniFile["AI" + i]; } ini[sectionKey].SetId("MODEL", ini[sectionKey].GetPossiblyEmpty("MODEL")); ini[sectionKey].SetId("SKIN", ini[sectionKey].GetPossiblyEmpty("SKIN")); } return ini; }