diff --git a/Pawn/PawnUI.lua b/Pawn/PawnUI.lua index ad66dff..a2f307e 100644 --- a/Pawn/PawnUI.lua +++ b/Pawn/PawnUI.lua @@ -1801,8 +1801,11 @@ function PawnInterfaceOptionsFrame_OnLoad() -- NOTE: If you need anything from PawnCommon in the future, you should call PawnInitializeOptions first. -- Register the Interface Options page. + -- CoA/3.3.5a: InterfaceOptions_AddCategory is a retail-only global; guard it. PawnInterfaceOptionsFrame.name = "Pawn" - InterfaceOptions_AddCategory(PawnInterfaceOptionsFrame) + if InterfaceOptions_AddCategory then + InterfaceOptions_AddCategory(PawnInterfaceOptionsFrame) + end -- Update the version display. local Version = GetAddOnMetadata("Pawn", "Version") if Version then diff --git a/Pawn/PawnUI.xml b/Pawn/PawnUI.xml index c3b5422..bedff5e 100644 --- a/Pawn/PawnUI.xml +++ b/Pawn/PawnUI.xml @@ -1405,7 +1405,8 @@ - InterfaceOptionsFrameOkay_OnClick() + -- CoA/3.3.5a: InterfaceOptionsFrameOkay_OnClick is retail-only; guard it. + if InterfaceOptionsFrameOkay_OnClick then InterfaceOptionsFrameOkay_OnClick() end HideUIPanel(GameMenuFrame) PawnUIShow() diff --git a/Pawn/Textures/CompareBanner.blp b/Pawn/Textures/CompareBanner.blp new file mode 100644 index 0000000..d62e886 Binary files /dev/null and b/Pawn/Textures/CompareBanner.blp differ diff --git a/Pawn/Textures/CompareBanner.tga b/Pawn/Textures/CompareBanner.tga deleted file mode 100644 index 32879db..0000000 Binary files a/Pawn/Textures/CompareBanner.tga and /dev/null differ diff --git a/Pawn/Textures/CompareBar.blp b/Pawn/Textures/CompareBar.blp new file mode 100644 index 0000000..fefef4a Binary files /dev/null and b/Pawn/Textures/CompareBar.blp differ diff --git a/Pawn/Textures/CompareBar.tga b/Pawn/Textures/CompareBar.tga deleted file mode 100644 index 91b08d5..0000000 Binary files a/Pawn/Textures/CompareBar.tga and /dev/null differ diff --git a/Pawn/Textures/CompareBarLeft.blp b/Pawn/Textures/CompareBarLeft.blp new file mode 100644 index 0000000..1935456 Binary files /dev/null and b/Pawn/Textures/CompareBarLeft.blp differ diff --git a/Pawn/Textures/CompareBarLeft.tga b/Pawn/Textures/CompareBarLeft.tga deleted file mode 100644 index cdd63d0..0000000 Binary files a/Pawn/Textures/CompareBarLeft.tga and /dev/null differ diff --git a/Pawn/Textures/CompareBarRight.blp b/Pawn/Textures/CompareBarRight.blp new file mode 100644 index 0000000..665e4f3 Binary files /dev/null and b/Pawn/Textures/CompareBarRight.blp differ diff --git a/Pawn/Textures/CompareBarRight.tga b/Pawn/Textures/CompareBarRight.tga deleted file mode 100644 index f98eadb..0000000 Binary files a/Pawn/Textures/CompareBarRight.tga and /dev/null differ diff --git a/Pawn/Textures/HorizontalBar.blp b/Pawn/Textures/HorizontalBar.blp new file mode 100644 index 0000000..d36b3ba Binary files /dev/null and b/Pawn/Textures/HorizontalBar.blp differ diff --git a/Pawn/Textures/HorizontalBar.tga b/Pawn/Textures/HorizontalBar.tga deleted file mode 100644 index c030279..0000000 Binary files a/Pawn/Textures/HorizontalBar.tga and /dev/null differ diff --git a/Pawn/Textures/PawnButton.blp b/Pawn/Textures/PawnButton.blp new file mode 100644 index 0000000..fe2d6b3 Binary files /dev/null and b/Pawn/Textures/PawnButton.blp differ diff --git a/Pawn/Textures/PawnButton.tga b/Pawn/Textures/PawnButton.tga deleted file mode 100644 index e1d5596..0000000 Binary files a/Pawn/Textures/PawnButton.tga and /dev/null differ diff --git a/Pawn/Textures/PawnLogo.blp b/Pawn/Textures/PawnLogo.blp new file mode 100644 index 0000000..aeaa7a1 Binary files /dev/null and b/Pawn/Textures/PawnLogo.blp differ diff --git a/Pawn/Textures/PawnLogo.tga b/Pawn/Textures/PawnLogo.tga deleted file mode 100644 index 4936d80..0000000 Binary files a/Pawn/Textures/PawnLogo.tga and /dev/null differ diff --git a/Pawn/Textures/PawnUIHeader.blp b/Pawn/Textures/PawnUIHeader.blp new file mode 100644 index 0000000..c4b3d3f Binary files /dev/null and b/Pawn/Textures/PawnUIHeader.blp differ diff --git a/Pawn/Textures/PawnUIHeader.tga b/Pawn/Textures/PawnUIHeader.tga deleted file mode 100644 index b9b10fd..0000000 Binary files a/Pawn/Textures/PawnUIHeader.tga and /dev/null differ diff --git a/Pawn/Textures/Question.blp b/Pawn/Textures/Question.blp new file mode 100644 index 0000000..2ac3ff9 Binary files /dev/null and b/Pawn/Textures/Question.blp differ diff --git a/Pawn/Textures/Question.tga b/Pawn/Textures/Question.tga deleted file mode 100644 index b6903f1..0000000 Binary files a/Pawn/Textures/Question.tga and /dev/null differ diff --git a/Pawn/Textures/UpgradeArrowBig.blp b/Pawn/Textures/UpgradeArrowBig.blp new file mode 100644 index 0000000..4c4567b Binary files /dev/null and b/Pawn/Textures/UpgradeArrowBig.blp differ diff --git a/Pawn/Textures/UpgradeArrowBig.tga b/Pawn/Textures/UpgradeArrowBig.tga deleted file mode 100644 index 641658d..0000000 Binary files a/Pawn/Textures/UpgradeArrowBig.tga and /dev/null differ diff --git a/Pawn/Wowhead.lua b/Pawn/Wowhead.lua index d6a3559..d6c2e4c 100644 --- a/Pawn/Wowhead.lua +++ b/Pawn/Wowhead.lua @@ -420,62 +420,67 @@ PawnAddPluginScale( if not PawnWowheadScaleProviderOptions then PawnWowheadScaleProviderOptions = { } end if not PawnWowheadScaleProviderOptions.LastAdded then PawnWowheadScaleProviderOptions.LastAdded = 0 end -local _, Class = UnitClass("player") -if PawnWowheadScaleProviderOptions.LastAdded < 1 then - -- Enable round one of scales based on the player's class. - if Class == "WARRIOR" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorFury"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorTank"), true) - elseif Class == "PALADIN" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinHoly"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinTank"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinRetribution"), true) - elseif Class == "HUNTER" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterBeastMastery"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterMarksman"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterSurvival"), true) - elseif Class == "ROGUE" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueAssassination"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueCombat"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueSubtlety"), true) - elseif Class == "PRIEST" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestDiscipline"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestHoly"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestShadow"), true) - elseif Class == "DEATHKNIGHT" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodDps"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodTank"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostDps"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostTank"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightUnholyDps"), true) - elseif Class == "SHAMAN" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanElemental"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanEnhancement"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanRestoration"), true) - elseif Class == "MAGE" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageArcane"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFire"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFrost"), true) - elseif Class == "WARLOCK" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockAffliction"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDemonology"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDestruction"), true) - elseif Class == "DRUID" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidBalance"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralDps"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralTank"), true) - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidRestoration"), true) +-- CoA/3.3.5a: UnitClass("player") returns nil at file-load and even at VARIABLES_LOADED on this client. +-- Defer the class-based auto-enable one frame so the unit is fully initialised. +local _PawnWowheadLastAdded = PawnWowheadScaleProviderOptions.LastAdded +C_Timer.After(0, function() + local _, Class = UnitClass("player") + if _PawnWowheadLastAdded < 1 then + -- Enable round one of scales based on the player's class. + if Class == "WARRIOR" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorFury"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorTank"), true) + elseif Class == "PALADIN" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinHoly"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinTank"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinRetribution"), true) + elseif Class == "HUNTER" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterBeastMastery"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterMarksman"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterSurvival"), true) + elseif Class == "ROGUE" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueAssassination"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueCombat"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueSubtlety"), true) + elseif Class == "PRIEST" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestDiscipline"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestHoly"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestShadow"), true) + elseif Class == "DEATHKNIGHT" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodDps"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodTank"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostDps"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostTank"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightUnholyDps"), true) + elseif Class == "SHAMAN" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanElemental"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanEnhancement"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanRestoration"), true) + elseif Class == "MAGE" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageArcane"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFire"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFrost"), true) + elseif Class == "WARLOCK" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockAffliction"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDemonology"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDestruction"), true) + elseif Class == "DRUID" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidBalance"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralDps"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralTank"), true) + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidRestoration"), true) + end end -end -if PawnWowheadScaleProviderOptions.LastAdded < 2 then - if Class == "WARRIOR" then - PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorArms"), true) + if _PawnWowheadLastAdded < 2 then + if Class == "WARRIOR" then + PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorArms"), true) + end end -end --- Don't reenable those scales again after the user has disabled them previously. -PawnWowheadScaleProviderOptions.LastAdded = 2 + -- Don't reenable those scales again after the user has disabled them previously. + PawnWowheadScaleProviderOptions.LastAdded = 2 +end) -- After this function terminates there's no need for it anymore, so cause it to self-destruct to save memory. PawnWowheadScaleProvider_AddScales = nil