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()