From f6e2d0923b859a4aa1071127110d531c6728cee8 Mon Sep 17 00:00:00 2001 From: m4ko Date: Fri, 28 Aug 2026 20:30:06 +0200 Subject: [PATCH] Reworked launcher updates to use the big button. --- ptlinux/install_status.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ptlinux/install_status.py b/ptlinux/install_status.py index e90cd4a..9a08d09 100644 --- a/ptlinux/install_status.py +++ b/ptlinux/install_status.py @@ -24,6 +24,8 @@ class PrimaryAction(str, Enum): INSTALL = "INSTALL" UPDATE = "UPDATE" PLAY = "PLAY" + CHECKING = "CHECKING…" + LAUNCHER_UPDATE = "UPDATE LAUNCHER" @dataclass(frozen=True) @@ -40,8 +42,10 @@ class GameInstallationStatus: def inspect_game_installation( paths: AppPaths, official_build: int | None = None, + *, + compatibility_ready: bool | None = True, ) -> GameInstallationStatus: - """Select Install, Update, or Play without modifying the installation. + """Select the primary launcher action without modifying the installation. A completed native sync is the verified source for the local depot build. When the official build cannot be checked, a complete local game remains @@ -54,6 +58,8 @@ def inspect_game_installation( or official_build < 0 ): raise ValueError("official build must be a non-negative integer") + if compatibility_ready is not None and not isinstance(compatibility_ready, bool): + raise ValueError("compatibility readiness must be a boolean or null") missing_files = tuple( relative @@ -68,6 +74,10 @@ def inspect_game_installation( local_build is None or local_build < official_build ): action = PrimaryAction.UPDATE + elif compatibility_ready is None: + action = PrimaryAction.CHECKING + elif not compatibility_ready: + action = PrimaryAction.LAUNCHER_UPDATE else: action = PrimaryAction.PLAY return GameInstallationStatus(