diff Modules/Tooltip.lua @ 3:bbcf81868171

Code cleanup.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sat, 22 May 2010 11:34:19 -0700
parents
children 0271e781b154
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Modules/Tooltip.lua	Sat May 22 11:34:19 2010 -0700
@@ -0,0 +1,153 @@
+local addonName, addonTable = ...; 
+local addon = _G[addonName]
+
+local utils = addonTable.utils
+
+local function ShowTipWithPricing(tip, link, num)
+	if (link == nil) then
+		return;
+	end
+
+	local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, _, _, _, _, itemVendorPrice = GetItemInfo (link);
+	-- local _, _, Color, Ltype, Id, Enchant, Gem1, Gem2, Gem3, Gem4, Suffix, Unique, LinkLvl, Name = string.find(link, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
+
+	local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(itemName)
+	
+	local AHCut = 0.05
+	local keep = 1 - AHCut
+
+	if investedTotal > 0 then
+		tip:AddDoubleLine("\124cffffffffIA: Total Invested", utils:FormatMoney(investedTotal));
+		tip:AddDoubleLine("\124cffffffffIA: Invested/Item (" .. count .. ")", utils:FormatMoney(ceil(investedPerItem)));
+		tip:AddDoubleLine("\124cffffffffIA: Minimum faction AH Price: ", utils:FormatMoney(ceil(investedPerItem/keep)))
+		tip:Show()
+	end
+end
+
+hooksecurefunc (GameTooltip, "SetBagItem",
+	function(tip, bag, slot)
+		local _, num = GetContainerItemInfo(bag, slot);
+		ShowTipWithPricing (tip, GetContainerItemLink(bag, slot), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetAuctionItem",
+	function (tip, type, index)
+		ShowTipWithPricing (tip, GetAuctionItemLink(type, index));
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetAuctionSellItem",
+	function (tip)
+		local name, _, count = GetAuctionSellItemInfo();
+		local __, link = GetItemInfo(name);
+		ShowTipWithPricing (tip, link, num);
+	end
+);
+
+
+hooksecurefunc (GameTooltip, "SetLootItem",
+	function (tip, slot)
+		if LootSlotIsItem(slot) then
+			local link, _, num = GetLootSlotLink(slot);
+			ShowTipWithPricing (tip, link, num);
+		end
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetLootRollItem",
+	function (tip, slot)
+		local _, _, num = GetLootRollItemInfo(slot);
+		ShowTipWithPricing (tip, GetLootRollItemLink(slot), num);
+	end
+);
+
+
+hooksecurefunc (GameTooltip, "SetInventoryItem",
+	function (tip, unit, slot)
+		ShowTipWithPricing (tip, GetInventoryItemLink(unit, slot), GetInventoryItemCount(unit, slot));
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetGuildBankItem",
+	function (tip, tab, slot)
+		local _, num = GetGuildBankItemInfo(tab, slot);
+		ShowTipWithPricing (tip, GetGuildBankItemLink(tab, slot), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetTradeSkillItem",
+	function (tip, skill, id)
+		local link = GetTradeSkillItemLink(skill);
+		local num  = GetTradeSkillNumMade(skill);
+		if id then
+			link = GetTradeSkillReagentItemLink(skill, id);
+			num = select (3, GetTradeSkillReagentInfo(skill, id));
+		end
+
+		ShowTipWithPricing (tip, link, num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetTradePlayerItem",
+	function (tip, id)
+		local _, _, num = GetTradePlayerItemInfo(id);
+		ShowTipWithPricing (tip, GetTradePlayerItemLink(id), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetTradeTargetItem",
+	function (tip, id)
+		local _, _, num = GetTradeTargetItemInfo(id);
+		ShowTipWithPricing (tip, GetTradeTargetItemLink(id), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetQuestItem",
+	function (tip, type, index)
+		local _, _, num = GetQuestItemInfo(type, index);
+		ShowTipWithPricing (tip, GetQuestItemLink(type, index), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetQuestLogItem",
+	function (tip, type, index)
+		local num, _;
+		if type == "choice" then
+			_, _, num = GetQuestLogChoiceInfo(index);
+		else
+			_, _, num = GetQuestLogRewardInfo(index)
+		end
+
+		ShowTipWithPricing (tip, GetQuestLogItemLink(type, index), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetInboxItem",
+	function (tip, index, attachIndex)
+		local _, _, num = GetInboxItem(index, attachIndex);
+		ShowTipWithPricing (tip, GetInboxItemLink(index, attachIndex), num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetSendMailItem",
+	function (tip, id)
+		local name, _, num = GetSendMailItem(id)
+		local name, link = GetItemInfo(name);
+		ShowTipWithPricing (tip, link, num);
+	end
+);
+
+hooksecurefunc (GameTooltip, "SetHyperlink",
+	function (tip, itemstring, num)
+		local name, link = GetItemInfo (itemstring);
+		ShowTipWithPricing (tip, link, num);
+	end
+);
+
+hooksecurefunc (ItemRefTooltip, "SetHyperlink",
+	function (tip, itemstring)
+		local name, link = GetItemInfo (itemstring);
+		ShowTipWithPricing (tip, link);
+	end
+);
\ No newline at end of file