/// <summary> /// Loads the template from an HQT file. /// </summary> /// <param name="filePath">The path of the file to load from.</param> /// <returns>True if everything went right, false if an error happened.</returns> public bool LoadFromFile(string filePath) { Clear(false); using (INIFile ini = new INIFile(filePath)) { BriefingDescription = ini.GetValue("Settings", "Briefing.Description", BriefingDescription); BriefingName = ini.GetValue("Settings", "Briefing.Name", BriefingName); BriefingUnits = ini.GetValue("Settings", "Briefing.Units", BriefingUnits); ContextCoalitionBlue = ini.GetValue("Settings", "Context.Coalition.Blue", ContextCoalitionBlue); ContextCoalitionRed = ini.GetValue("Settings", "Context.Coalition.Red", ContextCoalitionRed); ContextCountriesCoalitions = ini.GetValue("Settings", "Context.CountriesCoalitions", ContextCountriesCoalitions); ContextPlayerCoalition = ini.GetValue("Settings", "Context.PlayerCoalition", ContextPlayerCoalition); ContextTheater = ini.GetValue("Settings", "Context.Theater", ContextTheater); ContextTimePeriod = ini.GetValue("Settings", "Context.TimePeriod", ContextTimePeriod); EnvironmentSeason = ini.GetValue("Settings", "Environment.Season", EnvironmentSeason); EnvironmentTimeOfDay = ini.GetValue("Settings", "Environment.TimeOfDay", EnvironmentTimeOfDay); EnvironmentWeather = ini.GetValue("Settings", "Environment.Weather", EnvironmentWeather); EnvironmentWind = ini.GetValue("Settings", "Environment.Wind", EnvironmentWind); ObjectiveCount = ini.GetValue("Settings", "Objective.Count", ObjectiveCount); ObjectiveDistance = ini.GetValue("Settings", "Objective.Distance", ObjectiveDistance); ObjectiveType = ini.GetValue("Settings", "Objective.Type", ObjectiveType); List <MissionTemplatePlayerFlightGroup> playerFlightGroupsList = new List <MissionTemplatePlayerFlightGroup>(); foreach (string k in ini.GetKeysInSection("FlightGroups")) { playerFlightGroupsList.Add(new MissionTemplatePlayerFlightGroup(ini, "FlightGroups", k)); } FlightPackagePlayers = playerFlightGroupsList.ToArray(); FlightPackageAICAP = ini.GetValue("Settings", "FlightPackage.AI.CAP", FlightPackageAICAP); FlightPackageAICAP = ini.GetValue("Settings", "FlightPackage.AI.SEAD", FlightPackageAISEAD); FlightPackageSupportAWACS = ini.GetValue("Settings", "FlightPackage.Support.AWACS", FlightPackageSupportAWACS); FlightPackageSupportTanker = ini.GetValue("Settings", "FlightPackage.Support.Tanker", FlightPackageSupportTanker); PreferencesEnemiesOnF10Map = ini.GetValue("Settings", "Preferences.EnemiesOnF10Map", PreferencesEnemiesOnF10Map); PreferencesExtraWaypoints = ini.GetValue("Settings", "Preferences.ExtraWaypoints", PreferencesExtraWaypoints); PreferencesForceClientInSP = ini.GetValue("Settings", "Preferences.ForceClientInSP", PreferencesForceClientInSP); PreferencesLanguage = ini.GetValue("Settings", "Preferences.Language", PreferencesLanguage); RealismAllowExternalViews = ini.GetValue("Settings", "Realism.AllowExternalViews", RealismAllowExternalViews); RealismBirdStrikes = ini.GetValue("Settings", "Realism.BirdStrikes", RealismBirdStrikes); RealismRandomFailures = ini.GetValue("Settings", "Realism.RandomFailures", RealismRandomFailures); SituationEnemyAirDefense = ini.GetValue("Settings", "Situation.Enemy.AirDefense", SituationEnemyAirDefense); SituationEnemyCAP = ini.GetValue("Settings", "Situation.Enemy.CAP", SituationEnemyCAP); SituationFriendlyAirDefense = ini.GetValue("Settings", "Situation.Friendly.AirDefense", SituationFriendlyAirDefense); SituationFriendlyCAP = ini.GetValue("Settings", "Situation.Friendly.CAP", SituationFriendlyCAP); SkillEnemyAir = ini.GetValue("Settings", "Skill.Enemy.Air", SkillEnemyAir); SkillEnemyGround = ini.GetValue("Settings", "Skill.Enemy.Ground", SkillEnemyGround); SkillFriendlyAir = ini.GetValue("Settings", "Skill.Friendly.Air", SkillFriendlyAir); SkillFriendlyGround = ini.GetValue("Settings", "Skill.Friendly.Ground", SkillFriendlyGround); } return(true); }
/// <summary> /// Sets a new "clean" template. Resets all settings to their default. /// </summary> /// <param name="addDefaultFlightGroup">Should a default flight group be added?</param> private void Clear(bool addDefaultFlightGroup) { BriefingDescription = ""; BriefingName = ""; BriefingUnits = UnitSystem.ByCoalition; ContextCoalitionBlue = Library.Instance.Common.DefaultCoalitionBlue; ContextCoalitionRed = Library.Instance.Common.DefaultCoalitionRed; ContextCountriesCoalitions = CountriesCoalition.Default; ContextPlayerCoalition = Coalition.Blue; ContextTheater = Library.Instance.Common.DefaultTheater; ContextTimePeriod = TimePeriod.Decade2000; EnvironmentSeason = Season.Random; EnvironmentTimeOfDay = TimeOfDay.RandomDaytime; EnvironmentWeather = Weather.Random; EnvironmentWind = Wind.Auto; ObjectiveCount = 1; ObjectiveDistance = 50; ObjectiveType = Library.Instance.Common.DefaultObjective; FlightPackagePlayers = addDefaultFlightGroup ? new MissionTemplatePlayerFlightGroup[] { new MissionTemplatePlayerFlightGroup() } : new MissionTemplatePlayerFlightGroup[0]; FlightPackageAICAP = 0; FlightPackageAISEAD = 0; FlightPackageSupportAWACS = true; FlightPackageSupportTanker = true; PreferencesEnemiesOnF10Map = false; PreferencesForceClientInSP = false; PreferencesLanguage = Library.Instance.Common.DefaultLanguage; PreferencesExtraWaypoints = true; RealismAllowExternalViews = DCSOption.Default; RealismBirdStrikes = DCSOption.Default; RealismRandomFailures = DCSOption.Default; SituationEnemyAirDefense = AmountNR.Random; SituationEnemyCAP = AmountNR.Random; SituationFriendlyAirDefense = AmountNR.Random; SituationFriendlyCAP = AmountNR.Random; SkillEnemyAir = HQSkillLevel.Random; SkillEnemyGround = HQSkillLevel.Random; SkillFriendlyAir = HQSkillLevel.Random; SkillFriendlyGround = HQSkillLevel.Random; }