- Other players walk the world. A watched player's motion between server updates now runs through the same grounded movement resolve as your own character — same capsule, same colliders, same step-up and ground election — so they follow terrain every frame instead of every packet, and stop at a wall instead of walking into it and being snapped back. Their jumps are swept against the world too, and a standstill jump steered mid-air reports that steer, the one mid-air press the reference client broadcasts rather than defers. - The move relay rebuilt: relayed moves ride a per-unit chain on real time, a due move never jumps ahead of its unit's queue, and SMSG_COMPRESSED_MOVES — the batched carrier the server sends under load — is decoded rather than skipped. Our own send path now matches the reference client's: facing streams while moving, Nagle is off so each packet is one write, and the strafe axis nets so left and right can never ride the same packet. - NPC and quest text speaks the whole $-macro grammar, carved from the reference bytes — your name, class and race, the gendered forms, and the server's live world states — and the same substitution feeds gossip, quest text, the quest log and unit frames. Greetings are a weighted draw, rolled per NPC per open, and a quest giver with no quest to give is no longer clickable, where it used to open a dialog holding nothing but a placeholder greeting. - Spell tooltips finish the reference's line law: cast time and cooldown behind the real passive gate, the required tool or form, the reagents block, the chance-to-X line, a multi-bit equipped-item requirement named properly instead of by raw bits, and a buff's dispel class. - The UI layout engine got a dense, reusable anchor solver, and a change gate that skips the resolve entirely on frames where no layout input moved — in practice, almost every idle frame. Pets are named by their pet number rather than a creature-template entry, so the client asks the query the server can actually answer. And the asset extractor grew a stray-geometry census for tracking down geometry that renders where it should not. This snapshot replaces the six dated `sync` commits that stood here before it, whose subjects said nothing but the date. If you cloned before now: `git fetch && git reset --hard origin/main`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34 lines
741 B
Rust
34 lines
741 B
Rust
//! Rust-driven tests of the Lua host: the object model, layout+size reads, show/hide + event + tick
|
|
//! firing (both RF-0025 conventions), the WoW stdlib (positional `format`, `strsplit`, `wipe`,
|
|
//! `getglobal`), the sandbox holes, and an end-to-end extract in ZKey order.
|
|
//!
|
|
//! Split by subject; the shared `script()` fixture lives in [`common`].
|
|
|
|
mod anchors;
|
|
mod backdrop;
|
|
mod button;
|
|
mod common;
|
|
mod cooldown;
|
|
mod end_to_end;
|
|
mod events;
|
|
mod frame_api;
|
|
mod input;
|
|
mod layout_gate;
|
|
mod measure;
|
|
mod minimap;
|
|
mod object_model;
|
|
mod regions;
|
|
mod scrollframe;
|
|
mod slider;
|
|
mod statusbar;
|
|
mod stdlib;
|
|
mod talent;
|
|
mod taxi;
|
|
mod texcoord_font;
|
|
mod tooltip;
|
|
mod tooltip_item;
|
|
mod tooltip_spell;
|
|
mod tooltip_unit;
|
|
mod visibility;
|
|
mod worldmap;
|