From 6f8c30ec81cf70d4353f937b5c20819bb19f4f69 Mon Sep 17 00:00:00 2001 From: RndName Date: Thu, 24 Feb 2022 21:47:37 +0100 Subject: [PATCH] Fix helicopter spawning inside each other Also use NoParkingSlotError for better error handling if no helipads are available --- game/missiongenerator/aircraft/flightgroupspawner.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/game/missiongenerator/aircraft/flightgroupspawner.py b/game/missiongenerator/aircraft/flightgroupspawner.py index ff58cc3d..9a54d1d5 100644 --- a/game/missiongenerator/aircraft/flightgroupspawner.py +++ b/game/missiongenerator/aircraft/flightgroupspawner.py @@ -233,7 +233,7 @@ class FlightGroupSpawner: # helipad = self.helipads[cp][0] helipad = self.helipads[cp].pop() except IndexError as ex: - raise RuntimeError(f"Not enough helipads available at {cp}") from ex + raise NoParkingSlotError(f"Not enough helipads available at {cp}") from ex group = self._generate_at_group(name, helipad) @@ -246,12 +246,14 @@ class FlightGroupSpawner: group.points[0].type = "TakeOffParkingHot" for i in range(self.flight.count - 1): + try: + helipad = self.helipads[cp].pop() + except IndexError as ex: + raise NoParkingSlotError( + f"Not enough helipads available at {cp}" + ) from ex group.units[1 + i].position = copy.copy(helipad.position) group.units[1 + i].heading = helipad.units[0].heading - try: - self.helipads[cp].pop() - except IndexError as ex: - raise RuntimeError(f"Not enough helipads available at {cp}") from ex return group def dcs_start_type(self) -> DcsStartType: