diff --git a/changelog.md b/changelog.md index 0a587280..15288afa 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ * **[Modding]** Updated support for F/A-18E/F/G mod version 2.2.5 * **[Campaign Setup]** Allow adjustments to naval TGOs (except carriers) on turn 0 * **[Campaign Design]** Ability to configure specific carrier names & types in campaign's yaml file +* **[Mission Generation]** Ability to inject custom kneeboards ## Fixes * **[UI/UX]** A-10A flights can be edited again. diff --git a/game/missiongenerator/kneeboard.py b/game/missiongenerator/kneeboard.py index c48f7f9d..a8415951 100644 --- a/game/missiongenerator/kneeboard.py +++ b/game/missiongenerator/kneeboard.py @@ -50,6 +50,7 @@ from game.weather.weather import Weather from .aircraft.flightdata import FlightData from .briefinggenerator import CommInfo, JtacInfo, MissionInfoGenerator from .missiondata import AwacsInfo, TankerInfo +from ..persistency import kneeboards_dir if TYPE_CHECKING: from game import Game @@ -821,6 +822,12 @@ class KneeboardGenerator(MissionInfoGenerator): page_path = aircraft_dir / f"page{idx:02}.png" page.write(page_path) self.mission.add_aircraft_kneeboard(aircraft.dcs_unit_type, page_path) + for type in Path(kneeboards_dir()).iterdir(): + if type.is_dir(): + for kneeboard in type.iterdir(): + self.mission.custom_kneeboards[type.name].append(kneeboard) + else: + self.mission.custom_kneeboards[""].append(type) def pages_by_airframe(self) -> Dict[AircraftType, List[KneeboardPage]]: """Returns a list of kneeboard pages per airframe in the mission. diff --git a/game/persistency.py b/game/persistency.py index 0733995a..4e485639 100644 --- a/game/persistency.py +++ b/game/persistency.py @@ -111,6 +111,10 @@ def airwing_dir() -> Path: return base_path() / "Retribution" / "AirWing" +def kneeboards_dir() -> Path: + return base_path() / "Retribution" / "Kneeboards" + + def payloads_dir(backup: bool = False) -> Path: payloads = base_path() / "MissionEditor" / "UnitPayloads" if backup: