Quantcast

Modified GenerateTooltipContent() to work with the new acquire_data design.

James D. Callahan III [03-16-10 - 05:18]
Modified GenerateTooltipContent() to work with the new acquire_data design.
Filename
Frame.lua
diff --git a/Frame.lua b/Frame.lua
index 30089cf..b8d8565 100644
--- a/Frame.lua
+++ b/Frame.lua
@@ -688,167 +688,182 @@ do
 		local playerFaction = Player.faction
 		local rep_list = private.reputation_list

-		for index, acquire in pairs(recipe_entry["Acquire"]) do
-			local acquire_type = acquire.type
+		for acquire_type, acquire_info in pairs(recipe_entry.acquire_data) do
 			local display_tip = false

 			if acquire_type == A.TRAINER then
-				local trainer = private.trainer_list[acquire.ID]
+				for id_num in pairs(acquire_info) do
+					local trainer = private.trainer_list[id_num]

-				color_1 = addon:hexcolor("TRAINER")
-				display_tip, color_2 = GetTipFactionInfo(trainer.faction)
+					color_1 = addon:hexcolor("TRAINER")
+					display_tip, color_2 = GetTipFactionInfo(trainer.faction)

-				if display_tip then
-					local coord_text = ""
+					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)
+						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)

-					color_1 = addon:hexcolor("NORMAL")
-					color_2 = addon:hexcolor("HIGH")
+						color_1 = addon:hexcolor("NORMAL")
+						color_2 = addon:hexcolor("HIGH")

-					ttAdd(1, -2, true, trainer.location, color_1, coord_text, color_2)
+						ttAdd(1, -2, true, trainer.location, color_1, coord_text, color_2)
+					end
 				end
 			elseif acquire_type == A.VENDOR then
-				local vendor = private.vendor_list[acquire.ID]
-				local faction
+				for id_num in pairs(acquire_info) do
+					local vendor = private.vendor_list[id_num]
+					local faction

-				color_1 = addon:hexcolor("VENDOR")
-				display_tip, color_2, faction = GetTipFactionInfo(vendor.faction)
+					color_1 = addon:hexcolor("VENDOR")
+					display_tip, color_2, faction = GetTipFactionInfo(vendor.faction)

-				if display_tip then
-					local coord_text = ""
+					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)
+						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)

-					color_1 = addon:hexcolor("NORMAL")
-					color_2 = addon:hexcolor("HIGH")
+						color_1 = addon:hexcolor("NORMAL")
+						color_2 = addon:hexcolor("HIGH")

-					ttAdd(1, -2, true, vendor.location, color_1, coord_text, color_2)
-				elseif faction then
-					ttAdd(0, -1, false, faction.." "..L["Vendor"], color_1)
+						ttAdd(1, -2, true, vendor.location, color_1, coord_text, color_2)
+					elseif faction then
+						ttAdd(0, -1, false, faction.." "..L["Vendor"], color_1)
+					end
 				end
 			elseif acquire_type == A.MOB then
-				local mob = private.mob_list[acquire.ID]
-				local coord_text = ""
+				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 .. ")"
-				end
-				color_1 = addon:hexcolor("MOBDROP")
-				color_2 = addon:hexcolor("HORDE")
+					if mob.coord_x ~= 0 and mob.coord_y ~= 0 then
+						coord_text = "(" .. mob.coord_x .. ", " .. mob.coord_y .. ")"
+					end
+					color_1 = addon:hexcolor("MOBDROP")
+					color_2 = addon:hexcolor("HORDE")

-				ttAdd(0, -1, false, L["Mob Drop"], color_1, mob.name, color_2)
+					ttAdd(0, -1, false, L["Mob Drop"], color_1, mob.name, color_2)

-				color_1 = addon:hexcolor("NORMAL")
-				color_2 = addon:hexcolor("HIGH")
+					color_1 = addon:hexcolor("NORMAL")
+					color_2 = addon:hexcolor("HIGH")

-				ttAdd(1, -2, true, mob.location, color_1, coord_text, color_2)
+					ttAdd(1, -2, true, mob.location, color_1, coord_text, color_2)
+				end
 			elseif acquire_type == A.QUEST then
-				local quest = private.quest_list[acquire.ID]
+				for id_num in pairs(acquire_info) do
+					local quest = private.quest_list[id_num]

-				if quest then
-					local faction
+					if quest then
+						local faction

-					color_1 = addon:hexcolor("QUEST")
-					display_tip, color_2, faction = GetTipFactionInfo(quest.faction)
+						color_1 = addon:hexcolor("QUEST")
+						display_tip, color_2, faction = GetTipFactionInfo(quest.faction)

-					if display_tip then
-						local coord_text = ""
+						if display_tip then
+							local coord_text = ""

-						if quest.coord_x ~= 0 and quest.coord_y ~= 0 then
-							coord_text = "(" .. quest.coord_x .. ", " .. quest.coord_y .. ")"
-						end
-						ttAdd(0, -1, false, L["Quest"], color_1, quest.name, color_2)
+							if quest.coord_x ~= 0 and quest.coord_y ~= 0 then
+								coord_text = "(" .. quest.coord_x .. ", " .. quest.coord_y .. ")"
+							end
+							ttAdd(0, -1, false, L["Quest"], color_1, quest.name, color_2)

-						color_1 = addon:hexcolor("NORMAL")
-						color_2 = addon:hexcolor("HIGH")
+							color_1 = addon:hexcolor("NORMAL")
+							color_2 = addon:hexcolor("HIGH")

-						ttAdd(1, -2, true, quest.location, color_1, coord_text, color_2)
-					elseif faction then
-						ttAdd(0, -1, false, faction.." "..L["Quest"], color_1)
+							ttAdd(1, -2, true, quest.location, color_1, coord_text, color_2)
+						elseif faction then
+							ttAdd(0, -1, false, faction.." "..L["Quest"], color_1)
+						end
 					end
 				end
 			elseif acquire_type == A.SEASONAL then
-				color_1 = addon:hexcolor("SEASON")
-				ttAdd(0, -1, 0, SEASONAL_CATEGORY, color_1, private.seasonal_list[acquire.ID].name, color_1)
-			elseif acquire_type == A.REPUTATION then
-				local repvendor = private.vendor_list[acquire.rep_vendor]
-				local coord_text = ""
-
-				if repvendor.coord_x ~= 0 and repvendor.coord_y ~= 0 then
-					coord_text = "(" .. repvendor.coord_x .. ", " .. repvendor.coord_y .. ")"
+				for id_num in pairs(acquire_info) do
+					color_1 = addon:hexcolor("SEASON")
+					ttAdd(0, -1, 0, SEASONAL_CATEGORY, color_1, private.seasonal_list[id_num].name, color_1)
 				end
-				local repfac = rep_list[acquire.ID]
-				local repname = repfac.name
-
-				color_1 = addon:hexcolor("REP")
-				color_2 = addon:hexcolor("NORMAL")
-				ttAdd(0, -1, false, _G.REPUTATION, color_1, repname, color_2)
-
-				local rStr = ""
-				local rep_level = acquire.rep_level
-
-				if rep_level == 0 then
-					rStr = FACTION_NEUTRAL
-					color_1 = addon:hexcolor("NEUTRAL")
-				elseif rep_level == 1 then
-					rStr = BFAC["Friendly"]
-					color_1 = addon:hexcolor("FRIENDLY")
-				elseif rep_level == 2 then
-					rStr = BFAC["Honored"]
-					color_1 = addon:hexcolor("HONORED")
-				elseif rep_level == 3 then
-					rStr = BFAC["Revered"]
-					color_1 = addon:hexcolor("REVERED")
-				else
-					rStr = BFAC["Exalted"]
-					color_1 = addon:hexcolor("EXALTED")
-				end
-				display_tip, color_2 = GetTipFactionInfo(repvendor.faction)
+			elseif acquire_type == A.REPUTATION then
+				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 rep_vendor = private.vendor_list[vendor_id]
+							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 .. ")"
+							end
+							color_1 = addon:hexcolor("REP")
+							color_2 = addon:hexcolor("NORMAL")
+							ttAdd(0, -1, false, _G.REPUTATION, color_1, rep_list[rep_id].name, color_2)
+
+							local rStr = ""
+
+							if rep_level == 0 then
+								rStr = FACTION_NEUTRAL
+								color_1 = addon:hexcolor("NEUTRAL")
+							elseif rep_level == 1 then
+								rStr = BFAC["Friendly"]
+								color_1 = addon:hexcolor("FRIENDLY")
+							elseif rep_level == 2 then
+								rStr = BFAC["Honored"]
+								color_1 = addon:hexcolor("HONORED")
+							elseif rep_level == 3 then
+								rStr = BFAC["Revered"]
+								color_1 = addon:hexcolor("REVERED")
+							else
+								rStr = BFAC["Exalted"]
+								color_1 = addon:hexcolor("EXALTED")
+							end
+							display_tip, color_2 = GetTipFactionInfo(rep_vendor.faction)

-				if display_tip then
-					ttAdd(1, -2, false, rStr, color_1, repvendor.name, color_2)
+							if display_tip then
+								ttAdd(1, -2, false, rStr, color_1, rep_vendor.name, color_2)

-					color_1 = addon:hexcolor("NORMAL")
-					color_2 = addon:hexcolor("HIGH")
+								color_1 = addon:hexcolor("NORMAL")
+								color_2 = addon:hexcolor("HIGH")

-					ttAdd(2, -2, true, repvendor.location, color_1, coord_text, color_2)
+								ttAdd(2, -2, true, rep_vendor.location, color_1, coord_text, color_2)
+							end
+						end
+					end
 				end
 			elseif acquire_type == A.WORLD_DROP then
-				local acquire_id = acquire.ID
-
-				color_1 = quality_color
+				for id_num in pairs(acquire_info) do
+					color_1 = quality_color

-				ttAdd(0, -1, false, L["World Drop"], color_1)
+					ttAdd(0, -1, false, L["World Drop"], color_1)
+				end
 			elseif acquire_type == A.CUSTOM then
-				ttAdd(0, -1, false, private.custom_list[acquire.ID].name, addon:hexcolor("NORMAL"))
+				for id_num in pairs(acquire_info) do
+					ttAdd(0, -1, false, private.custom_list[id_num].name, addon:hexcolor("NORMAL"))
+				end
 			elseif acquire_type == A.PVP then
-				local vendor = private.vendor_list[acquire.ID]
-				local faction
+				for id_num in pairs(acquire_info) do
+					local vendor = private.vendor_list[id_num]
+					local faction

-				color_1 = addon:hexcolor("VENDOR")
-				display_tip, color_2, faction = GetTipFactionInfo(vendor.faction)
+					color_1 = addon:hexcolor("VENDOR")
+					display_tip, color_2, faction = GetTipFactionInfo(vendor.faction)

-				if display_tip then
-					local coord_text = ""
+					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)
+						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)

-					color_1 = addon:hexcolor("NORMAL")
-					color_2 = addon:hexcolor("HIGH")
+						color_1 = addon:hexcolor("NORMAL")
+						color_2 = addon:hexcolor("HIGH")

-					ttAdd(1, -2, true, vendor.location, color_1, coord_text, color_2)
-				elseif faction then
-					ttAdd(0, -1, false, faction.." "..L["Vendor"], color_1)
+						ttAdd(1, -2, true, vendor.location, color_1, coord_text, color_2)
+					elseif faction then
+						ttAdd(0, -1, false, faction.." "..L["Vendor"], color_1)
+					end
 				end
 				--@alpha@
 			else	-- Unhandled