fix loading old savegames from ponyorm DB
This commit is contained in:
parent
d9e7248ebc
commit
626b6b0521
|
@ -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"]})
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue