From 6999c7fd1e4f2aebe871183020dff3f4ed8ce953 Mon Sep 17 00:00:00 2001 From: "James D. Callahan III" Date: Mon, 22 Mar 2010 17:56:30 -0400 Subject: [PATCH] In MainPanel.scroll_frame:Update(): When sorting by Location or Acquisition, keep track of recipes so they are not counted more than once. --- Frame.lua | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Frame.lua b/Frame.lua index 2da7446..c6a160e 100644 --- a/Frame.lua +++ b/Frame.lua @@ -2199,9 +2199,12 @@ do return recipe_string end + -- Used for Location and Acquisition sort - since many recipes have multiple locations/acquire types it is + -- necessary to ensure each is counted only once. + local recipe_registry = {} + function MainPanel.scroll_frame:Update(expand_acquires, refresh) local insert_index = 1 - local recipe_list = private.recipe_list -- If not refreshing an existing list and not scrolling up/down, wipe and re-initialize the entries. @@ -2216,6 +2219,7 @@ do ReleaseTable(self.entries[i]) end twipe(self.entries) + twipe(recipe_registry) if sort_type == "Acquisition" then SortAcquireList() @@ -2228,9 +2232,13 @@ do for spell_id in pairs(private.acquire_list[acquire_type].recipes) do local recipe = private.recipe_list[spell_id] - if recipe.profession == Player.current_prof and recipe.is_visible and recipe.is_relevant then + if recipe.is_visible and recipe.is_relevant then count = count + 1 - recipes_displayed = recipes_displayed + 1 + + if not recipe_registry[recipe] then + recipe_registry[recipe] = true + recipes_displayed = recipes_displayed + 1 + end end end @@ -2266,9 +2274,13 @@ do for spell_id in pairs(private.location_list[loc_name].recipes) do local recipe = private.recipe_list[spell_id] - if recipe.profession == Player.current_prof and recipe.is_visible and recipe.is_relevant then + if recipe.is_visible and recipe.is_relevant then count = count + 1 - recipes_displayed = recipes_displayed + 1 + + if not recipe_registry[recipe] then + recipe_registry[recipe] = true + recipes_displayed = recipes_displayed + 1 + end end end @@ -2470,7 +2482,7 @@ do for spell_id in pairs(private.acquire_list[acquire_id].recipes) do local recipe_entry = private.recipe_list[spell_id] - if recipe_entry.profession == Player.current_prof and recipe_entry.is_visible and recipe_entry.is_relevant then + if recipe_entry.is_visible and recipe_entry.is_relevant then local t = AcquireTable() t.text = FormatRecipeText(recipe_entry) @@ -2490,7 +2502,7 @@ do for spell_id in pairs(private.location_list[location_id].recipes) do local recipe_entry = private.recipe_list[spell_id] - if recipe_entry.profession == Player.current_prof and recipe_entry.is_visible and recipe_entry.is_relevant then + if recipe_entry.is_visible and recipe_entry.is_relevant then local t = AcquireTable() t.text = FormatRecipeText(recipe_entry) -- 1.7.9.5