Skip to content

Commit cc5c3f2

Browse files
authored
Fix: BasicLocalSavegames not using savesDirectory() defined after init() (#208)
1 parent 6fb9247 commit cc5c3f2

11 files changed

Lines changed: 24 additions & 26 deletions

basic_features/basic_local_savegames.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,20 @@
44

55

66
class BasicLocalSavegames(mobase.LocalSavegames):
7-
def __init__(self, game_save_dir: QDir):
7+
_game: mobase.IPluginGame
8+
9+
def __init__(self, game: mobase.IPluginGame):
810
super().__init__()
9-
self._game_saves_dir = game_save_dir.absolutePath()
11+
self._game = game
12+
13+
def game_save_dir(self) -> str:
14+
return self._game.savesDirectory().absolutePath()
1015

1116
def mappings(self, profile_save_dir: QDir):
1217
return [
1318
mobase.Mapping(
1419
source=profile_save_dir.absolutePath(),
15-
destination=self._game_saves_dir,
20+
destination=self.game_save_dir(),
1621
is_directory=True,
1722
create_target=True,
1823
)

games/game_arkhamcity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def savesDirectory(self) -> QDir:
7171
def init(self, organizer: mobase.IOrganizer) -> bool:
7272
super().init(organizer)
7373
self._register_feature(ArkhamCityModDataChecker())
74-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
74+
self._register_feature(BasicLocalSavegames(self))
7575
return True
7676

7777
def executables(self):

games/game_baldursgate3.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,11 @@
66
from pathlib import Path
77
from typing import Any
88

9-
from PyQt6.QtCore import (
10-
QLoggingCategory,
11-
qDebug,
12-
qInfo,
13-
)
9+
from PyQt6.QtCore import QLoggingCategory, qDebug, qInfo
1410

1511
import mobase
1612

17-
from ..basic_features import (
18-
BasicGameSaveGameInfo,
19-
BasicLocalSavegames,
20-
)
13+
from ..basic_features import BasicGameSaveGameInfo, BasicLocalSavegames
2114
from ..basic_game import BasicGame
2215
from .baldursgate3 import bg3_file_mapper
2316

@@ -54,15 +47,12 @@ def __init__(self):
5447
def init(self, organizer: mobase.IOrganizer) -> bool:
5548
super().init(organizer)
5649
self.utils.init(organizer)
57-
from .baldursgate3 import (
58-
bg3_data_checker,
59-
bg3_data_content,
60-
)
50+
from .baldursgate3 import bg3_data_checker, bg3_data_content
6151

6252
self._register_feature(bg3_data_checker.BG3ModDataChecker())
6353
self._register_feature(bg3_data_content.BG3DataContent())
6454
self._register_feature(BasicGameSaveGameInfo(lambda s: s.with_suffix(".webp")))
65-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
55+
self._register_feature(BasicLocalSavegames(self))
6656
organizer.onAboutToRun(self.utils.construct_modsettings_xml)
6757
organizer.onFinishedRun(self._on_finished_run)
6858
organizer.onUserInterfaceInitialized(self.utils.on_user_interface_initialized)

games/game_blackandwhite2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool:
263263
BasicGame.init(self, organizer)
264264

265265
self._register_feature(BlackAndWhite2ModDataChecker())
266-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
266+
self._register_feature(BasicLocalSavegames(self))
267267
self._register_feature(
268268
BasicGameSaveGameInfo(get_metadata=getMetadata, max_width=400)
269269
)

games/game_cyberpunk2077.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,10 @@ class Cyberpunk2077Game(BasicGame):
233233

234234
def init(self, organizer: mobase.IOrganizer) -> bool:
235235
super().init(organizer)
236-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
236+
print("init")
237+
print(f"{self.gameDirectory().absolutePath()=}")
238+
print(f"{self._gamePath=}")
239+
self._register_feature(BasicLocalSavegames(self))
237240
self._register_feature(
238241
BasicGameSaveGameInfo(
239242
lambda p: Path(p or "", "screenshot.png"),

games/game_dispatch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(self):
5151
def init(self, organizer: mobase.IOrganizer) -> bool:
5252
super().init(organizer)
5353
self._register_feature(DispatchModDataChecker())
54-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
54+
self._register_feature(BasicLocalSavegames(self))
5555
return True
5656

5757
def executables(self):

games/game_fantasylifei.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(self):
5151
def init(self, organizer: mobase.IOrganizer) -> bool:
5252
super().init(organizer)
5353
self._register_feature(FantasyLifeIModDataChecker())
54-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
54+
self._register_feature(BasicLocalSavegames(self))
5555
return True
5656

5757
def executables(self):

games/game_mountandblade2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class MountAndBladeIIGame(BasicGame):
5858
def init(self, organizer: mobase.IOrganizer):
5959
super().init(organizer)
6060
self._register_feature(MountAndBladeIIModDataChecker())
61-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
61+
self._register_feature(BasicLocalSavegames(self))
6262
return True
6363

6464
def listSaves(self, folder: QDir) -> list[mobase.ISaveGame]:

games/game_schedule1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool:
9696
)
9797
)
9898
)
99-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
99+
self._register_feature(BasicLocalSavegames(self))
100100
self._register_feature(
101101
BasicGameSaveGameInfo(
102102
None, # no snapshot to add to the widget

games/game_valheim.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool:
365365
)
366366
)
367367
)
368-
self._register_feature(BasicLocalSavegames(self.savesDirectory()))
368+
self._register_feature(BasicLocalSavegames(self))
369369
self._overwrite_sync = OverwriteSync(organizer=self._organizer, game=self)
370370
self._register_event_handler()
371371
return True

0 commit comments

Comments
 (0)