Skip to content

Commit 9b9dfd1

Browse files
committed
Cyberpunk: add crash message with tips
1 parent cc5c3f2 commit 9b9dfd1

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

games/game_cyberpunk2077.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,6 @@ class Cyberpunk2077Game(BasicGame):
233233

234234
def init(self, organizer: mobase.IOrganizer) -> bool:
235235
super().init(organizer)
236-
print("init")
237-
print(f"{self.gameDirectory().absolutePath()=}")
238-
print(f"{self._gamePath=}")
239236
self._register_feature(BasicLocalSavegames(self))
240237
self._register_feature(
241238
BasicGameSaveGameInfo(
@@ -259,6 +256,7 @@ def init(self, organizer: mobase.IOrganizer) -> bool:
259256
),
260257
)
261258
organizer.onAboutToRun(self._onAboutToRun)
259+
organizer.onFinishedRun(self._onFinishedRun)
262260
organizer.onPluginSettingChanged(self._on_settings_changed)
263261
organizer.modList().onModInstalled(self._check_disable_crashreporter)
264262
organizer.onUserInterfaceInitialized(self._on_user_interface_initialized)
@@ -431,6 +429,11 @@ def settings(self) -> list[mobase.PluginSetting]:
431429
),
432430
True,
433431
),
432+
mobase.PluginSetting(
433+
"crash_message",
434+
("Show a crash message as replacement of disabled CrashReporter"),
435+
True,
436+
),
434437
mobase.PluginSetting(
435438
"show_rootbuilder_conversion",
436439
(
@@ -524,6 +527,34 @@ def _onAboutToRun(self, app_path_str: str, wd: QDir, args: str) -> bool:
524527
self._modlist_files.update_modlist("archive")
525528
return True
526529

530+
def _onFinishedRun(self, path: str, exit_code: int) -> None:
531+
if not self._get_setting("crash_message"):
532+
return
533+
if path.endswith(self.binaryName()) and exit_code > 0:
534+
crash_message = QMessageBox(
535+
QMessageBox.Icon.Critical,
536+
"Cyberpunk Crashed",
537+
textwrap.dedent(
538+
f"""
539+
Cyberpunk crashed. Tips:
540+
- disable mods (create backup of modlist or use new profile)
541+
- clear overwrite or delete at least overwrite/r6/cache (to keep mod settings)
542+
- check log files of CET/redscript/RED4ext (in overwrite)
543+
- read [FAQ & Troubleshooting]({self.GameSupportURL}#faq--troubleshooting)
544+
"""
545+
),
546+
QMessageBox.StandardButton.Ok,
547+
self._parentWidget,
548+
)
549+
crash_message.setTextFormat(Qt.TextFormat.MarkdownText)
550+
hide_cb = QCheckBox("&Do not show again*", crash_message)
551+
hide_cb.setToolTip(f"Settings/Plugins/{self.name()}/crash_message")
552+
crash_message.setCheckBox(hide_cb)
553+
crash_message.open( # type: ignore
554+
lambda: hide_cb.isChecked()
555+
and self._set_setting("crash_message", False)
556+
)
557+
527558
def _check_redmod_result(self, result: tuple[bool, int]) -> bool:
528559
if result == (True, 0):
529560
return True

0 commit comments

Comments
 (0)