From 2d9be734199ac857226ac4e312f50a0f5cd10d6b Mon Sep 17 00:00:00 2001 From: pleb Date: Thu, 28 May 2026 22:03:01 -0700 Subject: [PATCH] Overhaul scripts for 2026 refresh --- AGENTS.md | 80 +++++++++++++++++++ README.md | 12 ++- docs/gradient-10.jpg | Bin 0 -> 348122 bytes docs/steam-linux-paths.md | 63 +++++++++++++++ docs/ui-theme-2026-refresh.md | 141 ++++++++++++++++++++++++++++++++++ ui/.verified-build | 7 ++ ui/eq-path.sh | 39 ++++++++++ ui/install | 49 ------------ ui/install.sh | 66 ++++++++++++++++ ui/verify.sh | 112 +++++++++++++++++++++++++++ 10 files changed, 516 insertions(+), 53 deletions(-) create mode 100644 AGENTS.md create mode 100644 docs/gradient-10.jpg create mode 100644 docs/steam-linux-paths.md create mode 100644 docs/ui-theme-2026-refresh.md create mode 100644 ui/.verified-build create mode 100644 ui/eq-path.sh delete mode 100755 ui/install create mode 100755 ui/install.sh create mode 100755 ui/verify.sh diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..61deff9 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,80 @@ +# AGENTS.md + +EverQuest client config and a **minimal classic UI skin** (`UISkin=isuldor`) maintained as unified diffs against `uifiles/default/`. + +## Docs + +* Install paths and INI layout: [docs/steam-linux-paths.md](docs/steam-linux-paths.md) +* 2026 theme refresh (what broke, what we changed): [docs/ui-theme-2026-refresh.md](docs/ui-theme-2026-refresh.md) + +## Patch-set model (advice) + +We patch **six** `EQUI_*.xml` files plus two `dark_tile_*.tga` textures — not a full skin fork. That is intentional. + +| Do | Avoid | +|----|--------| +| Keep the patch set small (persistent on-screen windows only) | Copying all of `uifiles/default/` into git | +| Patch `uifiles/default/` → install to `uifiles/isuldor/` | Patching `uiresources/` / `AtlasSkin` (HTML/Cohtml panels) | +| Run `bash ui/verify.sh` before every commit and after every game patch | Relying on `patch --fuzz 3` without a dry-run | +| Regenerate diffs with `bash ui/install.sh --update` (CRLF-aware) | Hand-editing diffs or `diff -u` from LF-only XML | +| Budget **manual re-merge** for `EQUI_PlayerWindow` after major client updates | Expecting every patch to apply for years unchanged | + +**Highest-churn files:** `EQUI_PlayerWindow.xml` (roles, aggro, meters), then `EQUI_HotButtonWnd.xml` (many slot animations). Everything else has been stable across years. + +**Pin the client you verified against:** `ui/.verified-build` (eqgame mtime, patch list). Refresh with `bash ui/verify.sh --record` after a successful in-game check. + +## Non-obvious details + +* **Two UI trees:** `UISkin` → `uifiles//` (XML we patch). `AtlasSkin` → `uiresources//` (modern panels; **out of scope** — stay stock Default). +* **Stock XML is CRLF.** `uifiles/default/*.xml` use Windows line endings. LF-only merged files produce giant whole-file diffs; `install.sh --update` normalizes to CRLF when the default file is CRLF. +* **`patch --fuzz 3`** helps when line numbers drift (e.g. `EQUI_Animations`) but can apply the wrong hunk if context is ambiguous. Verify always uses dry-run; treat any future `FAILED` on PlayerWindow as a hand-merge, not a fuzz tweak. +* **Textures:** Register new `.tga` only in `EQUI_Animations.diff`; reference by filename elsewhere. `install.sh` copies `ui/*.tga` into `uifiles/isuldor/`. +* **Theme vs layout:** XML = chrome/templates. Window positions and fade % live in `UI___.ini` (`UISkin`, fades). Chat colors in `eqclient.ini` `[TextColors]`. Client updates can stomp INIs — keep canonical copies in this repo. +* **`EQType` on labels:** The player-window theme uses shadow labels and specific EQTypes (e.g. HP `17`, mana `124`) so text overlays gauges; stock uses different types — do not “fix” to match default without checking in-game. +* **Required stub labels:** `HPPerLabel` / `ManPercLabel` / `FatiguePercLabel` must exist as minimal `