Quantcast

GenerateTooltipContent() will now ignore entries which do not match the list_entry's location_id or acquire_id, if applicable.

James D. Callahan III [03-27-10 - 11:54]
GenerateTooltipContent() will now ignore entries which do not match the list_entry's location_id or acquire_id, if applicable.
Filename
Frame.lua
diff --git a/Frame.lua b/Frame.lua
index 83bd59c..75ad32e 100644
--- a/Frame.lua
+++ b/Frame.lua
@@ -701,62 +701,75 @@ do

 		local playerFaction = Player.faction
 		local rep_list = private.reputation_list
+		local acquire_id = list_entry.acquire_id
+		local location_id = list_entry.location_id

 		for acquire_type, acquire_info in pairs(recipe_entry.acquire_data) do
-			if acquire_type == A.TRAINER then
+			local can_display = (not acquire_id or acquire_type == acquire_id)
+
+			if can_display and acquire_type == A.TRAINER then
 				for id_num in pairs(acquire_info) do
-					local display_tip = false
 					local trainer = private.trainer_list[id_num]

-					color_1 = CATEGORY_COLORS["trainer"]
-					display_tip, color_2 = GetTipFactionInfo(trainer.faction)
+					if location_id and trainer.location == location_id then
+						local display_tip = false

-					if display_tip then
-						local coord_text = ""
+						color_1 = CATEGORY_COLORS["trainer"]
+						display_tip, color_2 = GetTipFactionInfo(trainer.faction)

-						if trainer.coord_x ~= 0 and trainer.coord_y ~= 0 then
-							coord_text = "(" .. trainer.coord_x .. ", " .. trainer.coord_y .. ")"
+						if display_tip then
+							local coord_text = ""
+
+							if trainer.coord_x ~= 0 and trainer.coord_y ~= 0 then
+								coord_text = "(" .. trainer.coord_x .. ", " .. trainer.coord_y .. ")"
+							end
+							ttAdd(0, -2, false, L["Trainer"], color_1, trainer.name, color_2)
+							ttAdd(1, -2, true, trainer.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 						end
-						ttAdd(0, -2, false, L["Trainer"], color_1, trainer.name, color_2)
-						ttAdd(1, -2, true, trainer.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 					end
 				end
-			elseif acquire_type == A.VENDOR then
+			elseif can_display and acquire_type == A.VENDOR then
 				for id_num in pairs(acquire_info) do
 					local vendor = private.vendor_list[id_num]
-					local display_tip = false

-					color_1 = CATEGORY_COLORS["vendor"]
-					display_tip, color_2 = GetTipFactionInfo(vendor.faction)
+					if not location_id or vendor.location == location_id then
+						local display_tip = false

-					if display_tip then
-						local coord_text = ""
+						color_1 = CATEGORY_COLORS["vendor"]
+						display_tip, color_2 = GetTipFactionInfo(vendor.faction)

-						if vendor.coord_x ~= 0 and vendor.coord_y ~= 0 then
-							coord_text = "(" .. vendor.coord_x .. ", " .. vendor.coord_y .. ")"
+						if display_tip then
+							local coord_text = ""
+
+							if vendor.coord_x ~= 0 and vendor.coord_y ~= 0 then
+								coord_text = "(" .. vendor.coord_x .. ", " .. vendor.coord_y .. ")"
+							end
+							ttAdd(0, -1, false, L["Vendor"], color_1, vendor.name, color_2)
+							ttAdd(1, -2, true, vendor.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
+						else
+							ttAdd(0, -1, false, vendor.faction.." "..L["Vendor"], color_1)
 						end
-						ttAdd(0, -1, false, L["Vendor"], color_1, vendor.name, color_2)
-						ttAdd(1, -2, true, vendor.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
-					else
-						ttAdd(0, -1, false, vendor.faction.." "..L["Vendor"], color_1)
 					end
 				end
-			elseif acquire_type == A.MOB_DROP then
+			elseif can_display and acquire_type == A.MOB_DROP then
 				for id_num in pairs(acquire_info) do
 					local mob = private.mob_list[id_num]
-					local coord_text = ""

-					if mob.coord_x ~= 0 and mob.coord_y ~= 0 then
-						coord_text = "(" .. mob.coord_x .. ", " .. mob.coord_y .. ")"
+					if not location_id or mob.location == location_id then
+						local coord_text = ""
+
+						if mob.coord_x ~= 0 and mob.coord_y ~= 0 then
+							coord_text = "(" .. mob.coord_x .. ", " .. mob.coord_y .. ")"
+						end
+						ttAdd(0, -1, false, L["Mob Drop"], CATEGORY_COLORS["mobdrop"], mob.name, private.reputation_colors["hostile"])
+						ttAdd(1, -2, true, mob.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 					end
-					ttAdd(0, -1, false, L["Mob Drop"], CATEGORY_COLORS["mobdrop"], mob.name, private.reputation_colors["hostile"])
-					ttAdd(1, -2, true, mob.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 				end
-			elseif acquire_type == A.QUEST then
+			elseif can_display and acquire_type == A.QUEST then
 				for id_num in pairs(acquire_info) do
 					local quest = private.quest_list[id_num]

-					if quest then
+					if not location_id or quest.location == location_id then
 						local display_tip = false

 						color_1 = CATEGORY_COLORS["quest"]
@@ -776,71 +789,78 @@ do
 						end
 					end
 				end
-			elseif acquire_type == A.SEASONAL then
+			elseif can_display and acquire_type == A.SEASONAL then
 				for id_num in pairs(acquire_info) do
 					color_1 = CATEGORY_COLORS["seasonal"]
 					ttAdd(0, -1, 0, SEASONAL_CATEGORY, color_1, private.seasonal_list[id_num].name, color_1)
 				end
-			elseif acquire_type == A.REPUTATION then
+			elseif can_display and acquire_type == A.REPUTATION then
 				local rep_color = private.reputation_colors

 				for rep_id, rep_info in pairs(acquire_info) do
 					for rep_level, level_info in pairs(rep_info) do
 						for vendor_id in pairs(level_info) do
-							local display_tip = false
 							local rep_vendor = private.vendor_list[vendor_id]

-							display_tip, color_2 = GetTipFactionInfo(rep_vendor.faction)
-
-							if display_tip then
-								ttAdd(0, -1, false, _G.REPUTATION, CATEGORY_COLORS["reputation"], rep_list[rep_id].name, CATEGORY_COLORS["repname"])
-
-								local rep_str = ""
-
-								if rep_level == 0 then
-									rep_str = FACTION_NEUTRAL
-									color_1 = rep_color["neutral"]
-								elseif rep_level == 1 then
-									rep_str = BFAC["Friendly"]
-									color_1 = rep_color["friendly"]
-								elseif rep_level == 2 then
-									rep_str = BFAC["Honored"]
-									color_1 = rep_color["honored"]
-								elseif rep_level == 3 then
-									rep_str = BFAC["Revered"]
-									color_1 = rep_color["revered"]
-								else
-									rep_str = BFAC["Exalted"]
-									color_1 = rep_color["exalted"]
-								end
-								ttAdd(1, -2, false, rep_str, color_1, rep_vendor.name, color_2)
+							if not location_id or rep_vendor.location == location_id then
+								local display_tip = false
+								display_tip, color_2 = GetTipFactionInfo(rep_vendor.faction)
+
+								if display_tip then
+									ttAdd(0, -1, false, _G.REPUTATION, CATEGORY_COLORS["reputation"], rep_list[rep_id].name, CATEGORY_COLORS["repname"])
+
+									local rep_str = ""
+
+									if rep_level == 0 then
+										rep_str = FACTION_NEUTRAL
+										color_1 = rep_color["neutral"]
+									elseif rep_level == 1 then
+										rep_str = BFAC["Friendly"]
+										color_1 = rep_color["friendly"]
+									elseif rep_level == 2 then
+										rep_str = BFAC["Honored"]
+										color_1 = rep_color["honored"]
+									elseif rep_level == 3 then
+										rep_str = BFAC["Revered"]
+										color_1 = rep_color["revered"]
+									else
+										rep_str = BFAC["Exalted"]
+										color_1 = rep_color["exalted"]
+									end
+									ttAdd(1, -2, false, rep_str, color_1, rep_vendor.name, color_2)

-								local coord_text = ""
+									local coord_text = ""

-								if rep_vendor.coord_x ~= 0 and rep_vendor.coord_y ~= 0 then
-									coord_text = "(" .. rep_vendor.coord_x .. ", " .. rep_vendor.coord_y .. ")"
+									if rep_vendor.coord_x ~= 0 and rep_vendor.coord_y ~= 0 then
+										coord_text = "(" .. rep_vendor.coord_x .. ", " .. rep_vendor.coord_y .. ")"
+									end
+									ttAdd(2, -2, true, rep_vendor.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 								end
-								ttAdd(2, -2, true, rep_vendor.location, CATEGORY_COLORS["location"], coord_text, CATEGORY_COLORS["coords"])
 							end
 						end
 					end
 				end
-			elseif acquire_type == A.WORLD_DROP then
+			elseif can_display and acquire_type == A.WORLD_DROP then
 				for id_num in pairs(acquire_info) do
-					color_1 = string.gsub(quality_color, "|cff", "")
+					local drop_location = BZ[id_num]

-					if type(id_num) == "string" then
-						ttAdd(0, -1, false, L["World Drop"], color_1, BZ[id_num], CATEGORY_COLORS["location"])
-					else
-						ttAdd(0, -1, false, L["World Drop"], color_1)
+					if not location_id or drop_location == location_id then
+						color_1 = string.gsub(quality_color, "|cff", "")
+
+						if type(id_num) == "string" then
+							ttAdd(0, -1, false, L["World Drop"], color_1, drop_location, CATEGORY_COLORS["location"])
+						else
+							ttAdd(0, -1, false, L["World Drop"], color_1)
+						end
 					end
 				end
-			elseif acquire_type == A.CUSTOM then
+			elseif can_display and acquire_type == A.CUSTOM then
 				for id_num in pairs(acquire_info) do
 					ttAdd(0, -1, false, private.custom_list[id_num].name, CATEGORY_COLORS["custom"])
 				end
 				--@alpha@
-			else	-- Unhandled
+			elseif can_display then
+				-- Unhandled
 				ttAdd(0, -1, 0, L["Unhandled Recipe"], BASIC_COLORS["normal"])
 				--@end-alpha@
 			end
@@ -3273,7 +3293,7 @@ do
 						end
 						t.text = FormatRecipeText(recipe_entry)
 						t.recipe_id = spell_id
-						t.location_id = location_text
+						t.location_id = location_id

 						entry_index = self:InsertEntry(t, list_entry, entry_index, type, expand, expand_all)
 					end