From 94baaecf8c150da4b0da7c18389b5d29de30bdaf Mon Sep 17 00:00:00 2001 From: Raffson Date: Sat, 16 Nov 2024 19:27:57 +0100 Subject: [PATCH] Fix TOT not changing after abort --- game/ato/flightstate/uninitialized.py | 2 +- qt_ui/widgets/QTopPanel.py | 1 - qt_ui/windows/QWaitingForMissionResultWindow.py | 3 ++- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/game/ato/flightstate/uninitialized.py b/game/ato/flightstate/uninitialized.py index 4b76f75f..e3f0b09a 100644 --- a/game/ato/flightstate/uninitialized.py +++ b/game/ato/flightstate/uninitialized.py @@ -25,7 +25,7 @@ class Uninitialized(FlightState): @property def is_waiting_for_start(self) -> bool: - raise RuntimeError("Attempted to simulate flight that is not fully initialized") + return True def estimate_position(self) -> Point: raise RuntimeError("Attempted to simulate flight that is not fully initialized") diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 5304121b..5a4ff2bd 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -178,7 +178,6 @@ class QTopPanel(QFrame): for flight in package.flights: if isinstance(flight.state, Uninitialized): flight.state.reinitialize(now) - flight.state.reinitialize(now) if flight.state.is_waiting_for_start: startup = flight.flight_plan.startup_time() if startup < now: diff --git a/qt_ui/windows/QWaitingForMissionResultWindow.py b/qt_ui/windows/QWaitingForMissionResultWindow.py index 08e888bb..1e84fc4a 100644 --- a/qt_ui/windows/QWaitingForMissionResultWindow.py +++ b/qt_ui/windows/QWaitingForMissionResultWindow.py @@ -21,6 +21,7 @@ from PySide6.QtWidgets import ( from jinja2 import Environment, FileSystemLoader, select_autoescape from game import Game +from game.ato.flightstate import Uninitialized from game.debriefing import Debriefing from game.profiling import logged_duration from game.server import EventStream @@ -241,7 +242,7 @@ class QWaitingForMissionResultWindow(QDialog): self.sim_controller.set_game(self.game) events = GameUpdateEvents() for _, f in self.game.db.flights.objects.items(): - f.state.reinitialize(self.game.conditions.start_time) + f.state = Uninitialized(f, self.game.settings) events.update_flight(f) for cp in self.game.theater.controlpoints: cp.release_parking_slots()