Compare commits

...

4 Commits

Author SHA1 Message Date
6325ed1ade Fix changelogs
This is why Unreleased is used instead...
2022-06-01 08:31:05 -05:00
a4c44a5809 Update TOC 2022-06-01 08:30:21 -05:00
82db70969a Remove UnitPopupButtons usage
I need to find a way to reintroduce this, but Blizzard's new method of building these frames doesn't look like it's going to be particularly easy. This stops error popups on 9.2.5
2022-06-01 08:29:39 -05:00
47931922bd Fix target health updating infrequently on Classic 2022-05-02 12:22:07 -05:00
5 changed files with 134 additions and 128 deletions

View File

@ -36,7 +36,7 @@ IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
IceHUD.CanTrackGCD = not IceHUD.WowClassic IceHUD.CanTrackGCD = not IceHUD.WowClassic
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000 IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
IceHUD.ShouldUpdateTargetHealthEveryTick = IceHUD.WowClassicBC and GetCVarBool("predictedHealth") IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE" IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
@ -684,134 +684,134 @@ function IceHUD:GetIsInLFGGroup()
return IsInLFGGroup return IsInLFGGroup
end end
local BLACKLISTED_UNIT_MENU_OPTIONS = { if UnitPopupButtons then
SET_FOCUS = "ICEHUD_SET_FOCUS", local BLACKLISTED_UNIT_MENU_OPTIONS = {
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS", SET_FOCUS = "ICEHUD_SET_FOCUS",
PET_DISMISS = "ICEHUD_PET_DISMISS", CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
LOCK_FOCUS_FRAME = true, PET_DISMISS = "ICEHUD_PET_DISMISS",
UNLOCK_FOCUS_FRAME = true, LOCK_FOCUS_FRAME = true,
} UNLOCK_FOCUS_FRAME = true,
}
UnitPopupButtons["ICEHUD_SET_FOCUS"] = { UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
text = L["Type %s to set focus"]:format(SLASH_FOCUS1), text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."], tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
dist = 0, dist = 0,
} }
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = { UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1), text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."], tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
dist = 0, dist = 0,
} }
UnitPopupButtons["ICEHUD_PET_DISMISS"] = { UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
text = L["Use your Dismiss Pet spell to dismiss a pet"], text = L["Use your Dismiss Pet spell to dismiss a pet"],
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."], tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
dist = 0, dist = 0,
} }
local munged_unit_menus = {} local munged_unit_menus = {}
local function munge_unit_menu(menu) local function munge_unit_menu(menu)
local result = munged_unit_menus[menu] local result = munged_unit_menus[menu]
if result then if result then
return result return result
end
if not UnitPopupMenus then
munged_unit_menus[menu] = menu
return menu
end
local data = UnitPopupMenus[menu]
if not data then
munged_unit_menus[menu] = menu
return menu
end
local found = false
local _, v
for _, v in ipairs(data) do
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
found = true
break
end end
end
if not found then if not UnitPopupMenus then
-- nothing to remove or add, we're all fine here. munged_unit_menus[menu] = menu
munged_unit_menus[menu] = menu return menu
return menu
end
local new_data = {}
for _, v in ipairs(data) do
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
if v == "PET_DISMISS" and select(2, UnitClass("player")) == "WARLOCK" then
blacklisted = false
end end
if not blacklisted then
new_data[#new_data+1] = v local data = UnitPopupMenus[menu]
elseif blacklisted ~= true then if not data then
new_data[#new_data+1] = blacklisted munged_unit_menus[menu] = menu
return menu
end end
local found = false
local _, v
for _, v in ipairs(data) do
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
found = true
break
end
end
if not found then
-- nothing to remove or add, we're all fine here.
munged_unit_menus[menu] = menu
return menu
end
local new_data = {}
for _, v in ipairs(data) do
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
if v == "PET_DISMISS" and select(2, UnitClass("player")) == "WARLOCK" then
blacklisted = false
end
if not blacklisted then
new_data[#new_data+1] = v
elseif blacklisted ~= true then
new_data[#new_data+1] = blacklisted
end
end
local new_menu_name = "ICEHUD_" .. menu
UnitPopupMenus[new_menu_name] = new_data
munged_unit_menus[menu] = new_menu_name
return new_menu_name
end end
local new_menu_name = "ICEHUD_" .. menu IceHUD.MungeUnitMenu = munge_unit_menu
UnitPopupMenus[new_menu_name] = new_data local function figure_unit_menu(unit)
munged_unit_menus[menu] = new_menu_name if unit == "focus" then
return new_menu_name return "FOCUS"
end end
IceHUD.MungeUnitMenu = munge_unit_menu
local function figure_unit_menu(unit) if UnitIsUnit(unit, "player") then
if unit == "focus" then return "SELF"
return "FOCUS" end
if UnitIsUnit(unit, "vehicle") then
-- NOTE: vehicle check must come before pet check for accuracy's sake because
-- a vehicle may also be considered your pet
return "VEHICLE"
end
if UnitIsUnit(unit, "pet") then
return "PET"
end
if not UnitIsPlayer(unit) then
return "TARGET"
end
local id = UnitInRaid(unit)
if id then
return "RAID_PLAYER", id
end
if UnitInParty(unit) then
return "PARTY"
end
return "PLAYER"
end end
if UnitIsUnit(unit, "player") then IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
return "SELF"
end
if UnitIsUnit(unit, "vehicle") then
-- NOTE: vehicle check must come before pet check for accuracy's sake because
-- a vehicle may also be considered your pet
return "VEHICLE"
end
if UnitIsUnit(unit, "pet") then
return "PET"
end
if not UnitIsPlayer(unit) then
return "TARGET"
end
local id = UnitInRaid(unit)
if id then
return "RAID_PLAYER", id
end
if UnitInParty(unit) then
return "PARTY"
end
return "PLAYER"
end
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
if UnitPopupFrames then
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown" UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
end
IceHUD.DropdownUnit = nil IceHUD.DropdownUnit = nil
UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function() UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
if not IceHUD.DropdownUnit then if not IceHUD.DropdownUnit then
return return
end end
local menu, id = figure_unit_menu(IceHUD.DropdownUnit) local menu, id = figure_unit_menu(IceHUD.DropdownUnit)
if menu then if menu then
menu = IceHUD.MungeUnitMenu(menu) menu = IceHUD.MungeUnitMenu(menu)
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id) UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
end end
end, "MENU", nil) end, "MENU", nil)
end

View File

@ -1,7 +1,7 @@
## Interface: 90200 ## Interface: 90205
## Interface-Retail: 90200 ## Interface-Retail: 90205
## Interface-Classic: 11402 ## Interface-Classic: 11403
## Interface-BCC: 20503 ## Interface-BCC: 20504
## Author: Parnic, originally created by Iceroth ## Author: Parnic, originally created by Iceroth
## Name: IceHUD ## Name: IceHUD
## Title: IceHUD |cff7fff7f-Ace3-|r ## Title: IceHUD |cff7fff7f-Ace3-|r

View File

@ -1,7 +1,7 @@
## Interface: 90200 ## Interface: 90205
## Interface-Retail: 90200 ## Interface-Retail: 90205
## Interface-Classic: 11402 ## Interface-Classic: 11403
## Interface-BCC: 20503 ## Interface-BCC: 20504
## Title: IceHUD |cff7fff7f-Options-|r ## Title: IceHUD |cff7fff7f-Options-|r
## Author: Parnic ## Author: Parnic
## Version: @project-version@ ## Version: @project-version@

View File

@ -1,5 +1,11 @@
# Changelog # Changelog
v1.13.14:
- Fixed target health updating infrequently on Classic.
- Fixed compatibility with WoW 9.2.5.
- Updated TOC for all game flavors.
v1.13.13: v1.13.13:
- Slight optimization of Zereth Mortis puzzle detection logic. - Slight optimization of Zereth Mortis puzzle detection logic.

View File

@ -1,7 +1,7 @@
# Changelog # Changelog
v1.13.13: v1.13.14:
- Slight optimization of Zereth Mortis puzzle detection logic. - Fixed target health updating infrequently on Classic.
- Fixed target health updating infrequently on Classic-BC. - Fixed compatibility with WoW 9.2.5.
- Fixed reported error in TargetInvuln module. - Updated TOC for all game flavors.