The nameplate verbs now answer as the reference's (`0x489450`-`0x489480`): they flip bits `0x1` (enemy) and `0x8` (friend) of runtime state, write no CVar, and world entry clears both (`0x401639` → `0x6033c0`, after `VARIABLES_LOADED`). The setting persists only through FrameXML's `NAMEPLATES_ON`/`FRIENDNAMEPLATES_ON`, as on 1.12.1. - The `nameplateShowEnemies`/`nameplateShowFriends` CVar rows and the host's plate push are gone. A player's saved plate setting in `config.toml` moves once into the saved variables at the first world entry. - benilla's layer keeps what players see today. Its `UpdateNameplates` fix drops the stock show-then-hide (`UIOptionsFrame.lua:775-776`), and it registers `FRIENDNAMEPLATES_ON` for saving, which the stock file never does (`:180-183`). So plates turned on come back after login. - With the layer off, benilla behaves as 1.12.1: friendly plates are off after entry. - The V keys flip the verb and the saved global together. V and Shift-V keep their recorded deviation; #570 tracks moving the binding table onto the stock `Bindings.xml`. Verified: - New tests for the verbs, the entry clear, the stock-only and layered persistence across entry and reload, the V keys and the one-time migration, each failing with its change undone. - `scripts/gates.sh` and `scripts/smoke.sh` are green. - A live run with `WOW_GM=off` turned both kinds on, relogged and read both back, from the file too. Built on macOS; no platform seam touched. Fixes #552 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
52 lines
2.2 KiB
XML
52 lines
2.2 KiB
XML
<Ui>
|
|
<!--
|
|
benilla's fixes to the stock FrameXML Lua, loaded after every stock file.
|
|
-->
|
|
<Script><![CDATA[
|
|
-- Deviation: the stock FCF_ChatTabFadeFinished (FloatingChatFrame.lua:989-992) nils
|
|
-- oldAlpha even under a live hover, so leaving and re-entering within
|
|
-- CHAT_FRAME_FADE_TIME (a flick to the scroll buttons, outside the hover box, does it)
|
|
-- stops the plate fading in (l.873) for the rest of the session; this keeps oldAlpha while
|
|
-- hover is set.
|
|
if FCF_ChatTabFadeFinished then
|
|
function FCF_ChatTabFadeFinished(chatTab, chatFrame)
|
|
chatTab:Hide()
|
|
if not chatFrame.hover then
|
|
chatFrame.oldAlpha = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Deviation: re-runs UIParent_ManageFramePositions after DurabilityFrame's own OnEvent. The
|
|
-- pass seats the frame 20 further in while a side glyph shows (UIParent.lua:1759-1768),
|
|
-- but the stock frame runs it only from OnShow/OnHide, so a glyph appearing while the frame
|
|
-- is shown leaves the shield's overhang off the screen edge. The stock handler runs first,
|
|
-- unchanged, on the this/event/arg1 already set for the dispatch.
|
|
if DurabilityFrame then
|
|
local refOnEvent = DurabilityFrame:GetScript("OnEvent")
|
|
DurabilityFrame:SetScript("OnEvent", function()
|
|
if refOnEvent then refOnEvent() end
|
|
UIParent_ManageFramePositions()
|
|
end)
|
|
end
|
|
|
|
-- Deviation: friendly plates the player turned on come back at every world entry. The
|
|
-- stock UpdateNameplates (UIOptionsFrame.lua:768-780) shows them and hides them again at
|
|
-- once (l.775-776), and FRIENDNAMEPLATES_ON is never saved, since l.182 registers
|
|
-- NAMEPLATES_ON a second time.
|
|
function UpdateNameplates()
|
|
if ( NAMEPLATES_ON ) then
|
|
ShowNameplates()
|
|
else
|
|
HideNameplates()
|
|
end
|
|
if ( FRIENDNAMEPLATES_ON ) then
|
|
ShowFriendNameplates()
|
|
else
|
|
HideFriendNameplates()
|
|
end
|
|
end
|
|
RegisterForSave("FRIENDNAMEPLATES_ON")
|
|
]]></Script>
|
|
</Ui>
|