diff --git a/.gitattributes b/.gitattributes index 250b39b..f32037a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,3 +4,4 @@ *.bin binary *.png binary *.ico binary +*.jpg binary diff --git a/.gitignore b/.gitignore index 8e5a279..0dfec73 100644 --- a/.gitignore +++ b/.gitignore @@ -10,9 +10,6 @@ dist/ external/ logs/ -# Arkham City artwork imported by tools/make_assets.py (Warner Bros.; kept local, bundled in your builds) -app/assets/ - # game data, audio and dumps: never commit Arkham City files *.wad *.wem diff --git a/NOTES.md b/NOTES.md index be56428..3069ea6 100644 --- a/NOTES.md +++ b/NOTES.md @@ -79,3 +79,5 @@ the divider is dragged). Windows installer: tools/installer (Install.cmd -> install.ps1/uninstall.ps1, per-user, HKCU uninstall entry), copied into the build by build_app.py; install/upgrade/uninstall cycle verified. User chose no new software (no Inno Setup). +- 2026-10-09: app/assets is committed (user: public artwork and generated content, not Warner Bros. pictures). + build_app.py regenerates it only when missing or with --art; after changing make_assets.py run it by hand. diff --git a/app/assets/app_icon.ico b/app/assets/app_icon.ico new file mode 100644 index 0000000..2a2c5d9 Binary files /dev/null and b/app/assets/app_icon.ico differ diff --git a/app/assets/app_icon.png b/app/assets/app_icon.png new file mode 100644 index 0000000..9730aa8 Binary files /dev/null and b/app/assets/app_icon.png differ diff --git a/app/assets/wallpaper.jpg b/app/assets/wallpaper.jpg new file mode 100644 index 0000000..f8d3d12 Binary files /dev/null and b/app/assets/wallpaper.jpg differ diff --git a/docs/building.md b/docs/building.md index 77a71f6..8a40801 100644 --- a/docs/building.md +++ b/docs/building.md @@ -11,7 +11,7 @@ py -3.14 -m venv .venv (Python 3.10-3.14) .venv\Scripts\python -m pytest -q .venv\Scripts\python tools\build_app.py ``` -That one command does everything, offline. If `app/assets/` (git-ignored icon and wallpaper) is missing, it is +That one command does everything, offline. If `app/assets/` (committed icon and wallpaper) is missing, it is made from `bac_logo_full.png` and `wallpaper.jpg` in `Downloads\Arkham City` (or `--art FOLDER`); without those images the build still works, with a plain icon and no wallpaper. Output: `dist\UnheardCity\UnheardCity.exe` and `dist\UnheardCity--windows-amd64.zip` diff --git a/docs/decisions.md b/docs/decisions.md index 7191f4d..79c4e2b 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -90,9 +90,8 @@ limit but means LZO recompression of large engine packages: out of scope, high r - **Artwork:** the app icon (the Arkham City logo bat in flat black over a red audio waveform of rounded bars, on a white rounded tile; shown only in the window/taskbar and the toolbar corner) and the default background wallpaper come from images supplied by the user. `tools/make_assets.py ` turns `bac_logo_full.png` + `wallpaper.jpg` into `app/assets/` (app_icon.png, - app_icon.ico, wallpaper.jpg), which the build bundles. The folder is git-ignored because it is Warner Bros. - artwork: keep builds that contain it for personal use. Without the assets the app falls back to a plain - waveform icon and no wallpaper. + app_icon.ico, wallpaper.jpg), which the build bundles. The folder is committed (public artwork and generated + content). Without the assets the app falls back to a plain waveform icon and no wallpaper. - Background: the wallpaper sits only behind the filter panel, scaled to the panel height so its left part fills the panel, under a light veil. Settings -> Background toggles it and sets its strength (default 10 %). - Loading feedback stays where the work is, never modal: a spinner inside the waveform being loaded (sound or diff --git a/tools/build_app.py b/tools/build_app.py index d21ecaf..6d8aee3 100644 --- a/tools/build_app.py +++ b/tools/build_app.py @@ -2,8 +2,8 @@ python tools/build_app.py [--art FOLDER] -> dist/UnheardCity/ and dist/UnheardCity--.zip|.tar.gz -One command does everything: artwork (app/assets, made from FOLDER - default ~/Downloads/Arkham City - when -missing or older than tools/make_assets.py), PyInstaller bundle, THIRD_PARTY_LICENSES.txt, docs, archive. +One command does everything: artwork (app/assets, committed; remade from ~/Downloads/Arkham City when missing, +or from FOLDER with --art), PyInstaller bundle, THIRD_PARTY_LICENSES.txt, docs, archive. Requirements: the dev environment (`pip install -e .[app,dev]`). All native libraries come from the pinned PyPI wheels (Qt, libsndfile with libvorbis/FLAC/opus/mpg123, soxr); no external programs are bundled or @@ -38,8 +38,7 @@ def main(): assets = os.path.join(ROOT, "app", "assets") art = sys.argv[sys.argv.index("--art") + 1] if "--art" in sys.argv else None ico = os.path.join(assets, "app_icon.ico") - stale = not os.path.exists(ico) or os.path.getmtime(ico) < os.path.getmtime(os.path.join(ROOT, "tools", "make_assets.py")) - if art or stale: + if art or not os.path.exists(ico): import make_assets src = art or make_assets.DEFAULT_SRC if os.path.exists(os.path.join(src, "bac_logo_full.png")): diff --git a/tools/make_assets.py b/tools/make_assets.py index 966c915..ec93fa7 100644 --- a/tools/make_assets.py +++ b/tools/make_assets.py @@ -2,11 +2,11 @@ python tools/make_assets.py ["C:/Users//Downloads/Arkham City"] -tools/build_app.py runs this by itself when app/assets is missing or older than this script (from the default -folder or --art FOLDER). +tools/build_app.py runs this by itself when app/assets is missing (from the default folder) or with --art FOLDER. +After changing this script, run it by hand and commit the new app/assets. Input folder: bac_logo_full.png (logo with transparent background) and wallpaper.jpg. -Output (app/assets/, git-ignored because it is Warner Bros. artwork): +Output (app/assets/, committed: public artwork and generated content): wallpaper.jpg background of the filter panel app_icon.png 256 px icon: the logo bat in black over a red audio waveform, on a white rounded tile app_icon.ico Windows icon (16-256 px) diff --git a/tools/screenshots.py b/tools/screenshots.py index b999714..69f52b6 100644 --- a/tools/screenshots.py +++ b/tools/screenshots.py @@ -32,7 +32,7 @@ def main(): app = QApplication([]) with tempfile.TemporaryDirectory() as td: os.environ["ACKIT_HOME"] = td # do not touch the real settings/notes - # docs show no wallpaper (Warner Bros. artwork stays out of the repository; the app still shows it) + # docs show no wallpaper (the app still shows it) st = {"full_backup": True, "background_enabled": False} theme.apply(app) w = MainWindow(settings=st, runner=Runner(sync=True), game_dir=a.game)