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
|
return d
|
||||||
|
|
||||||
def set_save(self, savedata: dict):
|
def set_save(self, savedata: dict):
|
||||||
rom_names = savedata["rom_names"]
|
rom_names = savedata["rom_names"] # convert from TrackerList to List in case of ponyorm
|
||||||
received_items = {tuple(k): [ReceivedItem(*i) for i in v] for k, v in savedata["received_items"]}
|
|
||||||
|
|
||||||
if rom_names != self.rom_names:
|
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:
|
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.received_items = received_items
|
||||||
self.hints_used.update({tuple(key): value for key, value in savedata["hints_used"]})
|
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):
|
def init_save(self, enabled: bool = True):
|
||||||
self.saving = enabled
|
self.saving = enabled
|
||||||
if self.saving:
|
if self.saving:
|
||||||
existings_savegame = Room.get(id=self.room_id).multisave
|
existing_savegame = Room.get(id=self.room_id).multisave
|
||||||
if existings_savegame:
|
if existing_savegame:
|
||||||
self.set_save(existings_savegame)
|
self.set_save(existing_savegame)
|
||||||
self._start_async_saving()
|
self._start_async_saving()
|
||||||
threading.Thread(target=self.listen_to_db_commands, daemon=True).start()
|
threading.Thread(target=self.listen_to_db_commands, daemon=True).start()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue