From c94c45115f2173cbb3985e612e29b0a78e627aae Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 6 Sep 2026 19:36:48 +0700 Subject: [PATCH] the window tab goes stock, and the ferry keeps its rider at the seam MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - the window tab is the reference's own: `CharacterFrameTemplates.xml` loads off the chain at the reference's toc l.21 — the reference never gives it a toc line, `UIOptionsFrame.xml` includes it, and ours is not the reference's options window, so the row is explicit — and our `CharacterFrameTabButtonTemplate` with its `BenillaTab_Room`/`BenillaTabButton_OnUpdate` settle is deleted, 192 lines; the stock template fits a tab ONCE, in ``, through `PanelTemplates_TabResize(0)`, which needs a `GetStringWidth` that answers inside the Lua call that asked — the engine's synchronous measurer is that, so the settle that re-fit from `OnUpdate` until a frame-late round-trip landed is dead weight; retired with it, the director's call: 1002's structural clamp (`benillaTabRightInset`/`benillaTabPadding`/`benillaTabMaxWidth`, a tab never past its window's drawn right edge) — the reference's only caps are the numbers each window passes `TabResize`, and nothing had set those fields since the macro window went stock; 1004's highlight law is unchanged and now the reference's own text (`LEFT +10`/`RIGHT −10`, two opposing anchors that never consult the width, so both `SetWidth` lines are dead code there and here); measured live on the frame the window opens, main's 115·115·115·115 becomes 89.8·99.3·70.8·75.6 on the character row, 77.9·66.1·70.8·66.1 on the social, 89.8·85.0 on the merchant — each its label's `GetStringWidth()` + 40 — and one frame later the two builds agree exactly, so what goes is a one-frame 115 px flash on every open of every one of those windows (1993) - the ferry seam: `tick_transports` leaves an off-map transport's transform unwritten — the reference's own freeze, `0x5f5248`'s leg map read against the current map and the return at `0x5f5279` past the pose stores — but 0455's riding worldport composes the rider's world pose as `boat.translation + boat.rotation * local_pos` from exactly that transform, so a client whose path clock had not crossed put the body at Booty Bay's coordinates on Kalimdor, which want ZERO tiles of Kalimdor's WDT: the reported `0/0 resident`, which cannot clear (`is_ready` needs `total > 0`) and cannot re-raise (`focus_resident` takes its vacuous off-grid arm); the fall is a second bug in the same window: `SelfMoveMessage` dropped the wire's `ON_TRANSPORT` tail and `apply_self_move` re-derived the deck-local pose as `world − boat.translation`, which against a frozen source-continent boat is the distance between two continents — consistent while the boat stays frozen, a ~13,000 yd fling off the deck the instant it writes an honest pose, `update_attachment` keeping the ride because the body is airborne and no settle hold to catch it; the rider's deck-local pose now comes off the wire, and `first_cycle_on_map` + `reseek_ridden_transport_at_worldport` seek our clock to the head of the destination map's leg and write the pose in the worldport frame itself, a clock that already agreed left untouched; cleared with numbers: the timetable matches vmangos's to 18 ms over path 241's 350 818 ms cycle, the period is bit-identical to the DB row, the live skew is 32 and 144 ms on the Orgrimmar zeppelin; two divergences kept knowingly — we spare the ridden transport where `SMSG_NEW_WORLD` (`0x401bc0`) destroys the whole object manager, and we hide an off-map boat the reference draws; an off-grid view focus names its map and tile once, a ridden transport whose map disagrees with `CurrentMap` for three frames warns, and the sea-crossing probe sends itself to a dock (`WOW_PROBE_DOCK=x,y,z`) because the fleet's seams are not interchangeable — one path crosses mid-cycle, another at the wrap; why the director saw 38.5 s and not a few frames is still open (N08, 2026) Co-Authored-By: Claude Fable 5.1 --- .../benilla-app/assets/ui/ScrollTemplates.xml | 195 +--------- crates/benilla-app/assets/ui/benilla.toc | 26 +- .../benilla-app/src/capture/probe_crossing.rs | 60 +++ crates/benilla-app/src/net.rs | 11 + crates/benilla-app/src/net/apply/objects.rs | 1 + crates/benilla-app/src/player/wire_in.rs | 30 +- crates/benilla-app/src/transport.rs | 358 +++++++++++++++++- .../src/ui_script/action_bar_tests.rs | 3 +- crates/benilla-app/src/ui_script/bag_tests.rs | 54 ++- .../src/ui_script/character_tests.rs | 99 ++++- .../src/ui_script/delete_item_tests.rs | 3 +- .../src/ui_script/dressup_tests.rs | 3 +- .../benilla-app/src/ui_script/errors_tests.rs | 3 +- .../benilla-app/src/ui_script/escape_tests.rs | 15 +- .../src/ui_script/friends_tests.rs | 39 ++ .../src/ui_script/game_menu_tests.rs | 13 +- .../src/ui_script/honor_frame_tests.rs | 4 +- .../src/ui_script/inspect_tests.rs | 8 +- .../benilla-app/src/ui_script/loot_tests.rs | 3 +- .../benilla-app/src/ui_script/macro_tests.rs | 28 +- .../src/ui_script/merchant_tests.rs | 77 ++-- .../src/ui_script/options_tests.rs | 1 + .../src/ui_script/panel_template_tests.rs | 94 ++++- .../benilla-app/src/ui_script/panel_tests.rs | 4 +- .../benilla-app/src/ui_script/quest_tests.rs | 30 +- .../src/ui_script/questlog_tests.rs | 54 ++- .../src/ui_script/spellbook_tests.rs | 2 +- .../benilla-app/src/ui_script/tabard_tests.rs | 2 +- crates/benilla-app/src/ui_script/test_ui.rs | 13 +- .../src/ui_script/tooltip_compare_tests.rs | 5 +- .../src/ui_script/trainer_tests.rs | 1 + .../src/ui_script/unit_frame_tests.rs | 3 +- .../src/ui_script/unit_popup_tests.rs | 1 + crates/benilla-app/tests/auction_frame.rs | 3 + crates/benilla-app/tests/mail_frame.rs | 3 +- crates/benilla-app/tests/talent_frame.rs | 3 + crates/benilla-formats/src/transports/mod.rs | 37 ++ .../benilla-formats/src/transports/tests.rs | 64 ++++ crates/benilla-world/src/terrain_stream.rs | 34 ++ 39 files changed, 1026 insertions(+), 361 deletions(-) diff --git a/crates/benilla-app/assets/ui/ScrollTemplates.xml b/crates/benilla-app/assets/ui/ScrollTemplates.xml index 6b8b7b63..a8713c1c 100644 --- a/crates/benilla-app/assets/ui/ScrollTemplates.xml +++ b/crates/benilla-app/assets/ui/ScrollTemplates.xml @@ -400,206 +400,17 @@ + The placeholder icon our UIParent.lua counterpart held and the reference's does not, + seated in the earliest file of ours every consumer loads after. The window tab template + and its settle stood here too until 1993 put them on the chain. --> - - -