diff --git a/game/operation/operation.py b/game/operation/operation.py index c9f45f27..c24d627a 100644 --- a/game/operation/operation.py +++ b/game/operation/operation.py @@ -69,7 +69,6 @@ class Operation: options_dict = loads(f.read())["options"] cls._set_mission(Mission(game.theater.terrain)) cls.game = game - cls.reset_naming_ids() cls._setup_mission_coalitions() cls.current_mission.options.load_from_dict(options_dict) @@ -350,6 +349,7 @@ class Operation: cls.jtacs, cls.airgen ) + cls.reset_naming_ids() return cls.unit_map @classmethod diff --git a/gen/aircraft.py b/gen/aircraft.py index c9b46436..3c8065bf 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -971,8 +971,8 @@ class AircraftConflictGenerator: arrival=control_point, divert=None) group = self._generate_at_airport( - name=namegen.next_unit_name(country, control_point.id, - aircraft), + name=namegen.next_aircraft_name(country, control_point.id, + flight), side=country, unit_type=aircraft, count=1, @@ -1036,17 +1036,18 @@ class AircraftConflictGenerator: CoalitionHasAirdrome(coalition, flight.from_cp.id)) def generate_planned_flight(self, cp, country, flight:Flight): + name = namegen.next_aircraft_name(country, cp.id, flight) try: if flight.start_type == "In Flight": group = self._generate_inflight( - name=namegen.next_aircraft_name(country, cp.id, flight), + name=name, side=country, flight=flight, origin=cp) elif isinstance(cp, NavalControlPoint): group_name = cp.get_carrier_group_name() group = self._generate_at_group( - name=namegen.next_aircraft_name(country, cp.id, flight), + name=name, side=country, unit_type=flight.unit_type, count=flight.count, @@ -1057,8 +1058,7 @@ class AircraftConflictGenerator: raise RuntimeError( f"Attempted to spawn at airfield for non-airfield {cp}") group = self._generate_at_airport( - name=namegen.next_aircraft_name(country, cp.id, - flight), + name=name, side=country, unit_type=flight.unit_type, count=flight.count, @@ -1070,7 +1070,7 @@ class AircraftConflictGenerator: logging.warning("No room on runway or parking slots. Starting from the air.") flight.start_type = "In Flight" group = self._generate_inflight( - name=namegen.next_aircraft_name(country, cp.id, flight), + name=name, side=country, flight=flight, origin=cp) diff --git a/gen/naming.py b/gen/naming.py index 34bf9003..9989ef69 100644 --- a/gen/naming.py +++ b/gen/naming.py @@ -44,6 +44,7 @@ ANIMALS = [ class NameGenerator: number = 0 infantry_number = 0 + aircraft_number = 0 ANIMALS = ANIMALS @@ -57,10 +58,11 @@ class NameGenerator: def reset_numbers(cls): cls.number = 0 cls.infantry_number = 0 + cls.aircraft_number = 0 @classmethod def next_aircraft_name(cls, country: Country, parent_base_id: int, flight: Flight): - cls.number += 1 + cls.aircraft_number += 1 try: if flight.custom_name: name_str = flight.custom_name @@ -70,7 +72,7 @@ class NameGenerator: except AttributeError: # Here to maintain save compatibility with 2.3 name_str = "{} {}".format( flight.package.target.name, flight.flight_type) - return "{}|{}|{}|{}|{}|".format(name_str, country.id, cls.number, parent_base_id, db.unit_type_name(flight.unit_type)) + return "{}|{}|{}|{}|{}|".format(name_str, country.id, cls.aircraft_number, parent_base_id, db.unit_type_name(flight.unit_type)) @classmethod def next_unit_name(cls, country: Country, parent_base_id: int, unit_type: UnitType):