Fix callsign generator (#3467)

Fix crash in CallsignGenerator when player uses faction that uses
Eastern callsign conventions.
This commit is contained in:
zhexu14 2024-11-29 22:30:04 +11:00 committed by GitHub
parent 6cd3043b60
commit 4e86b5211c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 10 deletions

View File

@ -1,3 +1,16 @@
# 12.1.0
Saves from 12.x are not compatible with 12.1.0.
## Features/Improvements
## Fixes
* **[Data]** Added/updated CBU weapons data.
* **[Mission Generation]** Fixed crash when using factions that have Eastern callsign conventions.
# 12.0.0 # 12.0.0
Saves from 11.x are not compatible with 12.0.0. Saves from 11.x are not compatible with 12.0.0.

View File

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