From eb554c09570e7f15902c303d9fa1f99d2d01b32d Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 2 Sep 2026 17:06:18 +0700 Subject: [PATCH] the inspect and talent windows are the reference's own MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - the inspect and talent windows are the reference's own: `Blizzard_InspectUI` and `Blizzard_TalentUI` are LoadOnDemand addons whose real `.xml`/`.lua` live inside `patch.MPQ` — the loose `Interface\AddOns` folder holds only a `.pub` signature, which three notes in this tree had read as "packed, no source to migrate from", one wrong inference that kept five windows on hand-written transcriptions; 2300 lines of ours out, no engine work needed, and three things our talent transcription had quietly invented fell out (there was no level-10 gate, every tree scrolled where a shallow one does not, and a nil `TalentMicroButton` threw out of OnShow before the window painted) - a nil unit token RAISES in 53 of 83 bindings: wow-re censused the registrar table at `0x850438` — `UnitName(nil)` raises and `UnitIsVisible(nil)` is quiet, one line apart in stock files, so there is no rule to derive, the table is the rule; ours answered a default and our own test had pinned it; both token positions of the seven two-token predicates are gated, `GetRaidTargetIndex` too, and `UnitIsAFK`/`UnitIsDND` are confirmed not to exist in 5875 at all (zero occurrences under a positive control) — we invented them, and they stay deliberately ungated - `EditBox:SetNumber` did not exist (the only chain file calling it is `MoneyInputFrame.lua`, on the chain since the money kit): it is byte-identical to `SetText`, formats through `%.14g` in MSVC's CRT (`1e+020`, `1.#INF`), and `OnTextChanged` never fires from an edit — it fires from the dirty-word drain inside the box's own OnUpdate, coalesced to one per box per frame, where ours fired synchronously and `MoneyInputFrame_SetCopper` raised on it; `PanelTemplates_TabResize`'s `tab` argument is optional as the reference's is (stock macro tabs call it with `0`) - the skull or star on your CURRENT target never appeared or cleared until you re-targeted — `RAID_TARGET_UPDATE` was never fired, and stock `TargetFrame.lua` hangs its repaint off it; a raid-to-party conversion now empties the mark board as `0x4ba550` does; and the group-loot roll popups were already on the chain inside stock `LootFrame.xml` — our 546-line `GroupLootFrame.xml` had been shadowing all four of them Co-Authored-By: Claude Fable 5.1 --- .../benilla-app/assets/ui/GroupLootFrame.xml | 546 -------- crates/benilla-app/assets/ui/InspectFrame.xml | 1066 -------------- crates/benilla-app/assets/ui/MicroMenu.xml | 2 +- crates/benilla-app/assets/ui/TalentFrame.xml | 1248 ----------------- crates/benilla-app/assets/ui/UIParent.xml | 67 + crates/benilla-app/assets/ui/UiPanels.xml | 44 +- crates/benilla-app/assets/ui/benilla.toc | 68 +- crates/benilla-app/src/portrait/mod.rs | 17 +- crates/benilla-app/src/ui_inspect.rs | 5 +- crates/benilla-app/src/ui_party/feed.rs | 19 + crates/benilla-app/src/ui_party/mod.rs | 45 + .../src/ui_script/delete_item_tests.rs | 6 + .../src/ui_script/group_loot_tests.rs | 159 ++- .../src/ui_script/honor_frame_tests.rs | 53 +- .../src/ui_script/inspect_tests.rs | 178 ++- .../src/ui_script/keybindings_tests.rs | 3 + .../benilla-app/src/ui_script/macro_tests.rs | 8 +- .../src/ui_script/money_frame_tests.rs | 67 + .../src/ui_script/options_tests.rs | 11 +- .../src/ui_script/panel_template_tests.rs | 37 + .../benilla-app/src/ui_script/panel_tests.rs | 2 +- .../benilla-app/src/ui_script/reference_ui.rs | 14 +- .../src/ui_script/spellbook_tests.rs | 3 + crates/benilla-app/src/ui_script/test_ui.rs | 24 +- crates/benilla-app/tests/talent_frame.rs | 114 +- crates/benilla-app/tests/trade_frame.rs | 1 + crates/benilla-ui/src/loader/tests.rs | 4 +- crates/benilla-ui/src/script/binding_abi.rs | 77 + crates/benilla-ui/src/script/dressup.rs | 2 +- crates/benilla-ui/src/script/editbox.rs | 62 +- .../benilla-ui/src/script/editbox/interact.rs | 4 +- .../benilla-ui/src/script/editbox/methods.rs | 32 + crates/benilla-ui/src/script/editbox/tests.rs | 123 +- crates/benilla-ui/src/script/inspect.rs | 20 - crates/benilla-ui/src/script/model.rs | 16 +- crates/benilla-ui/src/script/region.rs | 13 +- crates/benilla-ui/src/script/tick.rs | 5 + crates/benilla-ui/src/script/unit/bindings.rs | 247 +++- crates/benilla-ui/src/script/unit/mod.rs | 11 +- crates/benilla-ui/src/script/unit/tests.rs | 84 +- crates/benilla-ui/src/widget/kinds/editbox.rs | 27 +- 41 files changed, 1400 insertions(+), 3134 deletions(-) delete mode 100644 crates/benilla-app/assets/ui/GroupLootFrame.xml delete mode 100644 crates/benilla-app/assets/ui/InspectFrame.xml delete mode 100644 crates/benilla-app/assets/ui/TalentFrame.xml diff --git a/crates/benilla-app/assets/ui/GroupLootFrame.xml b/crates/benilla-app/assets/ui/GroupLootFrame.xml deleted file mode 100644 index cf3243bd..00000000 --- a/crates/benilla-app/assets/ui/GroupLootFrame.xml +++ /dev/null @@ -1,546 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BenillaGroupLootFrame_Timer_OnUpdate(self) - - - - - - - - - - - - - BenillaGroupLootFrame_OnLoad(self) - GroupLootFrame_OnShow() - GroupLootFrame_OnEvent() - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - self:RegisterEvent("START_LOOT_ROLL") - self:RegisterEvent("CONFIRM_LOOT_ROLL") - - - if event == "START_LOOT_ROLL" then - GroupLootFrame_OpenNewFrame(arg1, arg2) - elseif event == "CONFIRM_LOOT_ROLL" then - -- Ref UIParent.lua:517-524 verbatim, minus the central router: a Need/Greed on a - -- BIND-ON-PICKUP roll sends nothing and asks first (decision 0594). arg1 = rollID, - -- arg2 = rollType; both ride the dialog so OnAccept can re-enter ConfirmLootRoll. - local dialog = StaticPopup_Show("CONFIRM_LOOT_ROLL") - if dialog then - dialog.data = arg1 - dialog.data2 = arg2 - end - end - - - - diff --git a/crates/benilla-app/assets/ui/InspectFrame.xml b/crates/benilla-app/assets/ui/InspectFrame.xml deleted file mode 100644 index c53bc062..00000000 --- a/crates/benilla-app/assets/ui/InspectFrame.xml +++ /dev/null @@ -1,1066 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - self:SetFrameLevel(self:GetFrameLevel() + 1) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BenillaInspectModel_OnLoad(self) - BenillaSetBoothTexture(getglobal(self:GetName() .. "Texture"), "inspect") - - BenillaInspectModel_OnUpdate(self, arg1) - - - - - - - - - - - - - - - - - - - - - - - - - - BenillaInspectPaperDollFrame_OnLoad(self) - BenillaInspectPaperDollFrame_OnEvent(self) - BenillaInspectPaperDollFrame_OnShow() - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BenillaTooltip_AddNewbieTipFor(self, RANK, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b, NEWBIE_TOOLTIP_RANK) - GameTooltip:Hide() - - - - - - - - - - - self:SetFrameLevel(self:GetFrameLevel() - 1) - BenillaTooltip_AddNewbieTipFor(self, RANK_POSITION, HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b, NEWBIE_TOOLTIP_RANK_POSITION) - GameTooltip:Hide() - - - - - self:SetFrameLevel(self:GetFrameLevel() - 1) - - - - - - BenillaInspectHonorFrame_OnLoad(self) - BenillaInspectHonorFrame_OnEvent() - BenillaInspectHonorFrame_OnShow() - - - - - BenillaInspectFrame_OnLoad(self) - BenillaInspectFrame_OnEvent(self) - BenillaInspectFrame_OnShow(self) - BenillaInspectFrame_OnHide(self) - BenillaInspectFrame_OnUpdate(self) - - - diff --git a/crates/benilla-app/assets/ui/MicroMenu.xml b/crates/benilla-app/assets/ui/MicroMenu.xml index 97666eae..b0c77503 100644 --- a/crates/benilla-app/assets/ui/MicroMenu.xml +++ b/crates/benilla-app/assets/ui/MicroMenu.xml @@ -213,7 +213,7 @@ function UpdateMicroButtons() BenillaMicroButton_SetPushed(CharacterMicroButton, BenillaMicro_PanelShown("CharacterFrame")) BenillaMicroButton_SetPushed(SpellbookMicroButton, BenillaMicro_PanelShown("SpellBookFrame")) - BenillaMicroButton_SetPushed(TalentMicroButton, BenillaMicro_PanelShown("BenillaTalentFrame")) + BenillaMicroButton_SetPushed(TalentMicroButton, BenillaMicro_PanelShown("TalentFrame")) BenillaMicroButton_SetPushed(QuestLogMicroButton, BenillaMicro_PanelShown("QuestLogFrame")) -- ref l.60-64. Missing since the Socials button went live with decision 0668: the -- window opened but its button never read pushed. Spotted while wiring Help, which is diff --git a/crates/benilla-app/assets/ui/TalentFrame.xml b/crates/benilla-app/assets/ui/TalentFrame.xml deleted file mode 100644 index be3c3fed..00000000 --- a/crates/benilla-app/assets/ui/TalentFrame.xml +++ /dev/null @@ -1,1248 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BenillaTalentFrameScrollBar_OnValueChanged(self, arg1) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -