diff --git a/basic_features/basic_local_savegames.py b/basic_features/basic_local_savegames.py index cfdaa290..e0991f85 100644 --- a/basic_features/basic_local_savegames.py +++ b/basic_features/basic_local_savegames.py @@ -4,15 +4,20 @@ class BasicLocalSavegames(mobase.LocalSavegames): - def __init__(self, game_save_dir: QDir): + _game: mobase.IPluginGame + + def __init__(self, game: mobase.IPluginGame): super().__init__() - self._game_saves_dir = game_save_dir.absolutePath() + self._game = game + + def game_save_dir(self) -> str: + return self._game.savesDirectory().absolutePath() def mappings(self, profile_save_dir: QDir): return [ mobase.Mapping( source=profile_save_dir.absolutePath(), - destination=self._game_saves_dir, + destination=self.game_save_dir(), is_directory=True, create_target=True, ) diff --git a/games/game_arkhamcity.py b/games/game_arkhamcity.py index 915f26ab..0b8269f4 100644 --- a/games/game_arkhamcity.py +++ b/games/game_arkhamcity.py @@ -71,7 +71,7 @@ def savesDirectory(self) -> QDir: def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) self._register_feature(ArkhamCityModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) return True def executables(self): diff --git a/games/game_baldursgate3.py b/games/game_baldursgate3.py index 560eec18..48986960 100644 --- a/games/game_baldursgate3.py +++ b/games/game_baldursgate3.py @@ -6,18 +6,11 @@ from pathlib import Path from typing import Any -from PyQt6.QtCore import ( - QLoggingCategory, - qDebug, - qInfo, -) +from PyQt6.QtCore import QLoggingCategory, qDebug, qInfo import mobase -from ..basic_features import ( - BasicGameSaveGameInfo, - BasicLocalSavegames, -) +from ..basic_features import BasicGameSaveGameInfo, BasicLocalSavegames from ..basic_game import BasicGame from .baldursgate3 import bg3_file_mapper @@ -54,15 +47,12 @@ def __init__(self): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) self.utils.init(organizer) - from .baldursgate3 import ( - bg3_data_checker, - bg3_data_content, - ) + from .baldursgate3 import bg3_data_checker, bg3_data_content self._register_feature(bg3_data_checker.BG3ModDataChecker()) self._register_feature(bg3_data_content.BG3DataContent()) self._register_feature(BasicGameSaveGameInfo(lambda s: s.with_suffix(".webp"))) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) organizer.onAboutToRun(self.utils.construct_modsettings_xml) organizer.onFinishedRun(self._on_finished_run) organizer.onUserInterfaceInitialized(self.utils.on_user_interface_initialized) diff --git a/games/game_blackandwhite2.py b/games/game_blackandwhite2.py index f787a5e3..5d9f60b3 100644 --- a/games/game_blackandwhite2.py +++ b/games/game_blackandwhite2.py @@ -263,7 +263,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool: BasicGame.init(self, organizer) self._register_feature(BlackAndWhite2ModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) self._register_feature( BasicGameSaveGameInfo(get_metadata=getMetadata, max_width=400) ) diff --git a/games/game_cyberpunk2077.py b/games/game_cyberpunk2077.py index 9e992d77..aad8864f 100644 --- a/games/game_cyberpunk2077.py +++ b/games/game_cyberpunk2077.py @@ -233,7 +233,10 @@ class Cyberpunk2077Game(BasicGame): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + print("init") + print(f"{self.gameDirectory().absolutePath()=}") + print(f"{self._gamePath=}") + self._register_feature(BasicLocalSavegames(self)) self._register_feature( BasicGameSaveGameInfo( lambda p: Path(p or "", "screenshot.png"), diff --git a/games/game_dispatch.py b/games/game_dispatch.py index 842e4716..3b220841 100644 --- a/games/game_dispatch.py +++ b/games/game_dispatch.py @@ -51,7 +51,7 @@ def __init__(self): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) self._register_feature(DispatchModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) return True def executables(self): diff --git a/games/game_fantasylifei.py b/games/game_fantasylifei.py index 15e565bb..ae3cab1a 100644 --- a/games/game_fantasylifei.py +++ b/games/game_fantasylifei.py @@ -51,7 +51,7 @@ def __init__(self): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) self._register_feature(FantasyLifeIModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) return True def executables(self): diff --git a/games/game_mountandblade2.py b/games/game_mountandblade2.py index d483056d..df2c1572 100644 --- a/games/game_mountandblade2.py +++ b/games/game_mountandblade2.py @@ -58,7 +58,7 @@ class MountAndBladeIIGame(BasicGame): def init(self, organizer: mobase.IOrganizer): super().init(organizer) self._register_feature(MountAndBladeIIModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) return True def listSaves(self, folder: QDir) -> list[mobase.ISaveGame]: diff --git a/games/game_schedule1.py b/games/game_schedule1.py index 2c0193da..8ed98d69 100644 --- a/games/game_schedule1.py +++ b/games/game_schedule1.py @@ -96,7 +96,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool: ) ) ) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) self._register_feature( BasicGameSaveGameInfo( None, # no snapshot to add to the widget diff --git a/games/game_valheim.py b/games/game_valheim.py index 18a1c940..941afd9b 100644 --- a/games/game_valheim.py +++ b/games/game_valheim.py @@ -365,7 +365,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool: ) ) ) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) self._overwrite_sync = OverwriteSync(organizer=self._organizer, game=self) self._register_event_handler() return True diff --git a/games/game_vampirebloodlines.py b/games/game_vampirebloodlines.py index 556406fe..a63b308d 100644 --- a/games/game_vampirebloodlines.py +++ b/games/game_vampirebloodlines.py @@ -75,7 +75,7 @@ class VampireTheMasqueradeBloodlinesGame(BasicGame): def init(self, organizer: mobase.IOrganizer) -> bool: super().init(organizer) self._register_feature(VampireModDataChecker()) - self._register_feature(BasicLocalSavegames(self.savesDirectory())) + self._register_feature(BasicLocalSavegames(self)) return True def initializeProfile(self, directory: QDir, settings: mobase.ProfileSetting):