Skip to content

Commit

Permalink
Add fix for Flowers - Le Volume Sur Printemps (#86)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
R1kaB3rN authored Jul 1, 2024
1 parent d220a26 commit a8fbd83
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
1 change: 1 addition & 0 deletions gamefixes-gog/umu-1697970811.py
51 changes: 51 additions & 0 deletions gamefixes-steam/1697970811.py
Original file line number Diff line number Diff line change
@@ -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}")

0 comments on commit a8fbd83

Please sign in to comment.