Save-compat changes to allow loading Liberation saves

May be incomplete, some discrepancies in naming may still exist, but at least Kerbo's campaign can be loaded.
This commit is contained in:
Raffson
2023-07-01 17:08:12 +02:00
parent aaaa9847b1
commit 3b745c43eb
5 changed files with 30 additions and 3 deletions

View File

@@ -31,6 +31,16 @@ def weapons_migrator(name: str) -> str:
return name
def weapons_migrator_lib(name: str) -> str:
# Splitting this from our own migrations
if "KH" in name:
return "Kh" + name[2:]
migration_map = {}
while name in migration_map:
name = migration_map[name]
return name
@dataclass(frozen=True)
class Weapon:
"""Wrapper for DCS weapons."""
@@ -153,7 +163,9 @@ class WeaponGroup:
def __setstate__(self, state: dict[str, Any]) -> None:
# Update any existing models with new data on load.
updated = WeaponGroup.named(weapons_migrator(state["name"]))
name = weapons_migrator(state["name"])
name = weapons_migrator_lib(name)
updated = WeaponGroup.named(name)
state.update(updated.__dict__)
self.__dict__.update(state)