diff --git a/Decursive/Dcr_LiveList.lua b/Decursive/Dcr_LiveList.lua index 1eef552..ade2817 100644 --- a/Decursive/Dcr_LiveList.lua +++ b/Decursive/Dcr_LiveList.lua @@ -272,8 +272,23 @@ function LiveList.prototype:SetDebuff(UnitID, Debuff, IsCharmed) -- {{{ -- Set the graphical elements to the right values -- Icon + -- CoA: Ascension sometimes ships auras whose icon path is missing/invalid on + -- the local client; passing those into SetTexture has crashed the engine + -- (#132 ACCESS_VIOLATION, fault inside Ascension.exe texture loader). + -- Fall back to the question-mark icon and record the offender once so it + -- shows up in Logs/Trace.txt. if self.PrevDebuffTexture ~= Debuff.Texture then - self.IconTexture:SetTexture(Debuff.Texture); + local tex = Debuff.Texture; + if type(tex) ~= "string" or tex == "" then + if not D.coa_LoggedBadTextures then D.coa_LoggedBadTextures = {}; end + local key = tostring(tex); + if not D.coa_LoggedBadTextures[key] then + D.coa_LoggedBadTextures[key] = true; + D:AddDebugText("CoA: bad debuff icon, falling back. Name=", Debuff.Name, "Type=", Debuff.TypeName, "raw=", tex); + end + tex = "Interface\\Icons\\INV_Misc_QuestionMark"; + end + self.IconTexture:SetTexture(tex); self.PrevDebuffTexture = Debuff.Texture; end diff --git a/Decursive/Decursive.toc b/Decursive/Decursive.toc index 7349c73..413dc05 100644 --- a/Decursive/Decursive.toc +++ b/Decursive/Decursive.toc @@ -18,7 +18,7 @@ ## SavedVariables: DecursiveDB -## Version: Asc-1.1.2-coa (orig 2.5.1-6-gd3885c5) +## Version: Asc-1.1.3-coa (orig 2.5.1-6-gd3885c5) ## Author: Archarodim ## X-License: All Rights Reserved