From 626b6b052152bb59e7c417a2dd4cd89a9c6e1e37 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Thu, 16 Jul 2020 02:29:36 +0200 Subject: [PATCH] fix loading old savegames from ponyorm DB --- MultiServer.py | 11 ++++++----- WebHostLib/customserver.py | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/MultiServer.py b/MultiServer.py index 4fe93d09..a48e935e 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -210,13 +210,14 @@ class Context(Node): return d def set_save(self, savedata: dict): - rom_names = savedata["rom_names"] - received_items = {tuple(k): [ReceivedItem(*i) for i in v] for k, v in savedata["received_items"]} - + rom_names = savedata["rom_names"] # convert from TrackerList to List in case of ponyorm if rom_names != self.rom_names: - adjusted = {rom: (team, slot) for (rom, (team, slot)) in rom_names} + adjusted = {tuple(rom): (team, slot) for (rom, (team, slot)) in rom_names} # old format, ponyorm friendly if self.rom_names != adjusted: - raise Exception('Save file mismatch, will start a new game') + logging.warning('Save file mismatch, will start a new game') + return + + received_items = {tuple(k): [ReceivedItem(*i) for i in v] for k, v in savedata["received_items"]} self.received_items = received_items self.hints_used.update({tuple(key): value for key, value in savedata["hints_used"]}) diff --git a/WebHostLib/customserver.py b/WebHostLib/customserver.py index 00ba1771..e58bbf43 100644 --- a/WebHostLib/customserver.py +++ b/WebHostLib/customserver.py @@ -74,9 +74,9 @@ class WebHostContext(Context): def init_save(self, enabled: bool = True): self.saving = enabled if self.saving: - existings_savegame = Room.get(id=self.room_id).multisave - if existings_savegame: - self.set_save(existings_savegame) + existing_savegame = Room.get(id=self.room_id).multisave + if existing_savegame: + self.set_save(existing_savegame) self._start_async_saving() threading.Thread(target=self.listen_to_db_commands, daemon=True).start()