From 0b0a5004eb223c592e62b7be01beda5d63e715ed Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Sun, 24 May 2026 17:38:31 +0200 Subject: [PATCH] fix: pcall GetSpecInfoByID, fix specs_per_class indexing, FDID->string Three CoA 3.3.5 compatibility fixes for Details: 1. LibOpenRaid/LibOpenRaid.lua:1298 - C_ClassInfo.GetSpecInfoByID is now pcall-guarded. On CoA, specId can be non-numeric and the API errors out, taking the unit-info update with it. Matches the pcall pattern already shipped for GetSpecInfo(class, spec) in 7 sibling files. 2. Libs/DF/fw.lua:4257 - specs_per_class[index] was writing into the outer table by numeric index, clobbering keys and never populating the nested per-class table initialised on line 4253. Corrected to specs_per_class[class][index] so DF:GetClassSpecIDs(engClass) returns the right list. 3. Libs/DF/icongeneric.lua:211 - SetTexture(130759) passed a FileDataID to a 3.3.5 client that only resolves string paths, leaving icon borders blank. Replaced with the documented mapping [[Interface\COMMON\WhiteIconFrame]] (same path already used in frames/window_mythicplus/window_end_of_run.lua:358). Follows the FDID->string pattern shipped in coa-ace3 d422ad3. --- Libs/DF/fw.lua | 2 +- Libs/DF/icongeneric.lua | 2 +- Libs/LibOpenRaid/LibOpenRaid.lua | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 547c044e..66658820 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -4254,7 +4254,7 @@ for _, class in ipairs(CLASS_SORT_ORDER) do for index, spec in ipairs(specs) do local ok, specInfo = pcall(C_ClassInfo.GetSpecInfo, class, spec) if ok and specInfo then - specs_per_class[index] = specInfo.ID + specs_per_class[class][index] = specInfo.ID end end end diff --git a/Libs/DF/icongeneric.lua b/Libs/DF/icongeneric.lua index e839b700..bf5160ad 100644 --- a/Libs/DF/icongeneric.lua +++ b/Libs/DF/icongeneric.lua @@ -208,7 +208,7 @@ detailsFramework.IconGenericMixin = { iconFrame.Border:ClearAllPoints() iconFrame.Border:SetPoint("topleft", iconFrame, "topleft", -1, 1) iconFrame.Border:SetPoint("bottomright", iconFrame, "bottomright", 1, -1) - iconFrame.Border:SetTexture(130759) + iconFrame.Border:SetTexture([[Interface\COMMON\WhiteIconFrame]]) iconFrame.Border:SetTexCoord(0.296875, 0.5703125, 0, 0.515625) iconFrame.Border:SetDrawLayer("overlay", 7) diff --git a/Libs/LibOpenRaid/LibOpenRaid.lua b/Libs/LibOpenRaid/LibOpenRaid.lua index b99b4a9a..b35feb44 100644 --- a/Libs/LibOpenRaid/LibOpenRaid.lua +++ b/Libs/LibOpenRaid/LibOpenRaid.lua @@ -1295,8 +1295,8 @@ end end role = "DAMAGER" else - local specInfo = C_ClassInfo.GetSpecInfoByID(specId or 0) - if specInfo then + local ok, specInfo = pcall(C_ClassInfo.GetSpecInfoByID, specId or 0) + if ok and specInfo then specName = specInfo.Name specDescription = specInfo.Description specIcon = "Interface\\Icons\\"..specInfo.SpecFilename