notes for Mists Classic 5.5.4

copied over retail version 1.3.3.2

Look for the following comments in the files changed

 -- changed for Mists 
 -- removed for Mists 
 -- added for Mists 

in Util.ua I renamed some functions to end with _retail, and copied over the function from 5.5.3 Util.lua

---------------------------------------------------------------------------------------------------------

ButtonForge.toc

---- Updated with
## Interface: 50504

---------------------------------------------------------------------------------------------------------

Const.lua

---------------

changed from:

Const.VersionMinor			= 0.30;

to:

Const.VersionMinor			= 0.31;   -- changed for Mists 5.5.4 04/19/2026

changed from:

Const.ButtonGap 			= 2;		--BG		--Don't mess with the ButtonSize/Gap

to:

Const.ButtonGap 			= -3;		--BG		-- changed for Mists 5.5.4 04/19/2026


---------------------------------------------------------------------------------------------------------





---------------------------------------------------------------------------------------------------------

Local-*.lua

remove HSpec3 and HSpec4 from locals

---------------------------------------------------------------------------------------------------------

Util.lua

-- changes for mounts adding to bf bars -- changed for Mists 5.5.4 06/02/2026

-- track the picked up mount using the following functions
HookSecureFunc_C_MountJournal_Pickup
HookSecureFunc_GameTooltip_SetAction
HookSecureFunc_PickupAction




changed from:

--One quick override function
local G_PickupSpellBookItem = C_SpellBook.PickupSpellBookItem;
local function PickupSpellBookItem(NameRank, Book)
	local Index, Alt_Book = Util.LookupSpellIndex(NameRank);
	if (Index) then
		return G_PickupSpellBookItem(Index, Alt_Book);
	elseif (Book) then
		return G_PickupSpellBookItem(NameRank, Book);
	end
	return G_PickupSpellBookItem(NameRank);
end

to:

--One quick override function -- changed for Mists 5.5.4 06/01/2026
--local G_PickupSpellBookItem = C_SpellBook.PickupSpellBookItem;
--local function PickupSpellBookItem(NameRank, Book)
--  local Index, Alt_Book = Util.LookupSpellIndex(NameRank);
--  if (Index) then
--      return G_PickupSpellBookItem(Index, Alt_Book);
--  elseif (Book) then
--      return G_PickupSpellBookItem(NameRank, Book);
--  end
--  return G_PickupSpellBookItem(NameRank);
--end


removed:

DefaultBarSave["HSpec3"]		= false;
DefaultBarSave["HSpec4"]		= false;

DefaultBonusBarSave["HSpec3"]			= false;
DefaultBonusBarSave["HSpec4"]			= false;

BarSaveCleanseFunctions["HSpec3"]					= CleanseEcho;
BarSaveCleanseFunctions["HSpec4"]					= CleanseEcho;

BarSaveValidationFunctions["HSpec3"]					= ValidateBoolean;
BarSaveValidationFunctions["HSpec4"]					= ValidateBoolean;

		for i = 1, #ButtonForgeSave.Bars do
			ButtonForgeSave.Bars[i].HSpec3 = false;
			ButtonForgeSave.Bars[i].HSpec4 = false;
		end
		
		if (ButtonForgeSave.UndoProfileBars ~= nil) then
			for i = 1, #ButtonForgeSave.UndoProfileBars do
				ButtonForgeSave.UndoProfileBars[i].HSpec3 = false;
				ButtonForgeSave.UndoProfileBars[i].HSpec4 = false;
			end
		end

		for k, v in pairs(ButtonForgeGlobalProfiles) do
			for i = 1, #v.Bars do
				v.Bars[i].HSpec3 = false;
				v.Bars[i].HSpec4 = false;
			end
		end

	if (Commands["-hidespec3"]) then
		Bar:SetHSpec3(Commands["-hidespec3"][1]);
	end
	
	if (Commands["-hidespec4"]) then
		Bar:SetHSpec4(Commands["-hidespec4"][1]);
	end

					Util.GetLocaleString("InfoHSpec3")..": "..select(2, Bar:GetHSpec3()).."\n"..
					Util.GetLocaleString("InfoHSpec4")..": "..select(2, Bar:GetHSpec4()).."\n"..


changed from:
	
	if (Commands["-gap"]) then
		Bar:SetButtonGap(tonumber(Commands["-gap"][1]));
	end

to:

	if (Commands["-gap"]) then
		Bar:SetButtonGap(tonumber(Commands["-gap"][1])-3); -- changed for Mists 5.5.4 04/19/2026
	end



changed from:

function Util.RefreshZoneAbility_retail()
	local zoneAbilities = C_ZoneAbility.GetActiveAbilities();
	local found = 0;
	for i, zoneAbility in ipairs(zoneAbilities) do
		for j, spell in ipairs(Util.ActiveSpells) do
			if ( zoneAbility.spellID == spell.SpellId ) then
				found = found + 1;
				break;
			end
		end
	end
	if (found == table.getn(zoneAbilities)) then
		ZoneAbilityFrame:SetShown(false);
	else
		ZoneAbilityFrame:SetShown(true);
	end
end

to:

function Util.RefreshZoneAbility()

end


---------------------------------------------------------------------------------------------------------

Button.lua


-- add in a code path to handle "companion" in the function SetCommandFromTriplet -- changed for Mists 5.5.4 06/02/2026



changed from:

  Util.CooldownFrame_SetTimer(self.WCooldown, C_Item.GetItemCooldown(self.ItemId)); -- changed for Mists 5.5.4 04/19/2026

to:
	
  Util.CooldownFrame_SetTimer(self.WCooldown, C_Container.GetItemCooldown(self.ItemId)); -- changed for Mists 5.5.4 04/19/2026
	

changed from:

		self.Texture 		= C_SpellBook.GetSpellBookItemTexture(ind, bank) or "Interface/Icons/INV_Misc_QuestionMark";

to:

		self.Texture 		= GetSpellBookItemTexture(ind, bank) or "Interface/Icons/INV_Misc_QuestionMark";		-- changed for Mists 5.5.4 04/19/2026
		

changed from:

	-- code lifted / adapted from retail ActionButton.lua
	local quality = C_TradeSkillUI.GetItemReagentQualityByItemInfo(self.ItemLink)
	if quality then
		local widget = self.Widget
		if not widget.ProfessionQualityOverlayFrame then
			widget.ProfessionQualityOverlayFrame = CreateFrame("Frame", nil, widget, "ActionButtonProfessionOverlayTemplate");
			widget.ProfessionQualityOverlayFrame:SetPoint("TOPLEFT", 14, -14);
		end

		local atlas = ("Professions-Icon-Quality-Tier%d-Inv"):format(quality);
		widget.ProfessionQualityOverlayFrame:Show();
		widget.ProfessionQualityOverlayFrame.Texture:SetAtlas(atlas, TextureKitConstants.UseAtlasSize);
		--return;
	end

to:

	-- code lifted / adapted from retail ActionButton.lua
	-- 	local quality = C_TradeSkillUI.GetItemReagentQualityByItemInfo(self.ItemLink)
	-- 	if quality then
	-- 		local widget = self.Widget
	-- 		if not widget.ProfessionQualityOverlayFrame then
	-- 			widget.ProfessionQualityOverlayFrame = CreateFrame("Frame", nil, widget, "ActionButtonProfessionOverlayTemplate");
	-- 			widget.ProfessionQualityOverlayFrame:SetPoint("TOPLEFT", 14, -14);
	-- 		end

	-- 		local atlas = ("Professions-Icon-Quality-Tier%d-Inv"):format(quality);
	-- 		widget.ProfessionQualityOverlayFrame:Show();
	-- 		widget.ProfessionQualityOverlayFrame.Texture:SetAtlas(atlas, TextureKitConstants.UseAtlasSize);
	-- 		--return;
	-- 	end


changed from:

function Button:UpdateGlow()
	if ((self.Mode == "spell" or (self.MacroMode == "spell" and self.Mode == "macro")) and Util.GlowSpells[self.SpellName]) then
		ActionButton_ShowOverlayGlow(self.Widget);
	else
		ActionButton_HideOverlayGlow(self.Widget);
	end
end

to:
	
function Button:UpdateGlow()
	if ((self.Mode == "spell" or (self.MacroMode == "spell" and self.Mode == "macro")) and Util.GlowSpells[self.SpellName]) then
		ActionButtonSpellAlertManager:ShowAlert(self.Widget); -- changed for Mists 5.5.4 04/19/2026
	else
		ActionButtonSpellAlertManager:HideAlert(self.Widget); -- changed for Mists 5.5.4 04/19/2026
	end
end

Flyout_Custom.lua

changed from:

FlyoutChecker:RegisterEvent("LEARNED_SPELL_IN_TAB");

to:

FlyoutChecker:RegisterEvent("LEARNED_SPELL_IN_SKILL_LINE");  -- changed for Mists 5.5.4 04/19/2026

changed from:

  FlyoutChecker:SetScript("OnUpdate", Refresh_FlyoutSpells_OnUpdate);

to:

  -- FlyoutChecker:SetScript("OnUpdate", Refresh_FlyoutSpells_OnUpdate); -- changed for Mists 5.5.4 04/19/2026

---------------------------------------------------------------------------------------------------------

EventManager.lua

changed from:

Misc:RegisterEvent("LEARNED_SPELL_IN_TAB");			--refresh/promote spells

to:

Misc:RegisterEvent("LEARNED_SPELL_IN_SKILL_LINE");			--refresh/promote spells -- changed for Mists 5.5.4 04/19/2026


changed from:

	elseif (Event == "LEARNED_SPELL_IN_TAB" or Event == "SPELLS_CHANGED") then

to:
		
	elseif (Event == "LEARNED_SPELL_IN_SKILL_LINE" or Event == "SPELLS_CHANGED") then -- changed for Mists 5.5.4 04/19/2026

changed from:

Misc:RegisterEvent("SUPER_TRACKING_CHANGED");

to:

-- Misc:RegisterEvent("SUPER_TRACKING_CHANGED"); -- changed for Mists 5.5.4 04/19/2026

	
---------------------------------------------------------------------------------------------------------

Bar.lua

removed:

self:SetHSpec3(BarSave["HSpec3"]);
self:SetHSpec4(BarSave["HSpec4"]);
	
function Bar.ToggleHSpec3(Widget)
	local self = Widget.ParentBar;
	
	if (not InCombatLockdown()) then
		self:SetHSpec3(not self.BarSave["HSpec3"]);
	end
end


function Bar.ToggleHSpec4(Widget)
	local self = Widget.ParentBar;
	
	if (not InCombatLockdown()) then
		self:SetHSpec4(not self.BarSave["HSpec4"]);
	end
end

function Bar:SetHSpec3(Value)
	if (not InCombatLockdown()) then
		if (Value == "toggle") then
			Value = not self.BarSave["HSpec3"];
		end
		self.BarSave["HSpec3"] = Value;
		if (self.HSpec3Button) then
			if (Value) then
				self.HSpec3Button:SetNormalTexture(Const.ImagesDir.."Spec3Off.tga");
				self.HSpec3Button.Tooltip = Util.GetLocaleString("HideSpec3Tooltip")..Util.GetLocaleString("Hidden");
			else
				self.HSpec3Button:SetNormalTexture(Const.ImagesDir.."Spec3On.tga");			
				self.HSpec3Button.Tooltip = Util.GetLocaleString("HideSpec3Tooltip")..Util.GetLocaleString("Shown");
			end
			self:SetVD(self.BarSave["VDriver"]);
			UILib.RefreshTooltip(self.HSpec3Button);
		end
	end
end
function Bar:GetHSpec3()
	if (self.BarSave["HSpec3"]) then
		return self.BarSave["HSpec3"], Util.GetLocaleString("Hidden");
	else
		return self.BarSave["HSpec3"], Util.GetLocaleString("Shown");
	end
end
function Bar:SetHSpec4(Value)
	if (not InCombatLockdown()) then
		if (Value == "toggle") then
			Value = not self.BarSave["HSpec4"];
		end
		self.BarSave["HSpec4"] = Value;
		if (self.HSpec4Button) then
			if (Value) then
				self.HSpec4Button:SetNormalTexture(Const.ImagesDir.."Spec4Off.tga");
				self.HSpec4Button.Tooltip = Util.GetLocaleString("HideSpec4Tooltip")..Util.GetLocaleString("Hidden");
			else
				self.HSpec4Button:SetNormalTexture(Const.ImagesDir.."Spec4On.tga");			
				self.HSpec4Button.Tooltip = Util.GetLocaleString("HideSpec4Tooltip")..Util.GetLocaleString("Shown");
			end
			self:SetVD(self.BarSave["VDriver"]);
			UILib.RefreshTooltip(self.HSpec4Button);
		end
	end
end
function Bar:GetHSpec4()
	if (self.BarSave["HSpec4"]) then
		return self.BarSave["HSpec4"], Util.GetLocaleString("Hidden");
	else
		return self.BarSave["HSpec4"], Util.GetLocaleString("Shown");
	end
end	

		if (self.BarSave["HSpec3"]) then
			Text = Text.."[spec:3] hide; ";
		end
		if (self.BarSave["HSpec4"]) then
			Text = Text.."[spec:4] hide; ";
		end
		
		
		
changed from:

		-- a bit hacky - but to get this out sooner rather than a bigger refactor
			local NumSpecs = GetNumSpecializations() 
 		  for i = 1, NumSpecs do
		   	 --[[Hide On Talent # Button]]--
			   NewBar["HSpec"..i.."Button"] = UILib.CreateButton(Background, Const.MiniIconSize, Const.MiniIconSize,		--parent, width, height
														{"TOPLEFT", LeftIconsFrame, "TOPLEFT", Const.BarEdge, -(Const.MiniIconSize + Const.MiniIconGap) * i -Const.BarEdge},	--Point
														Const.ImagesDir.."Spec"..i.."On.tga",		--Norm
														nil,								--Push
														nil,								--Check
														"Interface/Buttons/ButtonHilight-Square", --Highlight
														Util.GetLocaleString("HideSpec"..i.."Tooltip"),
														NewBar["ToggleHSpec"..i], nil, nil);	--OnClick, On M Down, On M Up
			   NewBar["HSpec"..i.."Button"].ParentBar = NewBar;
			   table.insert(NewBar.LeftControls, NewBar["HSpec"..i.."Button"]);
		  end

to:
	  -- a bit hacky - but to get this out sooner rather than a bigger refactor
			-- local NumSpecs = GetNumSpecializations()  -- changed for Anniversary Burning Crusade 2.5.5 02/22/2026
		  local NumSpecs = GetNumTalentGroups()
      if NumSpecs > 1 then
  		  for i = 1, NumSpecs do
		       --[[Hide On Talent # Button]]--
	  	     NewBar["HSpec"..i.."Button"] = UILib.CreateButton(Background, Const.MiniIconSize, Const.MiniIconSize,		--parent, width, height
												{"TOPLEFT", LeftIconsFrame, "TOPLEFT", Const.BarEdge, -(Const.MiniIconSize + Const.MiniIconGap) * i -Const.BarEdge},	--Point
												Const.ImagesDir.."Spec"..i.."On.tga",		--Norm
												nil,								--Push
												nil,								--Check
												"Interface/Buttons/ButtonHilight-Square", --Highlight
												Util.GetLocaleString("HideSpec"..i.."Tooltip"),
												NewBar["ToggleHSpec"..i], nil, nil);	--OnClick, On M Down, On M Up
				   NewBar["HSpec"..i.."Button"].ParentBar = NewBar;
				   table.insert(NewBar.LeftControls, NewBar["HSpec"..i.."Button"]);
			  end
			end		