From be9ad2cb1fc9e4097b09d98770f2665d5547dc9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Fri, 26 Feb 2021 20:57:38 +0100 Subject: [PATCH] Remove old pieces of code from BasicGameSaveGameInfo and fix W3 save game handling. --- basic_features/basic_save_game_info.py | 15 ++------------- games/game_witcher3.py | 13 ++++++++++++- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/basic_features/basic_save_game_info.py b/basic_features/basic_save_game_info.py index d28d288..762891d 100644 --- a/basic_features/basic_save_game_info.py +++ b/basic_features/basic_save_game_info.py @@ -3,7 +3,7 @@ import sys from pathlib import Path -from typing import Callable, List, Optional, Type +from typing import Callable, List, Optional from PyQt5.QtCore import QDateTime, Qt from PyQt5.QtGui import QPixmap, QImage @@ -88,17 +88,9 @@ class BasicGameSaveGameInfoWidget(mobase.ISaveGameInfoWidget): class BasicGameSaveGameInfo(mobase.SaveGameInfo): - def __init__( - self, - get_preview: Optional[Callable[[str], str]] = None, - savegame_class: Type[BasicGameSaveGame] = BasicGameSaveGame, - ): + def __init__(self, get_preview: Optional[Callable[[str], str]] = None): super().__init__() self._get_preview = get_preview - self._savegame_class = savegame_class - - def getSaveGameInfo(self, filename: str): - return self._savegame_class(Path(filename)) def getMissingAssets(self, save: mobase.ISaveGame): return {} @@ -107,6 +99,3 @@ class BasicGameSaveGameInfo(mobase.SaveGameInfo): if self._get_preview is not None: return BasicGameSaveGameInfoWidget(parent, self._get_preview) return None - - def hasScriptExtenderSave(self, filename: str): - return False diff --git a/games/game_witcher3.py b/games/game_witcher3.py index 66a2197..212e9b3 100644 --- a/games/game_witcher3.py +++ b/games/game_witcher3.py @@ -2,6 +2,10 @@ import mobase +from pathlib import Path +from typing import List + +from PyQt5.QtCore import QDir from ..basic_game import BasicGame from ..basic_features.basic_save_game_info import BasicGameSaveGame @@ -34,9 +38,16 @@ class Witcher3Game(BasicGame): def init(self, organizer: mobase.IOrganizer): super().init(organizer) self._featureMap[mobase.SaveGameInfo] = BasicGameSaveGameInfo( - lambda s: s.replace(".sav", ".png"), Witcher3SaveGame + lambda s: s.replace(".sav", ".png") ) return True def iniFiles(self): return ["user.settings", "input.settings"] + + def listSaves(self, folder: QDir) -> List[mobase.ISaveGame]: + ext = self._mappings.savegameExtension.get() + return [ + Witcher3SaveGame(path) + for path in Path(folder.absolutePath()).glob(f"*.{ext}") + ]