From a53812c0fb45f111d77da274a8519c97ac0a3d7d Mon Sep 17 00:00:00 2001 From: RndName Date: Fri, 25 Feb 2022 23:01:56 +0100 Subject: [PATCH] Fix helipad creation Only create a Farp StaticGroup when there are actual helipads. This prevents accidental creation of a helipad at the position of a carrier. --- game/missiongenerator/tgogenerator.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/game/missiongenerator/tgogenerator.py b/game/missiongenerator/tgogenerator.py index 956d4976..56af0257 100644 --- a/game/missiongenerator/tgogenerator.py +++ b/game/missiongenerator/tgogenerator.py @@ -524,12 +524,7 @@ class HelipadGenerator: self.game = game self.radio_registry = radio_registry self.tacan_registry = tacan_registry - self.helipads = self.m.farp( - self.m.country(self.game.neutral_country.name), - self.cp.name + "_helipad", - self.cp.position, - farp_type="InvisibleFARP", - ) + self.helipads: Optional[StaticGroup] = None def generate(self) -> None: # This gets called for every control point, so we don't want to add an empty group (causes DCS mission editor to crash) @@ -542,13 +537,19 @@ class HelipadGenerator: for i, helipad in enumerate(self.cp.helipads): heading = helipad.heading.degrees name_i = self.cp.name + "_helipad" + "_" + str(i) - if i == 0: - pad = self.helipads.units[0] + if self.helipads is None: + self.helipads = self.m.farp( + self.m.country(self.game.neutral_country.name), + name_i, + helipad, + farp_type="InvisibleFARP", + ) else: # Create a new Helipad Unit - pad = InvisibleFARP(self.m.terrain, unit_id=self.m.next_unit_id()) - self.helipads.add_unit(pad) - pad.name = name_i + self.helipads.add_unit( + InvisibleFARP(self.m.terrain, self.m.next_unit_id(), name_i) + ) + pad = self.helipads.units[-1] pad.position = helipad pad.heading = heading # Generate a FARP Ammo and Fuel stack for each pad @@ -612,7 +613,8 @@ class TgoGenerator: self.m, cp, self.game, self.radio_registry, self.tacan_registry ) helipad_gen.generate() - self.helipads[cp] = helipad_gen.helipads + if helipad_gen.helipads is not None: + self.helipads[cp] = helipad_gen.helipads for ground_object in cp.ground_objects: generator: GroundObjectGenerator