diff --git a/dcs/flyingunit.py b/dcs/flyingunit.py index cc5379d2..5cc2e652 100644 --- a/dcs/flyingunit.py +++ b/dcs/flyingunit.py @@ -46,6 +46,7 @@ def __init__( self.radio: Optional[AircraftRadioPresets] = None self.hardpoint_racks = True self.addpropaircraft = dict(_type.property_defaults) if _type.property_defaults else None + self.payload_restricted: Optional[Dict[int, Dict[int, str]]] = None def load_from_dict(self, d): super(FlyingUnit, self).load_from_dict(d) @@ -71,6 +72,7 @@ def load_from_dict(self, d): self.radio = d.get("Radio") self.hardpoint_racks = d.get("hardpoint_racks", None) self.addpropaircraft = d.get("AddPropAircraft") + self.payload_restricted = d["payload"].get("restricted", None) return True def set_parking(self, parking_slot: ParkingSlot): @@ -227,6 +229,8 @@ def dict(self): d["callsign"] = self.callsign_dict if self.radio: d["Radio"] = self.radio + if self.payload_restricted is not None: + d["payload"]["restricted"] = self.payload_restricted return d diff --git a/tests/missions/payload.restrictions.miz b/tests/missions/payload.restrictions.miz new file mode 100644 index 00000000..78808be5 Binary files /dev/null and b/tests/missions/payload.restrictions.miz differ diff --git a/tests/test_mission.py b/tests/test_mission.py index 0c50309c..575a8299 100644 --- a/tests/test_mission.py +++ b/tests/test_mission.py @@ -1290,3 +1290,20 @@ def test_geffect(self) -> None: m2 = Mission() m2.load_file("missions/saved.g-effect-sim.miz") self.assertEqual(m.forced_options.geffect, m2.forced_options.geffect) + + def test_payload_restrictions(self) -> None: + m = Mission() + m.load_file("tests/missions/payload.restrictions.miz") + + country_name = "USA" + coal_name = str(dcs.action.Coalition.Blue.value) + + self.assertIsNotNone(m.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted) + + m.save("missions/saved.payload.restrictions.miz") + + m2 = Mission() + m2.load_file("missions/saved.payload.restrictions.miz") + + self.assertDictEqual(m.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted, + m2.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted)