From a8fbd8340ce70fff1278ceb1a74ed452984e0bd6 Mon Sep 17 00:00:00 2001 From: R1kaB3rN <100738684+R1kaB3rN@users.noreply.github.com> Date: Mon, 1 Jul 2024 12:23:53 -0700 Subject: [PATCH] Add fix for Flowers - Le Volume Sur Printemps (#86) * Add fix for Flowers - Le Volume Sur Printemps * Lint with Pylint * Pass /silent option * Move GOG fix to Steam - Make this a Steam fix because this problem should effect Steam users too * Update comments * Update log statements --- gamefixes-gog/umu-1697970811.py | 1 + gamefixes-steam/1697970811.py | 51 +++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 120000 gamefixes-gog/umu-1697970811.py create mode 100644 gamefixes-steam/1697970811.py diff --git a/gamefixes-gog/umu-1697970811.py b/gamefixes-gog/umu-1697970811.py new file mode 120000 index 00000000..f3164fdb --- /dev/null +++ b/gamefixes-gog/umu-1697970811.py @@ -0,0 +1 @@ +../gamefixes-steam/1697970811.py \ No newline at end of file diff --git a/gamefixes-steam/1697970811.py b/gamefixes-steam/1697970811.py new file mode 100644 index 00000000..e5eaeb4e --- /dev/null +++ b/gamefixes-steam/1697970811.py @@ -0,0 +1,51 @@ +"""Game fix for Flowers - Le Volume Sur Printemps + +This fix installs the font that should be bundled with the game in case it +does not get installed during the setup process. Without this fix, the default +font will be used which doesn't wrap correctly, resulting in the text breaking +outside its text box area. +""" + +import os +from hashlib import sha256 +from subprocess import run + +import __main__ as protonmain +from protonfixes import util +from protonfixes.logger import log + + +def main(): + env = protonmain.g_session.env.copy() + wine = f"{util.protondir()}/files/bin/wine64" + install_dir = util.get_game_install_path() + + # Font installer inside the `fonts` subdir + font_installer = "overlock_mod_font_installer.exe" + + # Digest of the font installer + hashsum = "d3bd48162d91322c3d2861cdccc538955336eff7f0fe50eeafee1b7551a52152" + + if os.path.isfile(f"{util.protonprefix()}/drive_c/windows/Fonts/Overlock-Mod.ttf"): + log.info("Font 'Overlock-Mod.ttf' already installed in prefix, skipping...") + return + + if not os.path.isfile(f"{install_dir}/font/{font_installer}"): + log.warn(f"Could not find '{font_installer}' in '{install_dir}', skipping...") + return + + with open(f"{install_dir}/font/{font_installer}", mode="rb") as file: + if sha256(file.read()).hexdigest() != hashsum: + log.warn(f"Digest mismatched: {font_installer}") + log.warn(f"Expected '{hashsum}', skipping...") + return + + log.info("Installing font 'Overlock-Mod.ttf' in prefix...") + retc = run( + [wine, "start", "/unix", f"{install_dir}/font/{font_installer}", "/silent"], + check=False, + env=env, + ).returncode + + if retc: + log.warn(f"Running '{font_installer}' exited with the status code: {retc}")