Compare commits

...

5 Commits

Author SHA1 Message Date
b65909c570 Wrath updates for Paladin GCD, Rogue SnD 2022-08-30 22:25:16 -05:00
b33a82622f Update changelogs 2022-08-30 22:03:46 -05:00
96a8fb2c3d Bump TOC for retail 2022-08-30 22:01:00 -05:00
6c623d6965 Initial Wrath-Classic compatibility
Briefly fought a training dummy with a Death Knight and a Shaman. I'm sure stuff like Slice-and-dice will need attention for talents moving around and such.
2022-08-30 21:59:58 -05:00
d31872512e Add support for blocked submenu options
Some menus, such as when targeting other players, use mixins which are themselves menus. We have to dive down one more layer to resolve those. The official UI source does this submenu thing (as opposed to recursion) so this should exactly mimic how the base game now works.
2022-06-06 09:02:43 -05:00
11 changed files with 86 additions and 37 deletions

View File

@ -48,3 +48,8 @@ jobs:
uses: BigWigsMods/packager@master
with:
args: -g bcc -w 0
- name: Package and release for Wrath
uses: BigWigsMods/packager@master
with:
args: -g wrath -w 0

View File

@ -19,24 +19,36 @@ IceHUD.debugging = false
IceHUD.WowVer = select(4, GetBuildInfo())
IceHUD.WowMain = not WOW_PROJECT_ID or WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
IceHUD.WowClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
IceHUD.WowClassicBC = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC
IceHUD.WowClassicBC = false
IceHUD.WowClassicWrath = false
if WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC then
if not LE_EXPANSION_LEVEL_CURRENT or LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_BURNING_CRUSADE then
IceHUD.WowClassicBC = true
elseif LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_WRATH_OF_THE_LICH_KING then
IceHUD.WowClassicWrath = true
end
end
-- compatibility/feature flags
IceHUD.SpellFunctionsReturnRank = IceHUD.WowMain and IceHUD.WowVer < 80000
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC
IceHUD.EventExistsPetBarChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC and not IceHUD.WowClassicWrath
IceHUD.EventExistsPetBarChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC and not IceHUD.WowClassicWrath
IceHUD.EventExistsPlayerComboPoints = IceHUD.WowMain and IceHUD.WowVer < 30000
IceHUD.EventExistsUnitComboPoints = IceHUD.WowMain and IceHUD.WowVer < 70000
IceHUD.EventExistsUnitMaxPower = IceHUD.WowMain and IceHUD.WowVer < 80000
IceHUD.EventExistsGroupRosterUpdate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC
IceHUD.EventExistsGroupRosterUpdate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
IceHUD.EventExistsUnitDynamicFlags = IceHUD.WowMain and IceHUD.WowVer < 80000
IceHUD.PerPowerEventsExist = IceHUD.WowMain and IceHUD.WowVer < 40000
IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
IceHUD.CanTrackGCD = not IceHUD.WowClassic
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
IceHUD.UsesUIPanelButtonTemplate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
IceHUD.EventExistsSpellcastInterruptible = IceHUD.WowVer >= 30200 and not IceHUD.WowClassicWrath
IceHUD.DeathKnightUnholyFrostRunesSwapped = IceHUD.WowVer < 70300 and not IceHUD.WowClassicWrath
IceHUD.UseFallbackPaladinGCDSpell = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
@ -345,7 +357,7 @@ end
-- blizzard interface options
local blizOptionsPanel = CreateFrame("FRAME", "IceHUDConfigPanel", UIParent)
blizOptionsPanel.name = "IceHUD"
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, (IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC) and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, IceHUD.UsesUIPanelButtonTemplate and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
blizOptionsPanel.button:SetText("Open IceHUD configuration")
blizOptionsPanel.button:SetWidth(240)
blizOptionsPanel.button:SetHeight(30)
@ -772,11 +784,25 @@ local function munge_unit_menu(menu)
if data.GetMenuButtons then
local btns = data.GetMenuButtons()
for i=1, #btns do
if btns[i].IsMenu() then
local subbtns = btns[i].GetMenuButtons()
for j=1, #subbtns do
if BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()] then
found = true
break
end
end
else
if BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()] then
found = true
break
end
end
if found then
break
end
end
else
for _, v in ipairs(data) do
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
@ -797,6 +823,17 @@ local function munge_unit_menu(menu)
local new_buttons_list = {}
local btns = data.GetMenuButtons()
for i=1, #btns do
if btns[i].IsMenu() then
local subbtns = btns[i].GetMenuButtons()
for j=1, #subbtns do
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()]
if not blacklisted then
new_buttons_list[#new_buttons_list+1] = subbtns[j]
elseif blacklisted ~= true then
new_buttons_list[#new_buttons_list+1] = blacklisted
end
end
else
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()]
if not blacklisted then
new_buttons_list[#new_buttons_list+1] = btns[i]
@ -804,6 +841,7 @@ local function munge_unit_menu(menu)
new_buttons_list[#new_buttons_list+1] = blacklisted
end
end
end
new_data = data
function new_data:GetMenuButtons()

View File

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

View File

@ -1,7 +1,8 @@
## Interface: 90205
## Interface-Retail: 90205
## Interface: 90207
## Interface-Retail: 90207
## Interface-Classic: 11403
## Interface-BCC: 20504
## Interface-Wrath: 30400
## Title: IceHUD |cff7fff7f-Options-|r
## Author: Parnic
## Version: @project-version@

View File

@ -1,5 +1,14 @@
# Changelog
v1.13.15:
- Updated TOC for Retail (9.2.7).
- Added Wrath-Classic compatibility.
v1.13.14.3:
- Restored right-click menus on Info and Health bars when targeting other players.
v1.13.14.2:
- Restored right-click menus on Info and Health bars.

View File

@ -286,7 +286,7 @@ function GlobalCoolDown.prototype:GetSpellId()
MONK=100780, -- jab
}
if IceHUD.WowClassicBC or IceHUD.WowClassic then
if IceHUD.UseFallbackPaladinGCDSpell then
defaultSpells["PALADIN"] = 635
end

View File

@ -203,7 +203,7 @@ function PlayerMana.prototype:CheckVehicle()
end
function PlayerMana.prototype:ShouldUseTicker()
return IceHUD.WowVer < 30000 or (IceHUD.WowVer < 70100 and not GetCVarBool("predictedPower"))
return IceHUD.WowVer < 30000 or (IceHUD.WowVer < 70100 and not GetCVarBool("predictedPower") and not IceHUD.WowClassicWrath)
end
function PlayerMana.prototype:SetupOnUpdate(enable)

View File

@ -9,15 +9,15 @@ if CooldownFrame_Set then
end
local RUNETYPE_BLOOD = 1;
local RUNETYPE_DEATH = IceHUD.WowVer < 70300 and 2 or 3;
local RUNETYPE_FROST = IceHUD.WowVer < 70300 and 3 or 2;
local RUNETYPE_DEATH = IceHUD.DeathKnightUnholyFrostRunesSwapped and 2 or 3;
local RUNETYPE_FROST = IceHUD.DeathKnightUnholyFrostRunesSwapped and 3 or 2;
local RUNETYPE_CHROMATIC = 4;
local RUNETYPE_LEGION = 5; -- not real, but makes for an easy update
local GetRuneType = GetRuneType
if IceHUD.WowVer >= 70000 and IceHUD.WowVer < 70300 then
if IceHUD.WowVer >= 70000 and IceHUD.WowVer < 70300 and RUNETYPE_LEGION then
GetRuneType = function() return RUNETYPE_LEGION end
elseif IceHUD.WowVer >= 70300 then
elseif IceHUD.WowVer >= 70300 and GetSpecialization then
GetRuneType = function() return GetSpecialization() end
end

View File

@ -42,6 +42,10 @@ elseif IceHUD.WowClassicBC then
impSndBonusPerRank = 0.15
impSndTalentPage = 2
impSndTalentIdx = 4
elseif IceHUD.WowClassicWrath then
impSndBonusPerRank = 0.25
impSndTalentPage = 2
impSndTalentIdx = 23
end
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
@ -290,7 +294,7 @@ local function HasSpell(id)
end
local function ShouldHide()
if IceHUD.WowVer >= 90000 or IceHUD.WowClassicBC then
if IceHUD.WowVer >= 90000 or IceHUD.WowClassicBC or IceHUD.WowClassicWrath then
return false
end

View File

@ -15,7 +15,7 @@ end
function TargetCast.prototype:Enable(core)
TargetCast.super.prototype.Enable(self, core)
if IceHUD.WowVer >= 30200 then
if IceHUD.EventExistsSpellcastInterruptible then
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTIBLE", "SpellCastInterruptible")
self:RegisterEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "SpellCastNotInterruptible")
end

View File

@ -1,15 +1,6 @@
# Changelog
v1.13.14.2:
v1.13.15:
- Restored right-click menus on Info and Health bars.
v1.13.14.1:
- Restored guard around array that doesn't exist on Classic clients.
v1.13.14:
- Fixed target health updating infrequently on Classic.
- Fixed compatibility with WoW 9.2.5.
- Updated TOC for all game flavors.
- Updated TOC for Retail (9.2.7).
- Added Wrath-Classic compatibility.