Skip to content

Commit

Permalink
Update TaintLess.xml
Browse files Browse the repository at this point in the history
  • Loading branch information
IrcDirk committed Oct 4, 2024
1 parent 38a19bb commit 9ea6ff3
Showing 1 changed file with 12 additions and 74 deletions.
86 changes: 12 additions & 74 deletions Carbonite/Taintless.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Ui><Script><![CDATA[--[[
TaintLess [23-09-09]
TaintLess [24-07-27]
https://www.townlong-yak.com/addons/taintless
All rights reserved.
Expand All @@ -11,32 +11,33 @@ Permission is hereby granted to distribute unmodified copies of this file.
local purgeKey do
local e = {}
function purgeKey(t, k)
e.textures = t
e.textures, t[k] = t, 0
TextureLoadingGroupMixin.RemoveTexture(e, k)
end
end
local patch do
local patch, cbuild do
local skips = securecall(function()
local cb, r, _, an = select(4,GetBuildInfo()), {moon="haunted"}
r.moon, _, an = nil, issecurevariable(r, "moon")
local r, _, an = {moon="haunted"}
cbuild, r.moon, _, an = select(4,GetBuildInfo()), nil, issecurevariable(r, "moon")
for m, v, clo, chi in (C_AddOns.GetAddOnMetadata(an, "X-TaintLess-DisableMitigations") or ""):gmatch("([%a_]+)=(%d+):?(%d*):?(%d*)") do
if (clo == "" or cb >= clo+0) and (chi == "" or chi+0 >= cb) then
if (clo == "" or cbuild >= clo+0) and (chi == "" or chi+0 >= cbuild) then
r[m] = v + 0
end
end
return r
end)
function patch(name, version, impl)
if not ((tonumber(_G[name]) or 0) >= version or skips and skips[name] == version) then
if impl and not ((tonumber(_G[name]) or 0) >= version or skips and skips[name] == version) then
_G[name] = version
securecall(impl, version)
end
end
end
local CLASSIC = cbuild and cbuild < 11e4
-- https://www.townlong-yak.com/addons/taintless/fixes/RefreshOverread
patch("UIDD_REFRESH_OVERREAD_PATCH_VERSION", 5, function(V)
patch("UIDD_REFRESH_OVERREAD_PATCH_VERSION", 7, CLASSIC and function(V)
hooksecurefunc("UIDropDownMenu_InitializeHelper", function()
for i=1, UIDD_REFRESH_OVERREAD_PATCH_VERSION == V and UIDROPDOWNMENU_MAXLEVELS or 0 do
for j=1+_G["DropDownList" .. i].numButtons, UIDROPDOWNMENU_MAXBUTTONS do
Expand All @@ -49,7 +50,7 @@ patch("UIDD_REFRESH_OVERREAD_PATCH_VERSION", 5, function(V)
end)
-- https://www.townlong-yak.com/addons/taintless/fixes/DisplayModeTaint
patch("UIDROPDOWNMENU_OPEN_PATCH_VERSION", 3, function(V)
patch("UIDROPDOWNMENU_OPEN_PATCH_VERSION", 5, CLASSIC and function(V)
hooksecurefunc("UIDropDownMenu_InitializeHelper", function(frame)
if UIDROPDOWNMENU_OPEN_PATCH_VERSION == V
and UIDROPDOWNMENU_OPEN_MENU and UIDROPDOWNMENU_OPEN_MENU ~= frame
Expand All @@ -59,70 +60,7 @@ patch("UIDROPDOWNMENU_OPEN_PATCH_VERSION", 3, function(V)
end)
end)
-- https://www.townlong-yak.com/addons/taintless/fixes/EditModeOpenDrop
patch("EDITMAN_OPENDROP_PATCH_VERSION", 5, function(V)
if not (type(EditModeManagerFrame) == "table" and
type(EditModeManagerFrame.GetAttribute) == "function" and
type(FriendsFrameStatusDropDown) == "table") then
return
end
hooksecurefunc(EditModeManagerFrame, "GetAttribute", function(_, attr)
if attr ~= "UIPanelLayout-checkFit" or EDITMAN_OPENDROP_PATCH_VERSION ~= V
or (issecurevariable(DropDownList1, "maxWidth") and issecurevariable("UIDROPDOWNMENU_MENU_LEVEL"))
or InCombatLockdown() and FriendsFrameStatusDropDown:IsProtected() then
elseif FriendsFrameStatusDropDown:IsVisible() then
FriendsFrameStatusDropDown:Hide()
FriendsFrameStatusDropDown:Show()
else
local op = FriendsFrameStatusDropDown:GetParent()
FriendsFrameStatusDropDown:SetParent(nil)
if not FriendsFrameStatusDropDown:IsShown() then
FriendsFrameStatusDropDown:Show()
FriendsFrameStatusDropDown:Hide()
end
FriendsFrameStatusDropDown:SetParent(op)
end
end)
end)
-- https://www.townlong-yak.com/addons/taintless/fixes/ObjectiveTrackerUpdate
patch("OBJTRACK_DELAYUPDATE_PATCH_VERSION", 5, function(V)
if not (type(ObjectiveTrackerFrame) == "table" and
type(ObjectiveTrackerFrame.HeaderMenu) == "table" and
type(ObjectiveTrackerFrame.HeaderMenu.Title) == "table") then
return
end
local counter, didDelayUpdate, delayFrameCount = (CreateFrame("Frame", nil, ObjectiveTrackerFrame))
counter:Hide()
counter:SetScript("OnUpdate", function()
if OBJTRACK_DELAYUPDATE_PATCH_VERSION == V and delayFrameCount then
delayFrameCount = delayFrameCount + 1
else
counter:Hide()
end
end)
hooksecurefunc("ObjectiveTracker_Update", function()
if OBJTRACK_DELAYUPDATE_PATCH_VERSION == V and didDelayUpdate then
ObjectiveTrackerFrame.isUpdating, didDelayUpdate = nil
end
end)
hooksecurefunc(ObjectiveTrackerFrame.HeaderMenu.Title, "ClearAllPoints", function()
if OBJTRACK_DELAYUPDATE_PATCH_VERSION ~= V or ObjectiveTrackerFrame.isUpdating then
elseif issecurevariable(ObjectiveTrackerFrame, "isOnLeftSideOfScreen") then
if delayFrameCount then
delayFrameCount = nil
counter:Hide()
end
elseif 4 > (delayFrameCount or 0) then
ObjectiveTrackerFrame.isUpdating, didDelayUpdate, delayFrameCount = 86, 1, delayFrameCount or 0
counter:Show()
else
counter:Hide()
end
end)
end)
-- https://www.townlong-yak.com/addons/taintless/fixes/CUFProfilesSetSelectedValue
-- https://www.townlong-yak.com/addons/taintless/fixes/CUFProfileActivation
patch("CUF_PROFILE_ACTIVATE_PATCH_VERSION", 1, function(V)
if not (type(SetActiveRaidProfile) == "function" and type(CompactUnitFrameProfiles) == "table" and
type(ScriptErrorsFrameMixin) == "table" and type(ScriptErrorsFrameMixin.DisplayMessageInternal) == "function") then
Expand All @@ -133,7 +71,7 @@ patch("CUF_PROFILE_ACTIVATE_PATCH_VERSION", 1, function(V)
getmetatable(sv[3]).__len = function()
return "UIDROPDOWNMENU_MENU_LEVEL"
end
setmetatable(o, {__index=function(t,k)
setmetatable(o, {__index=function(_,k)
s, sv[2][1] = k == sk[s] and s+1 or 1
return sv[s-1]
end})
Expand Down

0 comments on commit 9ea6ff3

Please sign in to comment.