fix: defer UnitClass + guard InterfaceOptions for CoA; port Textures/*.tga to BLP (raw3)
All checks were successful
release / release (push) Successful in 2s
All checks were successful
release / release (push) Successful in 2s
This commit is contained in:
parent
db09f308e2
commit
914658af36
23 changed files with 63 additions and 54 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1405,7 +1405,8 @@
|
|||
<Anchors><Anchor point="TOPLEFT"><Offset><AbsDimension x="40" y="-155" /></Offset></Anchor></Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
InterfaceOptionsFrameOkay_OnClick()
|
||||
-- CoA/3.3.5a: InterfaceOptionsFrameOkay_OnClick is retail-only; guard it.
|
||||
if InterfaceOptionsFrameOkay_OnClick then InterfaceOptionsFrameOkay_OnClick() end
|
||||
HideUIPanel(GameMenuFrame)
|
||||
PawnUIShow()
|
||||
</OnClick>
|
||||
|
|
|
|||
BIN
Pawn/Textures/CompareBanner.blp
Normal file
BIN
Pawn/Textures/CompareBanner.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/CompareBar.blp
Normal file
BIN
Pawn/Textures/CompareBar.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/CompareBarLeft.blp
Normal file
BIN
Pawn/Textures/CompareBarLeft.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/CompareBarRight.blp
Normal file
BIN
Pawn/Textures/CompareBarRight.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/HorizontalBar.blp
Normal file
BIN
Pawn/Textures/HorizontalBar.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/PawnButton.blp
Normal file
BIN
Pawn/Textures/PawnButton.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/PawnLogo.blp
Normal file
BIN
Pawn/Textures/PawnLogo.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/PawnUIHeader.blp
Normal file
BIN
Pawn/Textures/PawnUIHeader.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/Question.blp
Normal file
BIN
Pawn/Textures/Question.blp
Normal file
Binary file not shown.
Binary file not shown.
BIN
Pawn/Textures/UpgradeArrowBig.blp
Normal file
BIN
Pawn/Textures/UpgradeArrowBig.blp
Normal file
Binary file not shown.
Binary file not shown.
109
Pawn/Wowhead.lua
109
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue