vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Ludwig_SellValue -
                Originally based on SellValueLite, this addon allows viewing of sellvalues
--]]

local currentPlayer = UnitName("player")

--[[ Local Functions ]]--

local function LinkToID(link)
        if link then
                local _, _, id = string.find(link, "(%d+):");
                return tonumber(id);
        end
end

local function AddOwners(frame, id)
        if not(frame and id and BagnonSets.showForeverTooltips) then return; end
        
        for player in BagnonDB.GetPlayers() do
                if player ~= currentPlayer then
                        local invCount = BagnonDB.GetItemTotal(id, player, -2)
                        for bagID = 0, 4 do
                                invCount = invCount + BagnonDB.GetItemTotal(id, player, bagID)
                        end

                        local bankCount = BagnonDB.GetItemTotal(id, player, -1)
                        for bagID = 5, 10 do
                                bankCount = bankCount + BagnonDB.GetItemTotal(id, player, bagID)
                        end

                        if (invCount + bankCount) > 0 then
                                local tooltipString = player .. " has"
                                if invCount > 0 then
                                        tooltipString = tooltipString .. " " .. invCount .. " (Bags)";
                                end
                                if bankCount > 0 then
                                        tooltipString = tooltipString .. " " .. bankCount .. " (Bank)";
                                end
                                frame:AddLine(tooltipString, 0, 0.8, 1);
                        end
                end
        end
end

--[[  Function Hooks ]]--

local Blizz_ContainerFrameItemButton_OnEnter = ContainerFrameItemButton_OnEnter;
ContainerFrameItemButton_OnEnter = function()
        Blizz_ContainerFrameItemButton_OnEnter();

        local bag = this:GetParent():GetID();
        local slot = this:GetID();
        
        AddOwners(GameTooltip, LinkToID(GetContainerItemLink(bag, slot)));
        GameTooltip:Show();
end

local Bliz_GameTooltip_SetLootItem = GameTooltip.SetLootItem;
GameTooltip.SetLootItem = function(self, slot)
        Bliz_GameTooltip_SetLootItem(self, slot);
        
        AddOwners(self, LinkToID(GetLootSlotLink(slot)));
        self:Show();
end

local Bliz_SetHyperlink = GameTooltip.SetHyperlink;
GameTooltip.SetHyperlink = function(self, link, count)
        if link then
                Bliz_SetHyperlink(self, link, count);
                
                if not count then
                        count = 1; 
                end
                
                local id = LinkToID(link);
                if id then
                        AddOwners(self, id);
                else
                        AddOwners(self, link);
                end
                self:Show();
        end
end

local Bliz_GameTooltip_SetLootRollItem = GameTooltip.SetLootRollItem;
GameTooltip.SetLootRollItem = function(self, rollID) 
        Bliz_GameTooltip_SetLootRollItem(self, rollID);
        
        AddOwners(self, LinkToID(GetLootRollItemLink(rollID)));
        self:Show();
end

local Bliz_SetItemRef = SetItemRef;
SetItemRef = function(link, text, button)
        Bliz_SetItemRef(link, text, button);
        
        AddOwners(ItemRefTooltip, LinkToID(link));
        ItemRefTooltip:Show();
end

local Bliz_GameTooltip_SetAuctionItem = GameTooltip.SetAuctionItem;
GameTooltip.SetAuctionItem = function(self, type, index)
        Bliz_GameTooltip_SetAuctionItem(self, type, index);
        
        AddOwners(self, LinkToID(GetAuctionItemLink(type, index)));
        self:Show();
end

--[[ Money Frame Tooltip ]]--

--Alters the tooltip of bagnon moneyframes to show total gold across all characters on the current realm
function BagnonFrameMoney_OnEnter()
        if this:GetLeft() > (UIParent:GetRight() / 2) then
                GameTooltip:SetOwner(this, "ANCHOR_LEFT");
        else
                GameTooltip:SetOwner(this, "ANCHOR_RIGHT");
        end     
        GameTooltip:SetText(string.format(BAGNON_FOREVER_MONEY_ON_REALM, GetRealmName()));
        
        local money = 0;
        for player in BagnonDB.GetPlayers() do
                money = money + BagnonDB.GetMoney(player);
        end
        
        SetTooltipMoney(GameTooltip, money);
        GameTooltip:Show();
end

Generated by GNU Enscript 1.6.5.90.