Fix aircraft group IDs not being reproducible.

This commit is contained in:
walterroach 2020-12-28 14:04:19 -06:00
parent c697a34239
commit daba4ef09e
3 changed files with 12 additions and 10 deletions

View File

@ -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

View File

@ -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)

View File

@ -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):