Attempt to reset the simulation on abort.

This is optional because I really don't know if I trust it. I don't see
much wrong with it (aside from the warning about not using it with auto-
resolve, because it won't restore lost aircraft), but it's really not
something I'd built for since it's not going to be possible as the RTS
features grow.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2735.
This commit is contained in:
Dan Albert
2023-05-19 00:56:55 -07:00
parent 527eac1f4a
commit 4b4c45e90f
7 changed files with 44 additions and 5 deletions

View File

@@ -36,6 +36,14 @@ class GameLoop:
def elapsed_time(self) -> timedelta:
return self.sim.time - self.game.conditions.start_time
def reset(self) -> None:
self.pause()
self.events = GameUpdateEvents()
self.sim.reset(self.events)
self.send_update(rate_limit=False)
self.started = False
self.completed = False
def start(self) -> None:
if self.started:
raise RuntimeError("Cannot start game loop because it has already started")