diff --git a/Libs/DF/dropdown.lua b/Libs/DF/dropdown.lua
index 2776bb91..45c9fb15 100644
--- a/Libs/DF/dropdown.lua
+++ b/Libs/DF/dropdown.lua
@@ -592,7 +592,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
local name = button:GetName() .. "Row" .. i
local parent = scrollChild
- _this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
+ --_this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
+ _this_row = DF:CreateDropdownButton (parent, name)
local anchor_i = i-1
_this_row:SetPoint ("topleft", parent, "topleft", 5, (-anchor_i*20)-5)
_this_row:SetPoint ("topright", parent, "topright", -5, (-anchor_i*20)-5)
@@ -600,6 +601,9 @@ function DetailsFrameworkDropDownOnMouseDown (button)
object.menus [i] = _this_row
end
+ _this_row:SetFrameStrata (_this_row:GetParent():GetFrameStrata())
+ _this_row:SetFrameLevel (_this_row:GetParent():GetFrameLevel()+10)
+
_this_row.icon:SetTexture (_table.icon)
if (_table.icon) then
@@ -697,8 +701,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
scrollFrame:SetWidth (frame_witdh+20)
scrollChild:SetWidth (frame_witdh+20)
--height
- scrollBorder:SetHeight (size+20)
- scrollFrame:SetHeight (size)
+ scrollBorder:SetHeight (size+2)
+ scrollFrame:SetHeight (size+2)
scrollChild:SetHeight ((showing*20)+20)
--mouse over texture
mouseOverTexture:SetWidth (frame_witdh-7)
@@ -718,8 +722,8 @@ function DetailsFrameworkDropDownOnMouseDown (button)
scrollFrame:SetWidth (frame_witdh)
scrollChild:SetWidth (frame_witdh)
--height
- scrollBorder:SetHeight ((showing*20) + 25)
- scrollFrame:SetHeight ((showing*20) + 25)
+ scrollBorder:SetHeight ((showing*20) + 10)
+ scrollFrame:SetHeight ((showing*20) + 10)
--mouse over texture
mouseOverTexture:SetWidth (frame_witdh-10)
--selected
@@ -933,7 +937,9 @@ function DF:NewDropDown (parent, container, name, member, w, h, func, default, t
--> misc
DropDownObject.container = container
- DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
+ --DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
+ DropDownObject.dropdown = DF:CreateNewDropdownFrame (parent, name)
+
DropDownObject.widget = DropDownObject.dropdown
DropDownObject.__it = {nil, nil}
@@ -1022,4 +1028,135 @@ function DF:NewDropDown (parent, container, name, member, w, h, func, default, t
return DropDownObject
-end
\ No newline at end of file
+end
+
+local default_backdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
+edgeSize = 1, tile = true, tileSize = 16, insets = {left = 1, right = 1, top = 0, bottom = 1}}
+local border_backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, insets = {left = 0, right = 0, top = 0, bottom = 0}}
+local child_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 256, insets = {left = 0, right = 0, top = 0, bottom = 0}}
+
+function DF:CreateNewDropdownFrame (parent, name)
+ local f = CreateFrame ("button", name, parent)
+ f:SetBackdrop (default_backdrop)
+ f:SetSize (150, 20)
+
+ local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "BACKGROUND")
+ statusbar:SetPoint ("topleft", f, "topleft", 3, -3)
+ statusbar:SetPoint ("bottomright", f, "bottomright", -3, 3)
+ f.statusbar = statusbar
+
+ local icon = f:CreateTexture ("$parent_IconTexture", "ARTWORK")
+ icon:SetPoint ("left", f, "left", 2, 0)
+ icon:SetSize (20, 20)
+ icon:SetTexture ([[Interface\COMMON\UI-ModelControlPanel]])
+ icon:SetTexCoord (0.625, 0.78125, 0.328125, 0.390625)
+ icon:SetVertexColor (1, 1, 1, 0.4)
+ f.icon = icon
+
+ local text = f:CreateFontString ("$parent_Text", "ARTWORK", "GameFontHighlightSmall")
+ text:SetPoint ("left", icon, "right", 5, 0)
+ text:SetJustifyH ("left")
+ text:SetText ("no option selected")
+ text:SetTextColor (1, 1, 1, 0.4)
+ DF:SetFontSize (text, 10)
+ f.text = text
+
+ local arrow = f:CreateTexture ("$parent_ArrowTexture2", "OVERLAY")
+ arrow:SetPoint ("right", f, "right", 5, -1)
+ arrow:SetBlendMode ("ADD")
+ arrow:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Highlight]])
+ arrow:Hide()
+ arrow:SetSize (32, 28)
+ f.arrowTexture2 = arrow
+
+ local buttonTexture = f:CreateTexture ("$parent_ArrowTexture", "OVERLAY")
+ buttonTexture:SetPoint ("right", f, "right", 5, -1)
+ buttonTexture:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Up]])
+ buttonTexture:SetSize (32, 28)
+ f.arrowTexture = buttonTexture
+
+ --scripts
+ f:SetScript ("OnSizeChanged", DetailsFrameworkDropDownOnSizeChanged)
+ f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOnMouseDown)
+
+ --on load
+ f:SetBackdropColor (1, 1, 1, .5)
+ f.arrowTexture:SetDrawLayer ("OVERLAY", 1)
+ f.arrowTexture2:SetDrawLayer ("OVERLAY", 2)
+
+ --dropdown
+ local border = CreateFrame ("frame", "$Parent_Border", f)
+ border:Hide()
+ border:SetFrameStrata ("FULLSCREEN")
+ border:SetSize (150, 150)
+ border:SetPoint ("topleft", f, "bottomleft")
+ border:SetBackdrop (border_backdrop)
+ border:SetScript ("OnHide", DetailsFrameworkDropDownOptionsFrameOnHide)
+ border:SetBackdropColor (0, 0, 0, 0.92)
+ border:SetBackdropBorderColor (0, 0, 0, 1)
+ f.dropdownborder = border
+
+ local scroll = CreateFrame ("ScrollFrame", "$Parent_ScrollFrame", f)
+ scroll:Hide()
+ scroll:SetFrameStrata ("FULLSCREEN")
+ scroll:SetSize (150, 150)
+ scroll:SetPoint ("topleft", f, "bottomleft", 0, 0)
+ f.dropdownframe = scroll
+
+ local child = CreateFrame ("frame", "$Parent_ScrollChild", scroll)
+ child:SetSize (150, 150)
+ child:SetPoint ("topleft", scroll, "topleft", 0, 0)
+ child:SetBackdrop (child_backdrop)
+ child:SetBackdropColor (0, 0, 0, 1)
+
+ local selected = child:CreateTexture ("$parent_SelectedTexture", "BACKGROUND")
+ selected:SetSize (150, 16)
+ selected:Hide()
+ selected:SetPoint ("left", child, "left", 2, 0)
+ selected:SetTexture ([[Interface\RAIDFRAME\Raid-Bar-Hp-Fill]])
+ child.selected = selected
+
+ local mouseover = child:CreateTexture ("$parent_MouseOverTexture", "ARTWORK")
+ mouseover:SetBlendMode ("ADD")
+ mouseover:Hide()
+ mouseover:SetTexture ([[Interface\Buttons\UI-Listbox-Highlight]])
+ mouseover:SetSize (150, 15)
+ mouseover:SetPoint ("left", child, "left", 2, 0)
+ child.mouseover = mouseover
+
+ scroll:SetScrollChild (child)
+ tinsert (UISpecialFrames, f.dropdownborder:GetName())
+ tinsert (UISpecialFrames, f.dropdownframe:GetName())
+
+ return f
+end
+
+function DF:CreateDropdownButton (parent, name)
+
+ local f = CreateFrame ("button", name, parent)
+ f:SetSize (150, 20)
+
+ local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "ARTWORK")
+ statusbar:SetPoint ("left", f, "left", 1, 0)
+ statusbar:SetPoint ("right", f, "right", -10, 0)
+ statusbar:SetSize (150, 20)
+ f.statusbar = statusbar
+
+ local icon = f:CreateTexture ("$parent_IconTexture", "OVERLAY")
+ icon:SetPoint ("left", f, "left", 2, 0)
+ icon:SetSize (20, 20)
+ icon:SetTexture ([[Interface\ICONS\Spell_ChargePositive]])
+ f.icon = icon
+
+ local text = f:CreateFontString ("$parent_Text", "OVERLAY", "GameFontHighlightSmall")
+ text:SetPoint ("left", icon, "right", 5, 0)
+ text:SetJustifyH ("left")
+ DF:SetFontSize (text, 10)
+ f.label = text
+
+ f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOptionClick)
+ f:SetScript ("OnEnter", DetailsFrameworkDropDownOptionOnEnter)
+ f:SetScript ("OnLeave", DetailsFrameworkDropDownOptionOnLeave)
+
+ return f
+end
diff --git a/Libs/DF/dropdown.xml b/Libs/DF/dropdown.xml
index 1d23d337..d5eece96 100644
--- a/Libs/DF/dropdown.xml
+++ b/Libs/DF/dropdown.xml
@@ -79,13 +79,10 @@
-
+
-
-
-
@@ -104,7 +101,7 @@
-
+
@@ -112,12 +109,21 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -222,6 +228,10 @@
+
+ self:SetFrameStrata (self:GetParent():GetFrameStrata())
+ self:SetFrameLevel (self:GetParent():GetFrameLevel()+10)
+
DetailsFrameworkDropDownOptionClick (self);
diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua
index 990f6f50..9d3e173f 100644
--- a/Libs/DF/fw.lua
+++ b/Libs/DF/fw.lua
@@ -1,5 +1,5 @@
-local dversion = 27
+local dversion = 29
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary (major, minor)
@@ -111,6 +111,8 @@ local embed_functions = {
"FindHighestParent",
"OpenInterfaceProfile",
"CreateInCombatTexture",
+ "CreateAnimationHub",
+ "CreateAnimation",
}
DF.table = {}
@@ -1160,3 +1162,39 @@ function DF:Mixin (object, ...)
return object;
end
+
+-----------------------------
+
+function DF:CreateAnimationHub (parent, onPlay, onFinished)
+ local newAnimation = parent:CreateAnimationGroup()
+ newAnimation:SetScript ("OnPlay", onPlay)
+ newAnimation:SetScript ("OnFinished", onFinished)
+ newAnimation.NextAnimation = 1
+ return newAnimation
+end
+
+function DF:CreateAnimation (animation, type, duration, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
+ local anim = animation:CreateAnimation (type)
+
+ anim:SetOrder (animation.NextAnimation)
+ anim:SetDuration (duration)
+
+ if (type == "Alpha") then
+ anim:SetFromAlpha (arg1)
+ anim:SetToAlpha (arg2)
+
+ elseif (type == "Scale") then
+ anim:SetFromScale (arg1, arg2)
+ anim:SetToScale (arg3, arg4)
+ anim:SetOrigin (arg5 or "center", arg6 or 0, arg7 or 0) --point, x, y
+
+ elseif (type == "Rotation") then
+ anim:SetDegrees (arg1) --degree
+ anim:SetOrigin (arg2 or "center", arg3 or 0, arg4 or 0) --point, x, y
+ end
+
+ animation.NextAnimation = animation.NextAnimation + 1
+ return anim
+end
+
+
diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua
index 18cdc779..d911a541 100644
--- a/Libs/DF/panel.lua
+++ b/Libs/DF/panel.lua
@@ -2523,7 +2523,7 @@ local draw_overlay = function (self, this_overlay, overlayData, color)
local pixel = self.Graphic:GetWidth() / self.TimeScale
local index = 1
- local r, g, b = unpack (color)
+ local r, g, b = unpack (color or line_default_color)
for i = 1, #overlayData, 2 do
local aura_start = overlayData [i]
diff --git a/Libs/LibGroupInSpecT-1.1/LibGroupInSpecT-1.1.lua b/Libs/LibGroupInSpecT-1.1/LibGroupInSpecT-1.1.lua
index 01ae05b8..501fdd29 100644
--- a/Libs/LibGroupInSpecT-1.1/LibGroupInSpecT-1.1.lua
+++ b/Libs/LibGroupInSpecT-1.1/LibGroupInSpecT-1.1.lua
@@ -37,17 +37,6 @@
-- }
-- ...
-- }
--- .glyphs = {
--- [] = {
--- .idx -- 1 to NUM_GLYPH_SLOTS
--- .glyph_id
--- .glyph_type
--- .name_localized
--- .icon
--- .spell_id
--- }
--- ...
--- },
-- .lku -- last known unit id
-- .not_visible
--
@@ -73,7 +62,7 @@
-- Returns an array with the set of unit ids for the current group.
--]]
-local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 79 $"):match ("(%d+)") or 0)
+local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 83 $"):match ("(%d+)") or 0)
if not LibStub then error(MAJOR.." requires LibStub") end
local lib = LibStub:NewLibrary (MAJOR, MINOR)
@@ -88,7 +77,7 @@ local REMOVE_EVENT = "GroupInSpecT_Remove"
local INSPECT_READY_EVENT = "GroupInSpecT_InspectReady"
local COMMS_PREFIX = "LGIST11"
-local COMMS_FMT = "0"
+local COMMS_FMT = "1"
local COMMS_DELIM = "\a"
local INSPECT_DELAY = 1.5
@@ -161,7 +150,6 @@ end
local CanInspect = _G.CanInspect
local ClearInspectPlayer = _G.ClearInspectPlayer
local GetClassInfo = _G.GetClassInfo
-local GetGlyphSocketInfo = _G.GetGlyphSocketInfo
local GetNumSubgroupMembers = _G.GetNumSubgroupMembers
local GetNumSpecializationsForClassID = _G.GetNumSpecializationsForClassID
local GetPlayerInfoByGUID = _G.GetPlayerInfoByGUID
@@ -198,7 +186,7 @@ local global_spec_id_roles_detailed = {
-- Hunter
[253] = "ranged", -- Beast Mastery
[254] = "ranged", -- Marksmanship
- [255] = "ranged", -- Survival
+ [255] = "melee", -- Survival
-- Mage
[62] = "ranged", -- Arcane
[63] = "ranged", -- Fire
@@ -241,25 +229,11 @@ local class_fixed_roles = {
}
local class_fixed_roles_detailed = {
- HUNTER = "ranged",
MAGE = "ranged",
ROGUE = "melee",
WARLOCK = "ranged",
}
-local warrior_protection_spec_id = 73
-local warrior_anger_management_talent = 21204
-local warrior_ravager_talent = 21205
-local warrior_gladiators_resolve_talent = 21206
-local warrior_gladiator_stance = GetSpellInfo(156291)
-
-local function HasGladiatorStance (unit, info)
- -- Check for "not the other two level-100 talents" in case talent info isn't ready.
- local talents = info.talents
- return talents and (talents[warrior_gladiators_resolve_talent] or (not talents[warrior_anger_management_talent] and not talents[warrior_ravager_talent])) and UnitBuff(unit, warrior_gladiator_stance)
-end
-
-
-- Inspects only work after being fully logged in, so track that
function lib:PLAYER_LOGIN ()
self.state.logged_in = true
@@ -275,8 +249,6 @@ function lib:PLAYER_LOGIN ()
frame:RegisterEvent ("UNIT_SPELLCAST_SUCCEEDED")
frame:RegisterEvent ("UNIT_NAME_UPDATE")
frame:RegisterEvent ("UNIT_AURA")
- frame:RegisterEvent ("GLYPH_ADDED")
- frame:RegisterEvent ("GLYPH_REMOVED")
frame:RegisterEvent ("CHAT_MSG_ADDON")
RegisterAddonMessagePrefix (COMMS_PREFIX)
@@ -321,7 +293,6 @@ end
-- Caches to deal with API shortcomings as well as performance
lib.static_cache.global_specs = {} -- [gspec] -> { .idx, .name_localized, .description, .icon, .background, .role }
-lib.static_cache.glyph_info = {} -- [spell_id] -> { .idx, .name_localized, .icon, .glyph_type, .glyph_id }
lib.static_cache.class_to_class_id = {} -- [CLASS] -> class_id
-- The talents cache can no longer be pre-fetched on login, but is now constructed class-by-class as we inspect people.
@@ -540,15 +511,6 @@ function lib:BuildInfo (unit)
info.spec_role_detailed = global_spec_id_roles_detailed[gspec_id]
end
- -- Fix role if unit is a protection warrior in Gladiator Stance.
- -- Check for "not the other two level-100 talents" in case talent info isn't ready.
- if info.global_spec_id == warrior_protection_spec_id then
- if HasGladiatorStance (unit, info) then
- info.spec_role = "DAMAGER"
- info.spec_role_detailed = "melee"
- end
- end
-
if not info.spec_role then info.spec_role = class and class_fixed_roles[class] end
if not info.spec_role_detailed then info.spec_role_detailed = class and class_fixed_roles_detailed[class] end
@@ -568,24 +530,7 @@ function lib:BuildInfo (unit)
end
end
- info.glyphs = wipe (info.glyphs or {})
- local glyph_info = self.static_cache.glyph_info
- for idx = 1, (NUM_GLYPH_SLOTS or 0) do
- local enabled, glyph_type, _, spell_id, icon, glyph_id = GetGlyphSocketInfo (idx, nil, is_inspect, unit)
- if spell_id and not glyph_info[spell_id] then -- not already available in the cache
- glyph_info[spell_id] = {}
- local glyph = glyph_info[spell_id]
- glyph.spell_id = spell_id
- glyph.glyph_type = glyph_type
- glyph.idx = idx
- glyph.icon = icon
- glyph.glyph_id = glyph_id
- glyph.name_localized = spell_id and (GetSpellInfo (spell_id)) or nil
- end
- if enabled and spell_id then
- info.glyphs[spell_id] = glyph_info[spell_id]
- end
- end
+ info.glyphs = wipe (info.glyphs or {}) -- kept for addons that still refer to this
if is_inspect and not UnitIsVisible (unit) and UnitIsConnected (unit) then info.not_visible = true end
@@ -676,8 +621,8 @@ function lib:SendLatestSpecData ()
local info = self.cache[guid]
if not info then return end
- -- fmt, guid, global_spec_id, talent1 -> MAX_TALENT_TIERS, glyph1 -> NUM_GLYPH_SLOTS, glyph1 detail, glyph 2 detail,
- -- sequentially, allow no gaps for missing talents/glyphs we decode by index on the receiving end.
+ -- fmt, guid, global_spec_id, talent1 -> MAX_TALENT_TIERS
+ -- sequentially, allow no gaps for missing talents we decode by index on the receiving end.
local datastr = COMMS_FMT..COMMS_DELIM..guid..COMMS_DELIM..(info.global_spec_id or 0)
local talentCount = 1
for k in pairs(info.talents) do
@@ -688,19 +633,6 @@ function lib:SendLatestSpecData ()
datastr = datastr..COMMS_DELIM..0
end
- local glyphCount = 1
- local glyphstr = ""
- for k,glyph in pairs(info.glyphs) do -- specifically ordered because we pull them out by index on the other end
- datastr = datastr..COMMS_DELIM..k
- glyphstr = glyphstr..COMMS_DELIM..(glyph.idx or "")..COMMS_DELIM..(glyph.glyph_id or "")..COMMS_DELIM..(glyph.glyph_type or "")
- glyphCount = glyphCount + 1
- end
- for i=glyphCount,(NUM_GLYPH_SLOTS or 0) do
- datastr = datastr..COMMS_DELIM..0
- glyphstr = glyphstr..COMMS_DELIM..COMMS_DELIM..COMMS_DELIM -- unused entry, but keep format sound
- end
- datastr = datastr..glyphstr
-
--[===[@debug@
debug ("Sending LGIST update to "..scope) --@end-debug@]===]
SendAddonMessage(COMMS_PREFIX, datastr, scope)
@@ -722,8 +654,7 @@ msg_idx.fmt = 1
msg_idx.guid = msg_idx.fmt + 1
msg_idx.global_spec_id = msg_idx.guid + 1
msg_idx.talents = msg_idx.global_spec_id + 1
-msg_idx.glyphs = msg_idx.talents + MAX_TALENT_TIERS
-msg_idx.glyph_detail = msg_idx.glyphs + (NUM_GLYPH_SLOTS or 0)
+msg_idx.end_talents = msg_idx.talents + MAX_TALENT_TIERS - 1
function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
if prefix ~= COMMS_PREFIX or scope ~= self.commScope then return end
@@ -768,20 +699,11 @@ function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
info.spec_role = gspecs[gspec_id].role
info.spec_role_detailed = global_spec_id_roles_detailed[gspec_id]
- -- Fix role if unit is a protection warrior in Gladiator Stance.
- -- Check for "not the other two level-100 talents" in case talent info isn't ready.
- if info.global_spec_id == warrior_protection_spec_id then
- if HasGladiatorStance (unit, info) then
- info.spec_role = "DAMAGER"
- info.spec_role_detailed = "melee"
- end
- end
-
local need_inspect = nil
info.talents = wipe (info.talents or {})
local talents = self.static_cache.talents[info.class_id]
if talents then -- The group entry is created before we have inspect-data, so may not have cached talents yet
- for i = msg_idx.talents, msg_idx.glyphs - 1 do
+ for i = msg_idx.talents, msg_idx.end_talents do
local talent_id = tonumber (data[i])
if talent_id and talent_id > 0 then
if talents[talent_id] then
@@ -797,29 +719,7 @@ function lib:CHAT_MSG_ADDON (prefix, datastr, scope, sender)
need_inspect = 1
end
- local glyph_info = self.static_cache.glyph_info
- info.glyphs = wipe (info.glyphs or {})
- for i = msg_idx.glyphs, msg_idx.glyph_detail - 1 do
- local spell_id = tonumber (data[i])
- if spell_id and spell_id > 0 then
- if not glyph_info[spell_id] then -- not yet in cache, add it
- glyph_info[spell_id] = {}
- local glyph = glyph_info[spell_id]
- glyph.spell_id = spell_id
-
- local offs = (i - msg_idx.glyphs) * 3 -- glyph details come in 3s (idx,glyph_id,glyph_type) so offset our index
- local start = msg_idx.glyph_detail
- glyph.idx = tonumber (data[start + offs])
- glyph.glyph_id = tonumber (data[start + offs + 1])
- glyph.glyph_type = tonumber (data[start + offs + 2])
-
- local name, _, icon = GetSpellInfo(spell_id)
- glyph.name_localized = name
- glyph.icon = icon
- end
- info.glyphs[spell_id] = glyph_info[spell_id]
- end
- end
+ info.glyphs = wipe (info.glyphs or {}) -- kept for addons that still refer to this
local mainq, staleq = self.state.mainq, self.state.staleq
local want_inspect = not need_inspect and self.inspect_ready_used and (mainq[guid] or staleq[guid]) and 1 or nil
@@ -858,16 +758,6 @@ function lib:PLAYER_SPECIALIZATION_CHANGED (unit)
end
-function lib:GLYPH_ADDED ()
- self:DoPlayerUpdate ()
-end
-
-
-function lib:GLYPH_REMOVED ()
- self:DoPlayerUpdate ()
-end
-
-
function lib:UNIT_NAME_UPDATE (unit)
local group = self.cache
local guid = UnitGUID (unit)
@@ -907,22 +797,6 @@ function lib:UNIT_AURA (unit)
info.not_visible = true
end
end
-
- -- Fix role if unit is a protection warrior in Gladiator Stance.
- -- Check for "not the other two level-100 talents" in case talent info isn't ready.
- if info.global_spec_id == warrior_protection_spec_id then
- if HasGladiatorStance (unit, info) then
- if info.spec_role ~= "DAMAGER" then
- info.spec_role = "DAMAGER"
- info.spec_role_detailed = "melee"
- self.events:Fire (UPDATE_EVENT, guid, unit, info)
- end
- elseif info.spec_role ~= "TANK" then
- info.spec_role = "TANK"
- info.spec_role_detailed = "tank"
- self.events:Fire (UPDATE_EVENT, guid, unit, info)
- end
- end
end
end
diff --git a/Libs/LibItemUpgradeInfo-1.0/Core.lua b/Libs/LibItemUpgradeInfo-1.0/Core.lua
index 35e73be7..519a280b 100644
--- a/Libs/LibItemUpgradeInfo-1.0/Core.lua
+++ b/Libs/LibItemUpgradeInfo-1.0/Core.lua
@@ -1,12 +1,17 @@
-local MAJOR, MINOR = "LibItemUpgradeInfo-1.0", 15
+local MAJOR, MINOR = "LibItemUpgradeInfo-1.0", 24
local type,tonumber,select,strsplit,GetItemInfoFromHyperlink=type,tonumber,select,strsplit,GetItemInfoFromHyperlink
local library,previous = _G.LibStub:NewLibrary(MAJOR, MINOR)
local lib=library --#lib Needed to keep Eclipse LDT happy
if not lib then return end
local pp=print
--[===[@debug@
+LoadAddOn("Blizzard_DebugTools")
+LoadAddOn("LibDebug")
if LibDebug then LibDebug() end
--@end-debug@]===]
+--@non-debug@
+local print=function() end
+--@end-non-debug@
local upgradeTable = {
[ 1] = { upgrade = 1, max = 1, ilevel = 8 },
[373] = { upgrade = 1, max = 3, ilevel = 4 },
@@ -56,6 +61,10 @@ local upgradeTable = {
[529] = { upgrade = 0, max = 2, ilevel = 0 },
[530] = { upgrade = 1, max = 2, ilevel = 5 },
[531] = { upgrade = 2, max = 2, ilevel = 10 },
+ [535] = { upgrade = 1, max = 3, ilevel = 15 },
+ [536] = { upgrade = 2, max = 3, ilevel = 30 },
+ [537] = { upgrade = 3, max = 3, ilevel = 45 },
+ [538] = { upgrade = 0, max = 3, ilevel = 0 },
}
do
@@ -64,6 +73,58 @@ do
return stub
end})
end
+-- Tooltip Scanning stuff
+local itemLevelPattern = _G.ITEM_LEVEL:gsub("%%d", "(%%d+)")
+local soulboundPattern = _G.ITEM_SOULBOUND
+local boePattern=_G.ITEM_BIND_ON_EQUIP
+local bopPattern=_G.ITEM_BIND_ON_PICKUP
+local boaPattern1=_G.ITEM_BIND_TO_BNETACCOUNT
+local boaPattern2=_G.ITEM_BNETACCOUNTBOUND
+
+local scanningTooltip
+local itemCache = setmetatable({},{__index=function(table,key) return {} end})
+local heirloomcolor
+local emptytable={}
+local function ScanTip(itemLink,itemLevel)
+ if not heirloomcolor then heirloomcolor =_G.ITEM_QUALITY_COLORS[_G.LE_ITEM_QUALITY_HEIRLOOM].hex end
+ if type(itemLink)=="number" then
+ itemLink=select(2,GetItemInfo(itemLink))
+ if not itemLink then return emptytable end
+ end
+ if type(itemCache[itemLink].ilevel)=="nil" then
+ if not scanningTooltip then
+ scanningTooltip = _G.CreateFrame("GameTooltip", "LibItemUpgradeInfoTooltip", nil, "GameTooltipTemplate")
+ scanningTooltip:SetOwner(_G.WorldFrame, "ANCHOR_NONE")
+ end
+ scanningTooltip:ClearLines()
+ local rc,message=pcall(scanningTooltip.SetHyperlink,scanningTooltip,itemLink)
+ if (not rc) then
+ return emptytable
+ end
+ -- line 1 is the item name
+ -- line 2 may be the item level, or it may be a modifier like "Heroic"
+ -- check up to line 6 just in case
+ local ilevel,soulbound,bop,boe,boa,heirloom
+ for i = 2, 6 do
+ local label, text = _G["LibItemUpgradeInfoTooltipTextLeft"..i], nil
+ if label then text=label:GetText() end
+ if text then
+ if ilevel==nil then ilevel = tonumber(text:match(itemLevelPattern)) end
+ if soulbound==nil then soulbound = text:find(soulboundPattern) end
+ if bop==nil then bop = text:find(bopPattern) end
+ if boe==nil then boe = text:find(boePattern) end
+ if boa==nil then boa = text:find(boaPattern1) end
+ if boa==nil then boa = text:find(boaPattern2) end
+ end
+ end
+ if (itemLink:find(heirloomcolor)) then
+ heirloom=true
+ end
+ itemCache[itemLink]={ilevel=ilevel or itemLevel,soulbound=soulbound,bop=bop,boe=boe,heirloom=heirloom}
+ end
+ return itemCache[itemLink]
+end
+
-- GetUpgradeID(itemString)
--
@@ -74,13 +135,13 @@ end
-- Number - The upgrade ID (possibly 0), or nil if the input is invalid or
-- does not contain upgrade info
function lib:GetUpgradeID(itemString)
- --local instaid,upgradeid =itemString:match("item:%d+:%d+:%d+:%d+:%d+:%d+:%-?%d+:%-?%d+:%d+:(%d+):%d:%d:(%d)")
- --local instaid,upgradeid =itemString:match("item:%d+:%d+:%d+:%d+:%d+:%d+:%-?%d+:%-?%d+:%d+:%d+:(%d+):%d+:%d+:(%d+)")
+ if type(itemString)~="string" then return end
local itemString = itemString:match("item[%-?%d:]+") or ""-- Standardize itemlink to itemstring
local instaid, _, numBonuses, affixes = select(12, strsplit(":", itemString, 15))
instaid=tonumber(instaid) or 7
+ numBonuses=tonumber(numBonuses) or 0
if instaid >0 and (instaid-4)%8==0 then
- return tonumber(select(numBonuses + 1, strsplit(":", affixes)))
+ return tonumber((select(numBonuses + 1, strsplit(":", affixes))))
end
end
@@ -158,7 +219,7 @@ end
-- GetHeirloomTrueLevel(itemString)
--
--- Returns the true item level for an heirloom.
+-- Returns the true item level for an heirloom (actually, returns the true level for any adapting item)
--
-- Arguments:
-- itemString - String - An itemLink or itemString denoting the item
@@ -169,58 +230,18 @@ end
-- item tooltip, the second return value is false. Otherwise
-- the second return value is true. If the input is invalid,
-- (nil, false) is returned.
-do
- -- Convert the ITEM_LEVEL constant into a pattern for our use
- local itemLevelPattern = _G["ITEM_LEVEL"]:gsub("%%d", "(%%d+)")
-
- local scanningTooltip
- local heirloomCache = {}
- function lib:GetHeirloomTrueLevel(itemString)
- if type(itemString) ~= "string" then return nil,false end
- local scantooltip=false
- local header,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14 = strsplit(":", itemString, 16)
- s13=tonumber(s13) or 0
- s14=tonumber(s14) or 0
- scantooltip=(s13==1 or s13==2) and (s14==693 or s14==615) -- Really to be better tested
- scantooltip=true
- local _, itemLink, rarity, itemLevel = GetItemInfo(itemString)
- if (not itemLink) then
- return nil,false
- end
- if not scantooltip then
- scantooltip=rarity == _G.LE_ITEM_QUALITY_HEIRLOOM
- end
- if scantooltip then
- local ilvl = heirloomCache[itemLink]
- if ilvl ~= nil then
- return ilvl, true
- end
- if not scanningTooltip then
- scanningTooltip = _G.CreateFrame("GameTooltip", "LibItemUpgradeInfoTooltip", nil, "GameTooltipTemplate")
- scanningTooltip:SetOwner(_G.WorldFrame, "ANCHOR_NONE")
- end
- scanningTooltip:ClearLines()
- local rc,message=pcall(scanningTooltip.SetHyperlink,scanningTooltip,itemLink)
- if (not rc) then
- return nil,false
- end
- -- line 1 is the item name
- -- line 2 may be the item level, or it may be a modifier like "Heroic"
- -- check up to line 4 just in case
- for i = 2, 4 do
- local label, text = _G["LibItemUpgradeInfoTooltipTextLeft"..i], nil
- if label then text=label:GetText() end
- if text then
- ilvl = tonumber(text:match(itemLevelPattern))
- if ilvl ~= nil then
- heirloomCache[itemLink] = ilvl
- return ilvl, true
- end
- end
- end
- end
- return itemLevel, false
+-- Convert the ITEM_LEVEL constant into a pattern for our use
+function lib:GetHeirloomTrueLevel(itemString)
+ if type(itemString) ~= "string" then return nil,false end
+ local _, itemLink, rarity, itemLevel = GetItemInfo(itemString)
+ if (not itemLink) then
+ return nil,false
end
+ local rc=ScanTip(itemLink,itemLevel)
+ if rc.ilevel then
+ return rc.ilevel,true
+ end
+ return itemLevel, false
end
-- GetUpgradedItemLevel(itemString)
@@ -245,6 +266,77 @@ function lib:GetUpgradedItemLevel(itemString)
end
return ilvl
end
+
+-- IsBop(itemString)
+--
+-- Check an item for Bind On Pickup.
+--
+-- Arguments:
+-- itemString - String - An itemLink or itemString denoting the item
+--
+-- Returns:
+-- Boolean - True if Bind On Pickup
+
+function lib:IsBop(itemString)
+ local rc=ScanTip(itemString)
+ return rc.bop
+end
+-- IsBoe(itemString)
+--
+-- Check an item for Bind On Equip.
+--
+-- Arguments:
+-- itemString - String - An itemLink or itemString denoting the item
+--
+-- Returns:
+-- Boolean - True if Bind On Equip
+
+function lib:IsBoe(itemString)
+ local rc=ScanTip(itemString)
+ return rc.boe
+end
+-- IsBoa(itemString)
+--
+-- Check an item for Bind On Aaccount
+--
+-- Arguments:
+-- itemString - String - An itemLink or itemString denoting the item
+--
+-- Returns:
+-- Boolean - True if Bind On Equip
+
+function lib:IsBoa(itemString)
+ local rc=ScanTip(itemString)
+ return rc.boa
+end
+
+-- IsHeirloom(itemString)
+--
+-- Check an item for Heirloom
+--
+-- Arguments:
+-- itemString - String - An itemLink or itemString denoting the item
+--
+-- Returns:
+-- Boolean - True if Heirloom
+
+-- IsHeirloom(itemString)
+--
+-- Check an item for Heirloom
+--
+-- Arguments:
+-- itemString - String - An itemLink or itemString denoting the item
+--
+-- Returns:
+-- Boolean - True if Heirloom
+
+function lib:IsHeirloom(itemString)
+ local rc=ScanTip(itemString)
+ return rc.heirloom
+end
+
+
+
local GetItemInfo=GetItemInfo
lib.itemcache=lib.itemcache or
setmetatable({miss=0,tot=0},{
@@ -316,9 +408,6 @@ function lib:GetCacheStats()
local perc=( h>0) and h/c.tot*100 or 0
return c.miss,h,perc
end
-if lib.itemframe and lib.itemframe.UnregisterEvent then
- lib.itemframe:UnregisterEvent('GET_ITEM_INFO_RECEIVED')
-end
--[===========[ ]===========]
--[===[ Debug utilities ]===]
@@ -408,7 +497,7 @@ do
pp("LibItemUpgradeInfo-1.0: |cff00ff00No changes|r")
else
pp("LibItemUpgradeInfo-1.0: |cffff0000New table:|r {")
- ppDiffTable(upgradeTable, newTable)
+ printDiffTable(upgradeTable, newTable)
pp("}")
end
else
diff --git a/Libs/LibItemUpgradeInfo-1.0/LibItemUpgradeInfo-1.0.toc b/Libs/LibItemUpgradeInfo-1.0/LibItemUpgradeInfo-1.0.toc
index 0346b8ab..b774fc00 100644
--- a/Libs/LibItemUpgradeInfo-1.0/LibItemUpgradeInfo-1.0.toc
+++ b/Libs/LibItemUpgradeInfo-1.0/LibItemUpgradeInfo-1.0.toc
@@ -1,11 +1,11 @@
-## Interface: 60200
+## Interface: 70000
## Title: Lib: ItemUpgradeInfo-1.0
## Notes: Database of item upgrade IDs
## Author: eridius
-## Version: Release-60203-15 6.2.2
-## X-Revision: efdd719
+## Version: Release-70000-24 6.2.2
+## X-Revision: f1a2b99
## X-Category: Library
-## X-Curse-Packaged-Version: Release-60203-15
+## X-Curse-Packaged-Version: Release-70000-24
## X-Curse-Project-Name: LibItemUpgradeInfo-1.0
## X-Curse-Project-ID: libitemupgradeinfo-1-0
## X-Curse-Repository-ID: wow/libitemupgradeinfo-1-0/mainline
diff --git a/Libs/LibItemUpgradeInfo-1.0/LibStub/LibStub.toc b/Libs/LibItemUpgradeInfo-1.0/LibStub/LibStub.toc
index bcb15f43..fb20db36 100644
--- a/Libs/LibItemUpgradeInfo-1.0/LibStub/LibStub.toc
+++ b/Libs/LibItemUpgradeInfo-1.0/LibStub/LibStub.toc
@@ -5,7 +5,7 @@
## X-Website: http://www.wowace.com/addons/libstub/
## X-Category: Library
## X-License: Public Domain
-## X-Curse-Packaged-Version: Release-60203-15
+## X-Curse-Packaged-Version: Release-70000-24
## X-Curse-Project-Name: LibItemUpgradeInfo-1.0
## X-Curse-Project-ID: libitemupgradeinfo-1-0
## X-Curse-Repository-ID: wow/libitemupgradeinfo-1-0/mainline
diff --git a/Libs/libs.xml b/Libs/libs.xml
index 69978b39..2c5908c5 100644
--- a/Libs/libs.xml
+++ b/Libs/libs.xml
@@ -15,5 +15,6 @@
+
\ No newline at end of file
diff --git a/boot.lua b/boot.lua
index 1fd9efcb..0ad03483 100644
--- a/boot.lua
+++ b/boot.lua
@@ -3,8 +3,8 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
- _detalhes.build_counter = 2698 --it's 2697 for release
- _detalhes.userversion = "v5.11"
+ _detalhes.build_counter = 2735 --it's 2735 for release
+ _detalhes.userversion = "v5.12"
_detalhes.realversion = 110 --core version
_detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")"
Details = _detalhes
@@ -21,7 +21,10 @@ do
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
--[[
-|cFFFFFF00v5.11 (|cFFFFCC00July 26, 2016|r|cFFFFFF00)|r:\n\n
+|cFFFFFF00v5.12 (|cFFFFCC00July 29, 2016|r|cFFFFFF00)|r:\n\n
+|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n
+|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n
+|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n
|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n
|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n
|cFFFFFF00-|r warrior rampage fix.\n\n
@@ -29,7 +32,9 @@ do
--]]
--
- Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.11 (|cFFFFCC00July 26, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
+
+ --Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
+ Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v5.12 (|cFFFFCC00July 29, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r "
diff --git a/classes/container_combatentes.lua b/classes/container_combatentes.lua
index 83996d78..ecb4e691 100644
--- a/classes/container_combatentes.lua
+++ b/classes/container_combatentes.lua
@@ -137,10 +137,9 @@
--> try to get the actor class from name
local function get_actor_class (novo_objeto, nome, flag, serial)
-
--> get spec
if (_detalhes.track_specs) then
- local have_cached = cached_specs [serial]
+ local have_cached = _detalhes.cached_specs [serial]
if (have_cached) then
novo_objeto.spec = have_cached
--> check is didn't changed the spec:
diff --git a/core/gears.lua b/core/gears.lua
index e131cccd..29670b84 100644
--- a/core/gears.lua
+++ b/core/gears.lua
@@ -8,11 +8,8 @@ local select = select
local floor = floor
local GetNumGroupMembers = GetNumGroupMembers
-
local ItemUpgradeInfo = LibStub ("LibItemUpgradeInfo-1.0")
-
---LibGroupInSpecT-1.1 is giving errors on Legion Beta
---local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1")
+local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1")
function _detalhes:UpdateGears()
diff --git a/core/parser.lua b/core/parser.lua
index 6977626d..57eb9ced 100644
--- a/core/parser.lua
+++ b/core/parser.lua
@@ -3405,6 +3405,19 @@ SPELL_POWER_OBSOLETE2 = 15;
return _detalhes.parser_functions:ZONE_CHANGED_NEW_AREA (...)
end
+ function _detalhes.parser_functions:PLAYER_SPECIALIZATION_CHANGED()
+ local specIndex = GetSpecialization()
+ if (specIndex) then
+ local specID = GetSpecializationInfo (specIndex)
+ if (specID and specID ~= 0) then
+ local guid = UnitGUID ("player")
+ if (guid) then
+ _detalhes.cached_specs [guid] = specID
+ end
+ end
+ end
+ end
+
-- ~encounter
function _detalhes.parser_functions:ENCOUNTER_START (...)
diff --git a/core/plugins_statusbar.lua b/core/plugins_statusbar.lua
index 2c550988..1cc1eb65 100644
--- a/core/plugins_statusbar.lua
+++ b/core/plugins_statusbar.lua
@@ -1662,7 +1662,7 @@ extraWindow:SetBackdropColor (0, 0, 0, 0.9)
_G.DetailsStatusBarOptionsTextStyleDropdown.MyObject:SetFixedParameter (child)
- _G.DetailsStatusBarOptionsTextColorTexture:SetTexture (child.options.textColor[1], child.options.textColor[2], child.options.textColor[3], child.options.textColor[4])
+ _G.DetailsStatusBarOptionsTextColorTexture:SetColorTexture (child.options.textColor[1], child.options.textColor[2], child.options.textColor[3], child.options.textColor[4])
_G.DetailsStatusBarOptionsSliderFontSize.MyObject:SetFixedParameter (child)
_G.DetailsStatusBarOptionsSliderFontSize.MyObject:SetValue (child.options.textSize)
diff --git a/functions/skins.lua b/functions/skins.lua
index a4c1e49f..c9f197e2 100644
--- a/functions/skins.lua
+++ b/functions/skins.lua
@@ -43,7 +43,7 @@ local _
--> install wow interface skin:
_detalhes:InstallSkin ("WoW Interface", {
- file = [[Interface\AddOns\Details\images\skins\default_skin]],
+ file = [[Interface\AddOns\Details\images\skins\default_skin.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -274,7 +274,7 @@ local _
end
_detalhes:InstallSkin ("Minimalistic", {
- file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
+ file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -496,7 +496,7 @@ local _
})
_detalhes:InstallSkin ("Minimalistic v2", {
- file = [[Interface\AddOns\Details\images\skins\classic_skin]],
+ file = [[Interface\AddOns\Details\images\skins\classic_skin.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -716,7 +716,7 @@ local _
})
_detalhes:InstallSkin ("Serenity", {
- file = [[Interface\AddOns\Details\images\skins\flat_skin]],
+ file = [[Interface\AddOns\Details\images\skins\flat_skin.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -1010,7 +1010,7 @@ local _
end
_detalhes:InstallSkin ("Forced Square", {
- file = [[Interface\AddOns\Details\images\skins\simplygray_skin]],
+ file = [[Interface\AddOns\Details\images\skins\simplygray_skin.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -1273,7 +1273,7 @@ local _
--> install imperial skin:
_detalhes:InstallSkin ("Imperial Skin", {
- file = "Interface\\AddOns\\Details\\images\\skins\\imperial_skin",
+ file = "Interface\\AddOns\\Details\\images\\skins\\imperial_skin.blp",
author = "Details!",
version = "1.1",
site = "unknown",
@@ -1395,7 +1395,7 @@ local _
_detalhes:InstallSkin ("ElvUI Frame Style", {
- file = [[Interface\AddOns\Details\images\skins\elvui]],
+ file = [[Interface\AddOns\Details\images\skins\elvui.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -1644,7 +1644,7 @@ local _
})
_detalhes:InstallSkin ("ElvUI Style II", {
- file = [[Interface\AddOns\Details\images\skins\elvui_opaque]],
+ file = [[Interface\AddOns\Details\images\skins\elvui_opaque.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -1827,7 +1827,7 @@ local _
_detalhes:InstallSkin ("New Gray", {
- file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
+ file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
@@ -2087,7 +2087,7 @@ local _
})
_detalhes:InstallSkin ("Safe Skin Legion Beta", {
- file = [[Interface\AddOns\Details\images\skins\classic_skin_v1]],
+ file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
author = "Details!",
version = "1.0",
site = "unknown",
diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua
index e7832a29..8f0a2a80 100644
--- a/gumps/janela_options.lua
+++ b/gumps/janela_options.lua
@@ -2676,7 +2676,7 @@ function window:CreateFrame17()
window:CreateLineBackground2 (frame17, "autoCurrentSlider", "autoCurrentLabel", Loc ["STRING_OPTIONS_INSTANCE_CURRENT_DESC"])
--> trash suppression
- g:NewLabel (frame17, _, "$parentTrashSuppressionLabel", "TrashSuppressionLabel", "Trash Suppression", "GameFontHighlightLeft")
+ g:NewLabel (frame17, _, "$parentTrashSuppressionLabel", "TrashSuppressionLabel", Loc ["STRING_OPTIONS_TRASH_SUPPRESSION"], "GameFontHighlightLeft")
g:NewSlider (frame17, _, "$parentTrashSuppressionSlider", "TrashSuppressionSlider", SLIDER_WIDTH, SLIDER_HEIGHT, 0, 180, 1, _detalhes.instances_suppress_trash, nil, nil, nil, options_slider_template)
frame17.TrashSuppressionSlider:SetPoint ("left", frame17.TrashSuppressionLabel, "right", 2)
@@ -2686,7 +2686,7 @@ function window:CreateFrame17()
_detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance)
end)
- window:CreateLineBackground2 (frame17, "TrashSuppressionSlider", "TrashSuppressionLabel", "For |cFFFFFF00X|r seconds, suppress auto switching to show trash segments (|cFFFFFF00only after defeat a boss encounter|r).")
+ window:CreateLineBackground2 (frame17, "TrashSuppressionSlider", "TrashSuppressionLabel", Loc ["STRING_OPTIONS_TRASH_SUPPRESSION_DESC"])
diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua
index 9a67a8a2..f2d6f33e 100644
--- a/gumps/janela_principal.lua
+++ b/gumps/janela_principal.lua
@@ -6209,6 +6209,10 @@ function _detalhes:SetUserCustomSkinFile (file)
self:ChangeSkin()
end
+function _detalhes:RefreshMicroDisplays()
+ _detalhes.StatusBar:UpdateOptions (self)
+end
+
function _detalhes:ChangeSkin (skin_name)
if (not skin_name) then
@@ -6406,6 +6410,7 @@ function _detalhes:ChangeSkin (skin_name)
--> refresh the side of the micro displays and its lock state
self:MicroDisplaysSide()
self:MicroDisplaysLock()
+ self:RefreshMicroDisplays()
--> update statusbar
if (self.show_statusbar) then
diff --git a/images/skins/classic_skin.blp b/images/skins/classic_skin.blp
deleted file mode 100644
index bca319e4..00000000
Binary files a/images/skins/classic_skin.blp and /dev/null differ
diff --git a/images/skins/classic_skin.tga b/images/skins/classic_skin.tga
new file mode 100644
index 00000000..1feae326
Binary files /dev/null and b/images/skins/classic_skin.tga differ
diff --git a/images/skins/classic_skin_v1.blp b/images/skins/classic_skin_v1.blp
deleted file mode 100644
index 2b941f53..00000000
Binary files a/images/skins/classic_skin_v1.blp and /dev/null differ
diff --git a/images/skins/classic_skin_v1.tga b/images/skins/classic_skin_v1.tga
new file mode 100644
index 00000000..98d68e7a
Binary files /dev/null and b/images/skins/classic_skin_v1.tga differ
diff --git a/images/skins/default_skin.blp b/images/skins/default_skin.blp
deleted file mode 100644
index 433b1286..00000000
Binary files a/images/skins/default_skin.blp and /dev/null differ
diff --git a/images/skins/default_skin.tga b/images/skins/default_skin.tga
new file mode 100644
index 00000000..b34e67c6
Binary files /dev/null and b/images/skins/default_skin.tga differ
diff --git a/images/skins/elvui.blp b/images/skins/elvui.blp
deleted file mode 100644
index 66440b62..00000000
Binary files a/images/skins/elvui.blp and /dev/null differ
diff --git a/images/skins/elvui.tga b/images/skins/elvui.tga
new file mode 100644
index 00000000..5a5df89a
Binary files /dev/null and b/images/skins/elvui.tga differ
diff --git a/images/skins/elvui_opaque.blp b/images/skins/elvui_opaque.blp
deleted file mode 100644
index c1e9a052..00000000
Binary files a/images/skins/elvui_opaque.blp and /dev/null differ
diff --git a/images/skins/elvui_opaque.tga b/images/skins/elvui_opaque.tga
new file mode 100644
index 00000000..4f0ef13d
Binary files /dev/null and b/images/skins/elvui_opaque.tga differ
diff --git a/images/skins/flat_skin.blp b/images/skins/flat_skin.blp
deleted file mode 100644
index 082b9428..00000000
Binary files a/images/skins/flat_skin.blp and /dev/null differ
diff --git a/images/skins/flat_skin.tga b/images/skins/flat_skin.tga
new file mode 100644
index 00000000..7aad5045
Binary files /dev/null and b/images/skins/flat_skin.tga differ
diff --git a/images/skins/overwatch.blp b/images/skins/overwatch.blp
deleted file mode 100644
index ed6d1793..00000000
Binary files a/images/skins/overwatch.blp and /dev/null differ
diff --git a/images/skins/overwatch.tga b/images/skins/overwatch.tga
new file mode 100644
index 00000000..7e0e090d
Binary files /dev/null and b/images/skins/overwatch.tga differ
diff --git a/images/skins/simplygray_skin.blp b/images/skins/simplygray_skin.blp
deleted file mode 100644
index cae002cc..00000000
Binary files a/images/skins/simplygray_skin.blp and /dev/null differ
diff --git a/images/skins/simplygray_skin.tga b/images/skins/simplygray_skin.tga
new file mode 100644
index 00000000..8feda5e0
Binary files /dev/null and b/images/skins/simplygray_skin.tga differ
diff --git a/startup.lua b/startup.lua
index d7481247..6b3a7781 100644
--- a/startup.lua
+++ b/startup.lua
@@ -260,6 +260,8 @@ function _G._detalhes:Start()
self.listener:RegisterEvent ("PLAYER_ROLES_ASSIGNED")
self.listener:RegisterEvent ("ROLE_CHANGED_INFORM")
+ self.listener:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED")
+
self.parser_frame:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
--> group
@@ -504,7 +506,7 @@ function _G._detalhes:Start()
--version
self.gump:Fade (instance._version, 0)
- instance._version:SetText ("Details! " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
+ instance._version:SetText ("Details! Beta " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
instance._version:SetPoint ("bottomleft", instance.baseframe, "bottomleft", 5, 1)
if (instance.auto_switch_to_old) then
@@ -607,6 +609,8 @@ function _G._detalhes:Start()
wipe (_detalhes.cached_talents)
end
+ --> get the player spec
+ C_Timer.After (2, _detalhes.parser_functions.PLAYER_SPECIALIZATION_CHANGED)
_detalhes.chat_embed:CheckChatEmbed (true)