fix: defer UnitClass + guard InterfaceOptions for CoA; port Textures/*.tga to BLP (raw3)
release / release (push) Successful in 3s
release / release (push) Successful in 3s
This commit is contained in:
+57
-52
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user