mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Implemented saving of a Pretense pre-generation backup save before generating a Pretense campaign.
This commit is contained in:
parent
0a7b885626
commit
40a01218dd
@ -1,5 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import copy
|
||||||
|
import logging
|
||||||
|
import pickle
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
@ -71,6 +74,21 @@ class PretenseMissionGenerator(MissionGenerator):
|
|||||||
self.mission.options.load_from_dict(options)
|
self.mission.options.load_from_dict(options)
|
||||||
|
|
||||||
def generate_miz(self, output: Path) -> UnitMap:
|
def generate_miz(self, output: Path) -> UnitMap:
|
||||||
|
now = datetime.now()
|
||||||
|
date_time = now.strftime("%Y-%d-%mT%H_%M_%S")
|
||||||
|
game_backup_pickle = pickle.dumps(self.game)
|
||||||
|
blue_coalition_backup = copy.deepcopy(self.game.blue)
|
||||||
|
red_coalition_backup = copy.deepcopy(self.game.red)
|
||||||
|
try:
|
||||||
|
with open(
|
||||||
|
self.game.savepath + ".pre-pretense-backup." + date_time, "wb"
|
||||||
|
) as f:
|
||||||
|
pickle.dump(self.game, f)
|
||||||
|
except:
|
||||||
|
logging.error(
|
||||||
|
f"Unable to save Pretense pre-generation backup to {self.game.savepath}.pre-pretense-backup.{date_time}"
|
||||||
|
)
|
||||||
|
|
||||||
if self.generation_started:
|
if self.generation_started:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
"Mission has already begun generating. To reset, create a new "
|
"Mission has already begun generating. To reset, create a new "
|
||||||
@ -139,6 +157,17 @@ class PretenseMissionGenerator(MissionGenerator):
|
|||||||
namegen.reset_numbers()
|
namegen.reset_numbers()
|
||||||
self.mission.save(output)
|
self.mission.save(output)
|
||||||
|
|
||||||
|
print(
|
||||||
|
f"Loading pre-pretense save, number of BLUFOR squadrons: {len(self.game.blue.air_wing.squadrons)}"
|
||||||
|
)
|
||||||
|
self.game = pickle.loads(game_backup_pickle)
|
||||||
|
self.game.blue = copy.deepcopy(blue_coalition_backup)
|
||||||
|
self.game.red = copy.deepcopy(red_coalition_backup)
|
||||||
|
print(
|
||||||
|
f"Loaded pre-pretense save, number of BLUFOR squadrons: {len(self.game.blue.air_wing.squadrons)}"
|
||||||
|
)
|
||||||
|
self.game.on_load()
|
||||||
|
|
||||||
return self.unit_map
|
return self.unit_map
|
||||||
|
|
||||||
def setup_mission_coalitions(self) -> None:
|
def setup_mission_coalitions(self) -> None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user