From e3aabf9e3e85bae733af8b752447764318f33f81 Mon Sep 17 00:00:00 2001 From: wtclaude Date: Wed, 29 Jul 2026 04:25:06 -0500 Subject: [PATCH] docs(link): fill in the cliloc PR numbers, correct the cliloc file count MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The progress table and CLILOCS.md carried #TBD placeholders until the PRs existed; they now point at website #115 and docs #70. Also corrects "all four Cliloc.* files" to eight (chs, cht, deu, enu, esp, fra, jpn, kor) in both v3.md §8.6 and CLILOCS.md — the compression marker was checked against every one of them, and understating the sample weakens the claim it supports. Co-Authored-By: Claude --- link/v3.md | 4 ++-- website/CLILOCS.md | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/link/v3.md b/link/v3.md index 3ef0cc5..7f108e6 100644 --- a/link/v3.md +++ b/link/v3.md @@ -15,7 +15,7 @@ Each part is marked off here as it lands on `edge`. §9 carries the same state p | 2 | **B/1** — `world.ruleset` (§5) | ✅ **Done** | servuo-plugins [#3](https://gitea.whitlocktech.com/RunicGateway/servuo-plugins/pulls/3), link [#17](https://gitea.whitlocktech.com/RunicGateway/link/pulls/17), website [#111](https://gitea.whitlocktech.com/RunicGateway/website/pulls/111), docs [#66](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/66) | | 3 | **C** — spawn atlas (§6) | ✅ **Done** | website [#112](https://gitea.whitlocktech.com/RunicGateway/website/pulls/112) (parsers + CLI + tables) + [#113](https://gitea.whitlocktech.com/RunicGateway/website/pulls/113) (API + pages + admin panel), docs [#67](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/67) + [#68](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/68) | | 4 | **B/2** — `points.board` (§7) | ✅ **Done** | servuo-plugins [#4](https://gitea.whitlocktech.com/RunicGateway/servuo-plugins/pulls/4), link [#18](https://gitea.whitlocktech.com/RunicGateway/link/pulls/18), website [#114](https://gitea.whitlocktech.com/RunicGateway/website/pulls/114), docs [#69](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/69) | -| 5a | **B/3 dependency** — cliloc table (§8.6) | 🟨 In review | website [#TBD](https://gitea.whitlocktech.com/RunicGateway/website/pulls), docs [#TBD](https://gitea.whitlocktech.com/RunicGateway/docs/pulls) | +| 5a | **B/3 dependency** — cliloc table (§8.6) | 🟨 In review | website [#115](https://gitea.whitlocktech.com/RunicGateway/website/pulls/115), docs [#70](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/70) | | 5b | **B/3** — `vendor.listing` (§8) | ⬜ Not started | — | | 6 | **Cutover** — `PROTOCOL_VERSION` 2→3 (§4) | ⬜ Not started | — | @@ -739,7 +739,7 @@ the §6 pattern instead — parse on every boot from an operator-configured path gitignored, `PARSER_VERSION` counted as drift. **2. `scripts/buildClilocs.js reads the UO client's Cliloc.enu` is not possible, and the reason -matters.** **Every current client ships its cliloc files COMPRESSED** — all four `Cliloc.*` files +matters.** **Every current client ships its cliloc files COMPRESSED** — all eight `Cliloc.*` files open with a DWORD whose high byte is `0x8E`, the "Mythic" container. The plain layout (`02 00 00 00 01 00`, then `{int32 number, byte flag, uint16 length, UTF-8}`) is what those files looked like *before* that change. Parsing a compressed file as plain does not fail cleanly: it yields ~19k diff --git a/website/CLILOCS.md b/website/CLILOCS.md index a7b5b49..3e97f43 100644 --- a/website/CLILOCS.md +++ b/website/CLILOCS.md @@ -1,6 +1,6 @@ # Cliloc table (item and title names) -**Status:** Complete on `edge` — website [#TBD](https://gitea.whitlocktech.com/RunicGateway/website/pulls). +**Status:** Complete on `edge` — website [#115](https://gitea.whitlocktech.com/RunicGateway/website/pulls/115), docs [#70](https://gitea.whitlocktech.com/RunicGateway/docs/pulls/70). **Design:** [`docs/link/v3.md` §8.6](../link/v3.md) — Protocol 3.0, the dependency Part B/3 was sequenced behind. A "cliloc" is UO's localization table: an integer id mapped to a display string. @@ -16,10 +16,11 @@ The number was never the missing piece. The table was. This is the awkward part, and it is not avoidable: -**Every current UO client ships its cliloc files compressed.** The four -`Cliloc.*` files in a modern client all begin with a DWORD whose high byte is -`0x8E` — the "Mythic" compressed container. The plain layout this site parses is -what those files looked like *before* that change. +**Every current UO client ships its cliloc files compressed.** All eight +`Cliloc.*` files in a modern client (`chs`, `cht`, `deu`, `enu`, `esp`, `fra`, +`jpn`, `kor`) begin with a DWORD whose high byte is `0x8E` — the "Mythic" +compressed container. The plain layout this site parses is what those files +looked like *before* that change. Decompressing it means an inverse-BWT coder with a frequency header — a few hundred lines of bit-level work whose failure mode is plausible-looking garbage