diff --git a/crates/benilla-app/assets/ui/BuffFrame.xml b/crates/benilla-app/assets/ui/BuffFrame.xml
deleted file mode 100644
index 8b8fc159..00000000
--- a/crates/benilla-app/assets/ui/BuffFrame.xml
+++ /dev/null
@@ -1,829 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BuffFrame_OnLoad()
- BuffFrame_OnUpdate(arg1)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TempEnchant1Duration:SetPoint("TOP", "TempEnchant1", "BOTTOM", 0, 0)
- TempEnchant2Duration:SetPoint("TOP", "TempEnchant2", "BOTTOM", 0, 0)
- BuffButtons_UpdatePositions()
-
- BuffFrame_Enchant_OnUpdate(arg1)
-
-
-
diff --git a/crates/benilla-app/assets/ui/ChatFrame.xml b/crates/benilla-app/assets/ui/ChatFrame.xml
index 563db094..dbc4139a 100644
--- a/crates/benilla-app/assets/ui/ChatFrame.xml
+++ b/crates/benilla-app/assets/ui/ChatFrame.xml
@@ -2107,94 +2107,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- UIMenu_OnShow()
- PlaySound("UChatScrollButton")
- this:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b)
- this:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b)
-
-
- UIMenu_OnUpdate(arg1)
-
-
-
+
diff --git a/crates/benilla-app/assets/ui/CinematicFrame.xml b/crates/benilla-app/assets/ui/CinematicFrame.xml
deleted file mode 100644
index dfc63211..00000000
--- a/crates/benilla-app/assets/ui/CinematicFrame.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
- CinematicFrame_OnLoad();
-
-
- CinematicFrame_OnEvent();
-
-
- local screenshotKey = GetBindingKey("SCREENSHOT");
- if ( arg1 == "ESCAPE" ) then
- StopCinematic();
- elseif ( screenshotKey and (arg1 == screenshotKey) ) then
- RunBinding("SCREENSHOT");
- end
-
-
-
-
diff --git a/crates/benilla-app/assets/ui/GossipFrame.xml b/crates/benilla-app/assets/ui/GossipFrame.xml
index b6b69654..d9c2f592 100644
--- a/crates/benilla-app/assets/ui/GossipFrame.xml
+++ b/crates/benilla-app/assets/ui/GossipFrame.xml
@@ -164,8 +164,10 @@
-- ref's titleButton.type dispatch (ref l.53-61), collapsed onto our seam's two intents
-- (SelectGossipQuest covers both the ref's Available/Active clicks, gossip.rs's doc comment).
function BenillaGossipRow_OnClick(button)
- if button.kind == "quest" then
- SelectGossipQuest(button.itemIndex)
+ if button.kind == "available" then
+ SelectGossipAvailableQuest(button.itemIndex)
+ elseif button.kind == "active" then
+ SelectGossipActiveQuest(button.itemIndex)
else
SelectGossipOption(button.itemIndex)
end
@@ -173,22 +175,30 @@
function BenillaGossipFrame_Update()
getglobal("GossipGreetingText"):SetText(GetGossipText() or "")
- local numQuests = GetNumGossipQuests()
+ -- **The reference's own two lists, in the reference's own order** (ref l.27-28:
+ -- available, then active). Each verb returns a flat vararg of (title, level) PAIRS, and
+ -- each click indexes back INTO ITS OWN LIST — which is why the row remembers which
+ -- list it came from rather than one shared position. This replaced
+ -- `GetNumGossipQuests`/`GetGossipQuestInfo`/`SelectGossipQuest`, three names benilla
+ -- invented and 1.12 does not have (1189: a superset is not free).
+ local avail = { GetGossipAvailableQuests() }
+ local active = { GetGossipActiveQuests() }
+ local numAvail, numActive = #avail / 2, #active / 2
+ local numQuests = numAvail + numActive
-- GetGossipOptions() returns a flat vararg of (label, type) pairs (the Era shape).
local opts = { GetGossipOptions() }
local numOptions = #opts / 2
for i = 1, BENILLA_GOSSIP_MAX do
local button = getglobal("GossipTitleButton" .. i)
if i <= numQuests then
- -- Quest rows fill first (ref l.27-28: available then active, already ordered by
- -- the app before it reaches GetGossipQuestInfo) — the row's OWN 1-based position
- -- IS its quest-list index, so no separate local counter is needed.
- local title, active = GetGossipQuestInfo(i)
- button.kind = "quest"
- button.itemIndex = i
- button.label:SetText(title)
+ local isActive = i > numAvail
+ local listIndex = isActive and (i - numAvail) or i
+ local src = isActive and active or avail
+ button.kind = isActive and "active" or "available"
+ button.itemIndex = listIndex
+ button.label:SetText(src[(listIndex - 1) * 2 + 1])
BenillaGossipRow_Resize(button)
- button.icon:SetTexture(active and BENILLA_GOSSIP_QUEST_ICON_ACTIVE or BENILLA_GOSSIP_QUEST_ICON_AVAILABLE)
+ button.icon:SetTexture(isActive and BENILLA_GOSSIP_QUEST_ICON_ACTIVE or BENILLA_GOSSIP_QUEST_ICON_AVAILABLE)
button:Enable()
button:Show()
elseif i <= numQuests + numOptions then
diff --git a/crates/benilla-app/assets/ui/ItemButtonTemplate.xml b/crates/benilla-app/assets/ui/ItemButtonTemplate.xml
deleted file mode 100644
index 10f1002b..00000000
--- a/crates/benilla-app/assets/ui/ItemButtonTemplate.xml
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-
-
-
diff --git a/crates/benilla-app/assets/ui/OptionsFrame.xml b/crates/benilla-app/assets/ui/OptionsFrame.xml
index 9c218bd4..49c8edb8 100644
--- a/crates/benilla-app/assets/ui/OptionsFrame.xml
+++ b/crates/benilla-app/assets/ui/OptionsFrame.xml
@@ -190,6 +190,26 @@