From 543f2e80fe73f44da9a0d9f6c875e0150f272d4b Mon Sep 17 00:00:00 2001 From: Jrc13245 Date: Tue, 24 Feb 2026 21:40:44 -0500 Subject: [PATCH] fixes for overflow frames --- Core.lua | 11 +++++++++++ Extensions/OverflowBuffFrame.lua | 33 ++++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/Core.lua b/Core.lua index 6d01ab0..21ced9d 100644 --- a/Core.lua +++ b/Core.lua @@ -5987,6 +5987,7 @@ SlashCmdList["CLEVEROID"] = function(msg) DEFAULT_CHAT_FRAME:AddMessage("|cffffaa00Overflow Buff Frame:|r") DEFAULT_CHAT_FRAME:AddMessage('/cleveroid overflowframe [on|off] - Enable/disable player overflow buff frame (default: off)') DEFAULT_CHAT_FRAME:AddMessage('/cleveroid overflowtest - Toggle overflow buff frame test mode') + DEFAULT_CHAT_FRAME:AddMessage('/cleveroid overflowreset - Reset overflow frame positions to defaults') return end @@ -6772,6 +6773,16 @@ SlashCmdList["CLEVEROID"] = function(msg) return end + -- overflowreset (reset frame positions to defaults) + if cmd == "overflowreset" then + if CleveRoids.ResetOverflowFramePositions then + CleveRoids.ResetOverflowFramePositions() + else + CleveRoids.Print("|cffff0000OverflowBuffFrame extension not loaded|r") + end + return + end + -- Delegate to extension console handlers (chain pattern) if CleveRoids.HandleConsoleCommand then CleveRoids.HandleConsoleCommand(msg) diff --git a/Extensions/OverflowBuffFrame.lua b/Extensions/OverflowBuffFrame.lua index ebef6ce..40fbbe2 100644 --- a/Extensions/OverflowBuffFrame.lua +++ b/Extensions/OverflowBuffFrame.lua @@ -342,7 +342,9 @@ end RebuildFrame = function() if not playerFrame then return end - if CleveRoidMacros and CleveRoidMacros.overflowPlayerEnabled then + local enabled = testMode or (CleveRoidMacros and CleveRoidMacros.overflowPlayerEnabled) + + if enabled then local pBuffs = GetPlayerOverflowBuffs() lastPlayerCount = PopulateFrame(playerFrame, playerLabelFs, "SuperCleveRoid Overflow Buffs (You) *shift+drag*", playerIcons, pBuffs) @@ -358,9 +360,21 @@ RebuildFrame = function() lastPlayerCount = 0 end - local tBuffs = GetTargetOverflowBuffs() - local targetName = UnitExists("target") and UnitName("target") or "Target" - lastTargetCount = PopulateFrame(targetFrame, targetLabelFs, "Overflow (" .. targetName .. ") *shift+drag*", targetIcons, tBuffs) + if enabled then + local tBuffs = GetTargetOverflowBuffs() + local targetName = UnitExists("target") and UnitName("target") or "Target" + lastTargetCount = PopulateFrame(targetFrame, targetLabelFs, "SuperCleveRoid Overflow Buffs (" .. targetName .. ") *shift+drag*", targetIcons, tBuffs) + else + targetFrame:Hide() + targetFrame:EnableMouse(false) + targetLabelFs:SetText("") + for i = 1, ICONS_PER_FRAME do + if targetIcons[i] then + targetIcons[i].button:Hide() + end + end + lastTargetCount = 0 + end end -- Refresh only duration text (no full rebuild) @@ -562,6 +576,17 @@ end CleveRoids.ToggleOverflowTest = ToggleTestMode CleveRoids.RebuildOverflowFrame = function() RebuildFrame() end +CleveRoids.ResetOverflowFramePositions = function() + if not playerFrame or not targetFrame then return end + CleveRoidMacros = CleveRoidMacros or {} + CleveRoidMacros.overflowPlayerPos = nil + CleveRoidMacros.overflowTargetPos = nil + playerFrame:ClearAllPoints() + playerFrame:SetPoint("TOP", UIParent, "TOP", 0, -100) + targetFrame:ClearAllPoints() + targetFrame:SetPoint("TOP", UIParent, "TOP", 0, -170) + CleveRoids.Print("Overflow frame positions reset to defaults") +end -- ============================================================================ -- OnUpdate Handler