From 2330f9d70e22ce7b1367d5a5563e526ac0710cd0 Mon Sep 17 00:00:00 2001 From: Ineverknow Date: Thu, 23 Mar 2023 17:51:11 +0100 Subject: [PATCH 1/2] Fix SM Graveyard and SFK in vanilla --- AtlasLootClassic/Addons/Favourites.lua | 7 +++++-- AtlasLootClassic/ItemDB/ItemDB.lua | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/AtlasLootClassic/Addons/Favourites.lua b/AtlasLootClassic/Addons/Favourites.lua index 104a1e7a..0d31aaa4 100644 --- a/AtlasLootClassic/Addons/Favourites.lua +++ b/AtlasLootClassic/Addons/Favourites.lua @@ -796,8 +796,11 @@ function Favourites:CountFavouritesByList(addonName, contentName, boss, dif, inc for i = 1, #moduleList do contentName = moduleList[i] local subResult = self:CountFavouritesByList(addonName, contentName, boss, dif, includeObsolete) - for listName, itemCount in pairs(subResult) do - result[listName] = (result[listName] or 0) + itemCount + + if type(subResult) == "table" then + for listName, itemCount in pairs(subResult) do + result[listName] = (result[listName] or 0) + itemCount + end end end ItemCountCache[cacheIdent] = result diff --git a/AtlasLootClassic/ItemDB/ItemDB.lua b/AtlasLootClassic/ItemDB/ItemDB.lua index 15027234..3802c38e 100644 --- a/AtlasLootClassic/ItemDB/ItemDB.lua +++ b/AtlasLootClassic/ItemDB/ItemDB.lua @@ -243,7 +243,12 @@ end function ItemDB:GetItemTable(addonName, contentName, boss, dif) assert(addonName and ItemDB.Storage[addonName], addonName.." (addonName) not found!") assert(contentName and ItemDB.Storage[addonName][contentName], contentName.." (contentName) not found!") - assert(boss and ItemDB.Storage[addonName][contentName].items[boss], boss.." (boss) not found!") + -- assert(boss and ItemDB.Storage[addonName][contentName].items[boss], boss.." (boss) not found!") + + if boss == nil or ItemDB.Storage[addonName][contentName].items[boss] == nil then + return + end + local addonNameRETVALUE, addon if ItemDB.Storage[addonName][contentName].items[boss].link then return ItemDB:GetItemTable(ItemDB.Storage[addonName][contentName].items[boss].link[1], ItemDB.Storage[addonName][contentName].items[boss].link[2], ItemDB.Storage[addonName][contentName].items[boss].link[3], dif) From 7b6555f246aaa903d7a5a52afef6bc2565187afc Mon Sep 17 00:00:00 2001 From: Ineverknow Date: Thu, 23 Mar 2023 21:25:15 +0100 Subject: [PATCH 2/2] Moved table check to for loops --- AtlasLootClassic/Addons/Favourites.lua | 36 ++++++++++++++------------ 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/AtlasLootClassic/Addons/Favourites.lua b/AtlasLootClassic/Addons/Favourites.lua index 0d31aaa4..37d79288 100644 --- a/AtlasLootClassic/Addons/Favourites.lua +++ b/AtlasLootClassic/Addons/Favourites.lua @@ -796,11 +796,8 @@ function Favourites:CountFavouritesByList(addonName, contentName, boss, dif, inc for i = 1, #moduleList do contentName = moduleList[i] local subResult = self:CountFavouritesByList(addonName, contentName, boss, dif, includeObsolete) - - if type(subResult) == "table" then - for listName, itemCount in pairs(subResult) do - result[listName] = (result[listName] or 0) + itemCount - end + for listName, itemCount in pairs(subResult) do + result[listName] = (result[listName] or 0) + itemCount end end ItemCountCache[cacheIdent] = result @@ -843,24 +840,29 @@ function Favourites:CountFavouritesByList(addonName, contentName, boss, dif, inc local items, tableType, diffData = ItemDB:GetItemTable(addonName, contentName, boss, dif) for l, listData in pairs(self.db.lists) do local listName = listData.__name - for i = 1, #items do - local item = items[i] - if type(item[2]) == "number" then - local itemID = item[2] - if listData[itemID] and (includeObsolete or not self:IsItemEquippedOrObsolete(itemID, l)) then - result[listName] = (result[listName] or 0) + 1 + + if type(items) == "table" then + for i = 1, #items do + local item = items[i] + if type(item[2]) == "number" then + local itemID = item[2] + if listData[itemID] and (includeObsolete or not self:IsItemEquippedOrObsolete(itemID, l)) then + result[listName] = (result[listName] or 0) + 1 + end end end end end for l, listData in pairs(self.globalDb.lists) do local listName = listData.__name - for i = 1, #items do - local item = items[i] - if type(item[2]) == "number" then - local itemID = item[2] - if listData[itemID] and (includeObsolete or not self:IsItemEquippedOrObsolete(itemID, l)) then - result[listName] = (result[listName] or 0) + 1 + if type(items) == "table" then + for i = 1, #items do + local item = items[i] + if type(item[2]) == "number" then + local itemID = item[2] + if listData[itemID] and (includeObsolete or not self:IsItemEquippedOrObsolete(itemID, l)) then + result[listName] = (result[listName] or 0) + 1 + end end end end