diff --git a/Bindings.xml b/Bindings.xml
index ddc3cf8a..45d73e25 100644
--- a/Bindings.xml
+++ b/Bindings.xml
@@ -1 +1,74 @@
-
\ No newline at end of file
+
+
+ _detalhes.tabela_historico:resetar()
+
+
+
+ DetailsKeyBindScrollDown()
+
+
+
+ DetailsKeyBindScrollUp()
+
+
+
+ _detalhes:FastReportWindow (1)
+
+
+ _detalhes:FastReportWindow (2)
+
+
+
+ _detalhes:ToggleWindows()
+
+
+
+ _detalhes:ToggleWindow (1)
+
+
+ _detalhes:ToggleWindow (2)
+
+
+ _detalhes:ToggleWindow (3)
+
+
+ _detalhes:ToggleWindow (4)
+
+
+ _detalhes:ToggleWindow (5)
+
+
+
+
+ DetailsChangeDisplayFromBookmark (1);
+
+
+ DetailsChangeDisplayFromBookmark (2);
+
+
+ DetailsChangeDisplayFromBookmark (3);
+
+
+ DetailsChangeDisplayFromBookmark (4);
+
+
+ DetailsChangeDisplayFromBookmark (5);
+
+
+ DetailsChangeDisplayFromBookmark (6);
+
+
+ DetailsChangeDisplayFromBookmark (7);
+
+
+ DetailsChangeDisplayFromBookmark (8);
+
+
+ DetailsChangeDisplayFromBookmark (9);
+
+
+ DetailsChangeDisplayFromBookmark (10);
+
+
+
+
diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua
index 16ce70d9..5083be9b 100644
--- a/Libs/DF/fw.lua
+++ b/Libs/DF/fw.lua
@@ -1,6 +1,6 @@
-local dversion = 383
+local dversion = 384
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary(major, minor)
diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua
index 3279fe07..e68f5c51 100644
--- a/Libs/DF/panel.lua
+++ b/Libs/DF/panel.lua
@@ -6698,8 +6698,15 @@ end
--]=]
detailsFramework.StatusBarFunctions = {
- SetTexture = function(self, texture)
+ SetTexture = function(self, texture, isTemporary)
self.barTexture:SetTexture(texture)
+ if (not isTemporary) then
+ self.barTexture.currentTexture = texture
+ end
+ end,
+
+ ResetTexture = function(self)
+ self.barTexture:SetTexture(self.barTexture.currentTexture)
end,
GetTexture = function(self)
@@ -7285,6 +7292,7 @@ function detailsFramework:CreateHealthBar (parent, name, settingsOverride)
detailsFramework:Mixin(healthBar, detailsFramework.StatusBarFunctions)
healthBar:CreateTextureMask()
+ healthBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]])
--settings and hooks
local settings = detailsFramework.table.copy({}, healthBarMetaFunctions.Settings)
@@ -7549,6 +7557,7 @@ function detailsFramework:CreatePowerBar(parent, name, settingsOverride)
detailsFramework:Mixin(powerBar, detailsFramework.StatusBarFunctions)
powerBar:CreateTextureMask()
+ powerBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]])
--settings and hooks
local settings = detailsFramework.table.copy({}, detailsFramework.PowerFrameFunctions.Settings)
@@ -8571,6 +8580,8 @@ function detailsFramework:CreateCastBar(parent, name, settingsOverride)
castBar:AddMaskTexture(castBar.background)
castBar:AddMaskTexture(castBar.extraBackground)
+ castBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]])
+
--settings and hooks
local settings = detailsFramework.table.copy({}, detailsFramework.CastFrameFunctions.Settings)
if (settingsOverride) then
diff --git a/boot.lua b/boot.lua
index 5e344705..55f06c9d 100644
--- a/boot.lua
+++ b/boot.lua
@@ -995,7 +995,7 @@ do
end
end
- function dumpt(value)
+ function dumpt(value) --[[GLOBAL]]
return Details:Dump(value)
end
@@ -1061,7 +1061,7 @@ do
Details.failed_to_load = C_Timer.NewTimer(1, function() Details.Schedules.NewTimer(20, _detalhes.WelcomeMsgLogon) end)
--key binds
- --[=[
+ --[=
--header
_G ["BINDING_HEADER_Details"] = "Details!"
_G ["BINDING_HEADER_DETAILS_KEYBIND_SEGMENTCONTROL"] = Loc ["STRING_KEYBIND_SEGMENTCONTROL"]
diff --git a/classes/container_actors.lua b/classes/container_actors.lua
index ee51f486..d28f7b5c 100644
--- a/classes/container_actors.lua
+++ b/classes/container_actors.lua
@@ -539,7 +539,6 @@
end
function container_combatentes:PegarCombatente (serial, nome, flag, criar)
-
--[[statistics]]-- _detalhes.statistics.container_calls = _detalhes.statistics.container_calls + 1
--if (flag and nome:find("Kastfall") and bit.band(flag, 0x2000) ~= 0) then
@@ -547,7 +546,38 @@
--else
--print(nome, flag)
--end
-
+
+ local npcId = Details:GetNpcIdFromGuid(serial or "")
+
+ --fix for rogue secret technich, can also be fixed by getting the time of the rogue's hit as the other hits go right after
+ if (npcId == 144961) then
+ pet_tooltip_frame:SetOwner(WorldFrame, "ANCHOR_NONE")
+ pet_tooltip_frame:SetHyperlink(("unit:" .. serial) or "")
+
+ local pname = _G["DetailsPetOwnerFinderTextLeft1"]
+ if (pname) then
+ local text = pname:GetText()
+ if (text and type(text) == "string") then
+ local isInRaid = _detalhes.tabela_vigente.raid_roster[text]
+ if (isInRaid) then
+ serial = UnitGUID(text)
+ nome = text
+ flag = 0x514
+ else
+ for playerName in text:gmatch("([^%s]+)") do
+ local isInRaid = _detalhes.tabela_vigente.raid_roster[playerName]
+ if (isInRaid) then
+ serial = UnitGUID(playerName)
+ nome = text
+ flag = 0x514
+ break
+ end
+ end
+ end
+ end
+ end
+ end
+
--verifica se � um pet, se for confere se tem o nome do dono, se n�o tiver, precisa por
local dono_do_pet
serial = serial or "ns"
diff --git a/core/gears.lua b/core/gears.lua
index f37d6dcb..4b88452e 100644
--- a/core/gears.lua
+++ b/core/gears.lua
@@ -3105,6 +3105,13 @@ function Details:HandleRogueCombatSpecIconByGameVersion()
rogueCombatCoords[2] = 64 / 512
rogueCombatCoords[3] = 384 / 512
rogueCombatCoords[4] = 448 / 512
+
+ --new versions of the game has a different icon for assassination
+ local rogueAssassinationCoords = Details.class_specs_coords[259]
+ rogueAssassinationCoords[1] = 64 / 512
+ rogueAssassinationCoords[2] = 128 / 512
+ rogueAssassinationCoords[3] = 384 / 512
+ rogueAssassinationCoords[4] = 448 / 512
end
end
diff --git a/core/parser.lua b/core/parser.lua
index 9dfd831f..87021c40 100755
--- a/core/parser.lua
+++ b/core/parser.lua
@@ -8,6 +8,10 @@
local isTBC = DetailsFramework.IsTBCWow()
local isWOTLK = DetailsFramework.IsWotLKWow()
+ Details.UnregisteredTokens = {}
+ Details.IgnoredDamageEvents = {}
+ Details.RogueRaceCache = {}
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--local pointers
@@ -26,7 +30,6 @@
local bitBand = bit.band
local floor = math.floor
local ipairs = ipairs
- local pairs = pairs
local type = type
local ceil = math.ceil
local wipe = table.wipe
@@ -430,7 +433,6 @@
local is_using_spellId_override = false
--is this a timewalking exp?
- local is_classic_exp = DetailsFramework.IsClassicWow()
local is_timewalk_exp = DetailsFramework.IsTimewalkWoW()
--recording data options flags
@@ -576,13 +578,17 @@
local hitLine = self.HitBy or "|cFFFFBB00First Hit|r: *?*"
local targetLine = ""
- for i = 1, 5 do
- local boss = UnitExists("boss" .. i)
- if (boss) then
- local target = UnitName ("boss" .. i .. "target")
- if (target and type(target) == "string") then
- targetLine = " |cFFFFBB00Boss First Target|r: " .. target
- break
+ if (Details.bossTargetAtPull) then
+ targetLine = " |cFFFFBB00Boss First Target|r: " .. Details.bossTargetAtPull
+ else
+ for i = 1, 5 do
+ local boss = UnitExists("boss" .. i)
+ if (boss) then
+ local target = UnitName ("boss" .. i .. "target")
+ if (target and type(target) == "string") then
+ targetLine = " |cFFFFBB00Boss First Target|r: " .. target
+ break
+ end
end
end
end
@@ -655,12 +661,14 @@
if (who_serial == "") then
if (who_flags and bitBand(who_flags, OBJECT_TYPE_PETS) ~= 0) then --� um pet
--pets must have a serial
+ Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID SERIAL", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected}
return
end
end
if (not alvo_name) then
--no target name, just quit
+ Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID TARGET", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected}
return
elseif (not who_name) then
@@ -672,19 +680,15 @@
--check if the spell isn't in the backlist
if (damage_spells_to_ignore[spellid]) then
+ Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"SPELL IGNORED", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected}
return
end
- if (is_classic_exp) then
- spellid = spellname
-
- else --retail
- --REMOVE ON 10.0
- if (spellid == SPELLID_KYRIAN_DRUID_DAMAGE) then
- local ownerTable = druid_kyrian_bounds[who_name]
- if (ownerTable) then
- who_serial, who_name, who_flags = unpack(ownerTable)
- end
+ --REMOVE ON 10.0
+ if (spellid == SPELLID_KYRIAN_DRUID_DAMAGE) then
+ local ownerTable = druid_kyrian_bounds[who_name]
+ if (ownerTable) then
+ who_serial, who_name, who_flags = unpack(ownerTable)
end
end
@@ -772,11 +776,6 @@
end
end
- --Jailer
- if (_current_encounter_id == 2537) then
-
- end
-
--npcId check for ignored npcs
local npcId = npcid_cache[alvo_serial]
@@ -952,7 +951,7 @@
_detalhes.WhoAggroTimer:Cancel()
end
- _detalhes.WhoAggroTimer = C_Timer.NewTimer(0.5, who_aggro)
+ _detalhes.WhoAggroTimer = C_Timer.NewTimer(0.1, who_aggro)
_detalhes.WhoAggroTimer.HitBy = "|cFFFFFF00First Hit|r: " .. (link or "") .. " from " .. (who_name or "Unknown")
end
@@ -2169,10 +2168,6 @@
return
end
- if (is_classic_exp) then
- spellid = spellname
- end
-
--spirit link toten
if (spellid == SPELLID_SHAMAN_SLT) then
return parser:SLT_healing (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, is_shield)
@@ -5234,6 +5229,15 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end
function _detalhes.parser_functions:PLAYER_REGEN_DISABLED(...)
+ C_Timer.After(0, function()
+ if (UnitExists("boss1")) then
+ local bossTarget = UnitName("boss1target")
+ Details.bossTargetAtPull = bossTarget
+ else
+ Details.bossTargetAtPull = nil
+ end
+ end)
+
if (_detalhes.zone_type == "pvp" and not _detalhes.use_battleground_server_parser) then
if (_in_combat) then
_detalhes:SairDoCombate()
@@ -5923,14 +5927,14 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end)
-- ~parserstart ~startparser ~cleu
-
- function _detalhes.OnParserEvent()
+ function _detalhes.OnParserEvent(...)
local time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 = CombatLogGetCurrentEventInfo()
local func = token_list[token]
if (func) then
return func(nil, token, time, who_serial, who_name, who_flags, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
else
+ Details.UnregisteredTokens[token] = {time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12}
return
end
end
@@ -6075,6 +6079,12 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
if (auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]]) then
auto_regen_cache[name] = auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]]
end
+
+ local _, class = UnitClass("raid"..i)
+ if (class == "ROGUE") then
+ local _, race = UnitRace("raid"..i)
+ Details.RogueRaceCache[name] = race
+ end
end
elseif (IsInGroup()) then
diff --git a/core/util.lua b/core/util.lua
index 7b8b8fc0..13ba7e15 100644
--- a/core/util.lua
+++ b/core/util.lua
@@ -972,7 +972,7 @@ do
-- logic OR for number values
local function lor (x,y)
- result = 0
+ local result = 0
for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end
return result
end
diff --git a/frames/window_aura_tracker.lua b/frames/window_aura_tracker.lua
index c17d783d..0ab460db 100644
--- a/frames/window_aura_tracker.lua
+++ b/frames/window_aura_tracker.lua
@@ -179,6 +179,8 @@ function Details.AuraTracker.CreatePanel()
DetailsFramework:ReskinSlider(debuffScroll)
debuffScroll:SetPoint("topleft", buffScroll, "bottomleft", 0, -2)
auraTrackerFrame.DebuffScroll = debuffScroll
+
+ Details.AuraTracker.framesCreated = true
end
local cachedPoints = {}
diff --git a/functions/spellcache.lua b/functions/spellcache.lua
index 733f9712..a16f974a 100644
--- a/functions/spellcache.lua
+++ b/functions/spellcache.lua
@@ -182,6 +182,7 @@ do
}
else
+ --retail
defaultSpellCustomization = {
[1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]},
[2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]},
@@ -196,28 +197,6 @@ do
[196917] = {name = lightOfTheMartyr_Name .. " (" .. Loc ["STRING_DAMAGE"] .. ")", icon = lightOfTheMartyr_Icon},
[77535] = {name = GetSpellInfo(77535), icon = "Interface\\Addons\\Details\\images\\icon_blood_shield"},
-
- --bfa trinkets (deprecated)
- [278155] = {name = GetSpellInfo(278155) .. " (Trinket)"}, --[Twitching Tentacle of Xalzaix]
- [279664] = {name = GetSpellInfo(279664) .. " (Trinket)"}, --[Vanquished Tendril of G'huun]
- [278227] = {name = GetSpellInfo(278227) .. " (Trinket)"}, --[T'zane's Barkspines]
- [278383] = {name = GetSpellInfo(278383) .. " (Trinket)"}, --[Azurethos' Singed Plumage]
- [278862] = {name = GetSpellInfo(278862) .. " (Trinket)"}, --[Drust-Runed Icicle]
- [278359] = {name = GetSpellInfo(278359) .. " (Trinket)"}, --[Doom's Hatred]
- [278812] = {name = GetSpellInfo(278812) .. " (Trinket)"}, --[Lion's Grace]
- [270827] = {name = GetSpellInfo(270827) .. " (Trinket)"}, --[Vessel of Skittering Shadows]
- [271071] = {name = GetSpellInfo(271071) .. " (Trinket)"}, --[Conch of Dark Whispers]
- [270925] = {name = GetSpellInfo(270925) .. " (Trinket)"}, --[Hadal's Nautilus]
- [271115] = {name = GetSpellInfo(271115) .. " (Trinket)"}, --[Ignition Mage's Fuse]
- [271462] = {name = GetSpellInfo(271462) .. " (Trinket)"}, --[Rotcrusted Voodoo Doll]
- [271465] = {name = GetSpellInfo(271465) .. " (Trinket)"}, --[Rotcrusted Voodoo Doll]
- [268998] = {name = GetSpellInfo(268998) .. " (Trinket)"}, --[Balefire Branch]
- [271671] = {name = GetSpellInfo(271671) .. " (Trinket)"}, --[Lady Waycrest's Music Box]
- [277179] = {name = GetSpellInfo(277179) .. " (Trinket)"}, --[Dread Gladiator's Medallion]
- [277187] = {name = GetSpellInfo(277187) .. " (Trinket)"}, --[Dread Gladiator's Emblem]
- [277181] = {name = GetSpellInfo(277181) .. " (Trinket)"}, --[Dread Gladiator's Insignia]
- [277185] = {name = GetSpellInfo(277185) .. " (Trinket)"}, --[Dread Gladiator's Badge]
- [278057] = {name = GetSpellInfo(278057) .. " (Trinket)"}, --[Vigilant's Bloodshaper]
}
end
diff --git a/images/spec_icons_normal.tga b/images/spec_icons_normal.tga
index ad1fc6c5..6146633a 100644
Binary files a/images/spec_icons_normal.tga and b/images/spec_icons_normal.tga differ
diff --git a/images/spec_icons_normal_alpha.tga b/images/spec_icons_normal_alpha.tga
index 78c688b6..e6ce70ae 100644
Binary files a/images/spec_icons_normal_alpha.tga and b/images/spec_icons_normal_alpha.tga differ
diff --git a/startup.lua b/startup.lua
index 58f3a457..75cafd31 100644
--- a/startup.lua
+++ b/startup.lua
@@ -328,7 +328,7 @@ function Details:StartMeUp() --I'll never stop!
--restore cooltip anchor position, this is for the custom anchor in the screen
DetailsTooltipAnchor:Restore()
- --check is this is the first run
+ --check is this is the first run ever
if (self.is_first_run) then
if (#self.custom == 0) then
Details:AddDefaultCustomDisplays()