Make fix to FlightCallsignGenerator to prevent crashes backwards compatible with 12.x saves (#3469)

This PR implements #3467 to make it backwards compatible with 12.x
saves.
This commit is contained in:
zhexu14 2024-11-30 17:19:35 +11:00 committed by GitHub
parent 82258f331c
commit fefe57b75e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -230,19 +230,24 @@ class EasternFlightCallsignGenerator:
class FlightCallsignGenerator: class FlightCallsignGenerator:
def __init__(self, country: str): def __init__(self, country: str):
use_western_callsigns = countries_by_name[country]().use_western_callsigns self._use_western_callsigns = countries_by_name[country]().use_western_callsigns
if use_western_callsigns: self._generators: dict[
self._generator: ( bool, WesternFlightCallsignGenerator | EasternFlightCallsignGenerator
WesternFlightCallsignGenerator | EasternFlightCallsignGenerator ] = {}
) = WesternFlightCallsignGenerator(country) if self._use_western_callsigns:
self._generators[self._use_western_callsigns] = (
WesternFlightCallsignGenerator(country)
)
else: else:
self._generator = EasternFlightCallsignGenerator() self._generators[self._use_western_callsigns] = (
EasternFlightCallsignGenerator()
)
def reset(self) -> None: def reset(self) -> None:
self._generator.reset() self._generators[self._use_western_callsigns].reset()
def alloc_callsign(self, flight: Flight) -> Callsign: def alloc_callsign(self, flight: Flight) -> Callsign:
return self._generator.alloc_callsign(flight) return self._generators[self._use_western_callsigns].alloc_callsign(flight)
def release_callsign(self, callsign: Callsign) -> None: def release_callsign(self, callsign: Callsign) -> None:
self._generator.release_callsign(callsign) self._generators[self._use_western_callsigns].release_callsign(callsign)