Skip to content

Commit

Permalink
auras: Process subtables in proper order (#634)
Browse files Browse the repository at this point in the history
  • Loading branch information
ls- authored Feb 25, 2023
1 parent d110843 commit 308705a
Showing 1 changed file with 48 additions and 49 deletions.
97 changes: 48 additions & 49 deletions elements/auras.lua
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,28 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
else
if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHelpful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, buffFilter)) then
data = processData(auras, unit, data)
auras.allBuffs[data.auraInstanceID] = data

if((auras.FilterAura or FilterAura) (auras, unit, data)) then
auras.activeBuffs[data.auraInstanceID] = true
buffsChanged = true
end
elseif(data.isHarmful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, debuffFilter)) then
data = processData(auras, unit, data)
auras.allDebuffs[data.auraInstanceID] = data

if((auras.FilterAura or FilterAura) (auras, unit, data)) then
auras.activeDebuffs[data.auraInstanceID] = true
debuffsChanged = true
end
end
end
end

if(updateInfo.updatedAuraInstanceIDs) then
for _, auraInstanceID in next, updateInfo.updatedAuraInstanceIDs do
if(auras.allBuffs[auraInstanceID]) then
Expand Down Expand Up @@ -398,29 +420,6 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
end

if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHelpful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, buffFilter)) then
data = processData(auras, unit, data)
auras.allBuffs[data.auraInstanceID] = data

if((auras.FilterAura or FilterAura) (auras, unit, data)) then
auras.activeBuffs[data.auraInstanceID] = true
buffsChanged = true
end
elseif(data.isHarmful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, debuffFilter)) then
data = processData(auras, unit, data)
auras.allDebuffs[data.auraInstanceID] = data

if((auras.FilterAura or FilterAura) (auras, unit, data)) then
auras.activeDebuffs[data.auraInstanceID] = true
debuffsChanged = true
end

end
end
end
end

--[[ Callback: Auras:PostUpdateInfo(unit, buffsChanged, debuffsChanged)
Expand Down Expand Up @@ -593,6 +592,19 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
else
if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHelpful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, buffFilter)) then
buffs.all[data.auraInstanceID] = processData(buffs, unit, data)

if((buffs.FilterAura or FilterAura) (buffs, unit, data)) then
buffs.active[data.auraInstanceID] = true
buffsChanged = true
end
end
end
end

if(updateInfo.updatedAuraInstanceIDs) then
for _, auraInstanceID in next, updateInfo.updatedAuraInstanceIDs do
if(buffs.all[auraInstanceID]) then
Expand All @@ -618,19 +630,6 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
end

if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHelpful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, buffFilter)) then
buffs.all[data.auraInstanceID] = processData(buffs, unit, data)

if((buffs.FilterAura or FilterAura) (buffs, unit, data)) then
buffs.active[data.auraInstanceID] = true
buffsChanged = true
end
end
end
end
end

if(buffs.PostUpdateInfo) then
Expand Down Expand Up @@ -702,6 +701,19 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
else
if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHarmful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, debuffFilter)) then
debuffs.all[data.auraInstanceID] = processData(debuffs, unit, data)

if((debuffs.FilterAura or FilterAura) (debuffs, unit, data)) then
debuffs.active[data.auraInstanceID] = true
debuffsChanged = true
end
end
end
end

if(updateInfo.updatedAuraInstanceIDs) then
for _, auraInstanceID in next, updateInfo.updatedAuraInstanceIDs do
if(debuffs.all[auraInstanceID]) then
Expand All @@ -727,19 +739,6 @@ local function UpdateAuras(self, event, unit, updateInfo)
end
end
end

if(updateInfo.addedAuras) then
for _, data in next, updateInfo.addedAuras do
if(data.isHarmful and not C_UnitAuras.IsAuraFilteredOutByInstanceID(unit, data.auraInstanceID, debuffFilter)) then
debuffs.all[data.auraInstanceID] = processData(debuffs, unit, data)

if((debuffs.FilterAura or FilterAura) (debuffs, unit, data)) then
debuffs.active[data.auraInstanceID] = true
debuffsChanged = true
end
end
end
end
end

if(debuffs.PostUpdateInfo) then
Expand Down

0 comments on commit 308705a

Please sign in to comment.