From 3845d0096facfd14bc005d2cdd1367651976d36f Mon Sep 17 00:00:00 2001 From: "James D. Callahan III" Date: Fri, 26 Mar 2010 20:42:53 -0400 Subject: [PATCH] In addon:PrintScanResults(): Added checking of flags against acquire types. --- ARL.lua | 1 - Datamine.lua | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/ARL.lua b/ARL.lua index 91f58db..c25f11f 100644 --- a/ARL.lua +++ b/ARL.lua @@ -1240,7 +1240,6 @@ end -- do -- Filter flag functions ------------------------------------------------------------------------------- do - -- HardFilterFlags and SoftFilterFlags are used to determine if a recipe should be shown based on the value of the key compared to the value of its saved_var. -- Its keys and values are populated the first time CanDisplayRecipe() is called. local HardFilterFlags, SoftFilterFlags, RepFilterFlags diff --git a/Datamine.lua b/Datamine.lua index 6ce93bc..938475e 100644 --- a/Datamine.lua +++ b/Datamine.lua @@ -2248,6 +2248,14 @@ do local extra_flags = {} local output = {} + local ACQUIRE_TO_FILTER_MAP = { + [A.MOB] = F.MOB_DROP, + [A.QUEST] = F.QUEST, + [A.SEASONAL] = F.SEASONAL, + [A.WORLD_DROP] = F.WORLD_DROP, + } + local FILTER_TO_ACQUIRE_MAP + --- Prints out the results of the tooltip scan. -- @name AckisRecipeList:PrintScanResults function addon:PrintScanResults() @@ -2265,7 +2273,7 @@ do end local recipe = scan_data.recipe_list[spell_id] local flags = recipe["Flags"] - local acquire = recipe["acquire_data"] + local acquire_data = recipe["acquire_data"] local FS = private.filter_strings local flag_format = "F.%s" @@ -2368,7 +2376,7 @@ do if repid and not flags[repid] then tinsert(missing_flags, repid) - local rep_data = acquire[A.REPUTATION] + local rep_data = acquire_data[A.REPUTATION] if rep_data then for rep_id, rep_info in pairs(acquire_info) do @@ -2381,6 +2389,47 @@ do end end + -- Make sure the recipe's filter flags match with its acquire types. + if not FILTER_TO_ACQUIRE_MAP then + FILTER_TO_ACQUIRE_MAP = {} + + for k, v in pairs(ACQUIRE_TO_FILTER_MAP) do + FILTER_TO_ACQUIRE_MAP[v] = k + end + end + + for acquire_type in pairs(acquire_data) do + local flag = ACQUIRE_TO_FILTER_MAP[acquire_type] + + if flag and not flags[flag] then + tinsert(missing_flags, string.format(flag_format, FS[flag])) + end + end + + if (acquire_data[A.VENDOR] or acquire_data[A.REPUTATION]) and not flags[F.VENDOR] then + tinsert(missing_flags, string.format(flag_format, FS[F.VENDOR])) + end + + if flags[F.VENDOR] and not (acquire_data[A.VENDOR] or acquire_data[A.REPUTATION]) then + tinsert(extra_flags, string.format(flag_format, FS[F.VENDOR])) + end + + if acquire_data[A.TRAINER] and not flags[A.TRAINER] then + tinsert(missing_flags, string.format(flag_format, FS[F.TRAINER])) + end + + if flags[F.TRAINER] and not acquire_data[A.TRAINER] then + if not acquire_data[A.CUSTOM] then + tinsert(extra_flags, string.format(flag_format, FS[F.TRAINER])) + end + end + + for flag, acquire_type in pairs(FILTER_TO_ACQUIRE_MAP) do + if flags[flag] and not acquire_data[acquire_type] then + tinsert(extra_flags, string.format(flag_format, FS[flag])) + end + end + if #missing_flags > 0 or #extra_flags > 0 then found_problem = true @@ -2393,7 +2442,6 @@ do if #extra_flags > 0 then tinsert(output, " Extra flags: " .. tconcat(extra_flags, ", ")) end - local found_type = false for k, v in ipairs(ORDERED_ITEM_TYPES) do -- 1.7.9.5