- the chat window is the reference's own `ChatFrame.xml` and `FloatingChatFrame.xml`, run off the player's chain; our 2216-line transcription is deleted, the feed fires `CHAT_MSG_*` and the reference's `ChatFrame_OnEvent` prints — no app-side composition into the windows, no routing table, no whisper chime or flash of ours, and the transcribed edit-box machine (sticky type, tell ring, Tab cycle) retires with it; the verbs the two files call are built to the bytes — the whole `0x98` chat-window record and its eight verbs, the 94-entry chat-type colour registry, the language walk, the channel verbs as a command queue, the slash handlers' emote/roll/assist/uninvite/console/logging verbs; `chat-cache.txt` is written and read in the reference's whole grammar, the 68-entry message-group table in flag order and the no-file boot included, and the chat bindings and macro lines run through the reference's own arms (1948) - the spellbook is the reference's own `SpellBookFrame.xml`; our 965-line transcription is deleted, and two quirks it reproduced by hand (the pet page ignores its page number, its arrows write the spell book's counter) now come from the reference's lines; one adapter remains because the reference's autocast shine is a `<Model>` that draws no pixels in this engine — the script puts the token-texture shine beside each button's model and carries it with the model's shown state; the nine spell-slot bindings (`GetSpellName`, `CastSpell`, `PickupSpell` and their kin) now parse their arguments the way the reference's shared marshaller `0x4b3ec0` does — a numeric arg 1, a mandatory arg 2, the index gated to [0, 0x400) with "Invalid spell slot in <Verb>" on a miss, "pet" matched without case — where ours raised mlua's own message on a negative id, answered nil for 0 and above 1024, and read the wrong book for "PET" (1952) - a long-hidden world model part parks its `Mesh3d`: the entity path keeps the batches the retained pass declines resident — 5.3k hidden submeshes at any instant at the Stormwind auction house — and Bevy's sweeps walk every `Mesh3d` whether it draws or not, so a part parks after 30 consecutive hidden frames and unparks the frame its verdict turns visible; every world model part takes part, units' bodies included, while a booth's mirror parts stay out; interleaved pairs read an alone Stormwind 0.1–0.4 ms lighter, and `WOW_NO_MESH_PARK=1` is the A/B; the audio thread's realtime class was the standing suspect for the raid's `cpu_p99` spikes with sound on, and `WOW_AUDIO_NO_RT=1` across two interleaved Blackrock pairs read no difference, so the lever stays as an instrument (1949); and a no-merge prop batch now says which rule declined it — animated (1551 at the auction house) or transparent, not order-free (340) (1951) - the probe reads CPU per thread across its window (user and system split, because a user-mode sampler never sees kernel time) and the main thread's CPU inside the app's frame beside its whole-frame CPU; together they place the vsync tax every player pays by default — cpu_ms 10.7 uncapped against 12.5 under vsync, alone in Stormwind, with no system growing and no thread spinning: it lands on the main thread, in user time, inside the schedules, the same systems each running slower, and a low-priority spinner holding one core busy erases it to the last decimal (vsync + spinner 10.18 against uncapped 10.17), which is frequency scaling — under vsync the cores idle deeper between frames and the next burst starts at a lower clock; nothing in the client is the cause and nothing in the client changes for it (1950) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
56 lines
2.7 KiB
XML
56 lines
2.7 KiB
XML
<Ui>
|
|
<!--
|
|
BENILLA_ALLOW_OWN_UI=1 — the one adapter the reference's own SpellBookFrame.xml needs from
|
|
this engine (decision 1952; 1751 §2 keeps an adapter for exactly a genuine engine difference).
|
|
|
|
The pet page's autocast shine. The reference's `$parentAutoCast` on every SpellButton is a
|
|
<Model> playing `Interface\Buttons\UI-AutoCastButton.mdx` (36x36, CENTER (1,1), scale 1.22),
|
|
shown and hidden by its own `SpellButton_UpdateButton` (SpellBookFrame.lua l.367-377). This
|
|
engine's <Model> holds the scene the Lua API reads and writes and draws no pixels
|
|
(`script/modelframe.rs`); the shine benilla draws is its own lane — the
|
|
`benilla:autocast-shine:<scale>` token texture (decisions 1383/1392, `autocast_shine.rs`),
|
|
which reads the model's OWN tracks out of the shipped .m2. So each SpellButton gets a Shine
|
|
texture beside the model, at the numbers 1393 squared onto this button (37x37 CENTER (0,0),
|
|
scale 1.48 — the reference's 36x36 CENTER (1,1) at 1.22, one ratio each, recorded there), and
|
|
the reference's SpellButton_UpdateButton is wrapped to carry the shine with the model.
|
|
|
|
1393's other number rides along for the same reason: the bracket overlay is 71.53 rather
|
|
than the reference's 60, so the art — which fills 33/64 of UI-AutoCastableOverlay.blp —
|
|
lands on this button's corners at the pet button's own 0.997x.
|
|
|
|
Nothing else. The reference's file is sourced unedited: its Models exist and are harmless.
|
|
-->
|
|
<Script><![CDATA[
|
|
for i = 1, 12 do
|
|
local button = getglobal("SpellButton" .. i)
|
|
local overlay = getglobal("SpellButton" .. i .. "AutoCastable")
|
|
overlay:SetWidth(71.53)
|
|
overlay:SetHeight(71.53)
|
|
local shine = button:CreateTexture("SpellButton" .. i .. "Shine", "OVERLAY")
|
|
shine:SetTexture("benilla:autocast-shine:1.48")
|
|
shine:SetWidth(37)
|
|
shine:SetHeight(37)
|
|
shine:SetPoint("CENTER", button, "CENTER", 0, 0)
|
|
shine:Hide()
|
|
end
|
|
|
|
local reference_SpellButton_UpdateButton = SpellButton_UpdateButton
|
|
function SpellButton_UpdateButton()
|
|
reference_SpellButton_UpdateButton()
|
|
if not this then
|
|
return
|
|
end
|
|
local name = this:GetName()
|
|
local model = getglobal(name .. "AutoCast")
|
|
local shine = getglobal(name .. "Shine")
|
|
if model and shine then
|
|
if model:IsShown() then
|
|
shine:Show()
|
|
else
|
|
shine:Hide()
|
|
end
|
|
end
|
|
end
|
|
]]></Script>
|
|
</Ui>
|