vanilla-wow-addons – Rev 1
?pathlinks?
--[[
-- Name: TinyTip
-- Author: Thrae of Maelstrom (aka "Matthew Carras")
-- Release Date: 6-25-06
--
-- These functions include adding target data.
-- If you don't use these options, then you can safely
-- remove it from the TOC.
--]]
local _G = getfenv(0)
local tmp,tmp2,i,pid,RaidTable,c
local strformat = string.format
local tooltip = _G.GameTooltip
local fGetName = UIParent.GetName
local gtAddLine, AddDoubleLine = GameTooltip.AddLine, GameTooltip.AddDoubleLine
local fsSetText, fsGetText = _G.GameTooltipTextLeft1.SetText, _G.GameTooltipTextLeft1.GetText
_G.TinyTipTargetsExists = true
function TinyTipTargets_ResetReferences(_AddLine,_AddDoubleLine, _tooltip)
gtAddLine, gtAddDoubleLine, tooltip = _AddLine, _AddDoubleLine, _tooltip
end
-- Add Target of Mouseover (what they're targeting)
function TinyTipTargets_Mouse(unit,flag)
pid = unit .. "target"
if _G.UnitExists(pid) then
tmp = _G.UnitIsUnit(pid, "player")
c = _G[ fGetName(tooltip) .. "TextLeft1" ]
tmp2 = strformat("%s : |cFF%s%s|r",
(flag == 2 and fsGetText(c)) or _G.TinyTipTargetsLocale_Targeting,
(not tmp and _G.UnitIsPlayer(pid) and _G.TinyTip_ColorPlayer(pid)) or "FFFFFF",
(not tmp and (_G.UnitName(pid) or "Unknown")) or _G.TinyTipTargetsLocale_YOU)
if flag == 2 then
fsSetText( c, tmp2)
else
gtAddLine( tooltip, tmp2)
end
end
end
-- Add How Many Raid Members are targeting this unit (except you)
function TinyTipTargets_Raid(unit,num,flag)
c,tmp2 = 0,nil
if flag == 2 then
if not RaidTable then RaidTable = {} end
for c,tmp in RaidTable do
if tmp then RaidTable[c]["n"] = 0 end
end
end
for i = 1,num,1 do
pid = "raid" .. i
if _G.UnitIsUnit(pid .. "target",unit) and not _G.UnitIsUnit(pid,"player") then
if flag == 2 then
_,c = _G.UnitClass(pid)
if c then
if not RaidTable[c] then RaidTable[c] = {} end
if not RaidTable[c]["l"] then RaidTable[c]["l"] = _G.UnitClass(pid) end
RaidTable[c]["n"] = (RaidTable[c]["n"] or 0) + 1
end
elseif flag == 3 then
tmp2 = strformat("%s|cFF%s%s|r\n",
tmp2 or "", _G.TinyTip_ColorPlayer(pid), _G.UnitName(pid) or "Unknown")
c = c + 1
else
if not tmp2 then tmp2 = 0 end
tmp2 = tmp2 + 1
end
end
end
if flag == 2 and RaidTable then
gtAddLine( tooltip, _G.TinyTipTargetsLocale_TargetedBy .. ":\n" )
for c,tmp in RaidTable do
if tmp and tmp.n and tmp.n > 0 and tmp.l then
gtAddLine( tooltip, strformat("|cFF%s%s|r: %d",
strformat("%2x%2x%2x",
_G.RAID_CLASS_COLORS[c].r*255,
_G.RAID_CLASS_COLORS[c].g*255,
_G.RAID_CLASS_COLORS[c].b*255),
tmp.l,
tmp.n ) )
end
end
elseif tmp2 and flag == 3 then
gtAddLine( tooltip, strformat("%s: %s%s",
_G.TinyTipTargetsLocale_TargetedBy,
((c > 1) and "\n") or "",
tmp2) )
elseif tmp2 and tmp2 > 0 then
gtAddLine( tooltip, strformat("%s: (|cFFFFFFFF%s|r) %s",
_G.TinyTipTargetsLocale_TargetedBy, tostring(tmp2),
_G.RAID) )
end
end
-- Add How Many Party Members are targeting this unit (except you)
function TinyTipTargets_Party(unit, num, flag)
tmp,tmp2 = 0,nil
for i = 1,num,1 do
pid = "party" .. i
if _G.UnitIsUnit(pid .. "target",unit) and not _G.UnitIsUnit(pid, "player") then
if flag ~= 2 then
tmp2 = strformat("%s|cFF%s%s|r\n",
tmp2 or "", _G.TinyTip_ColorPlayer(pid), _G.UnitName(pid) or "Unknown")
tmp = tmp + 1
else
if not tmp2 then tmp2 = 0 end
tmp2 = tmp2 + 1
end
end
end
if tmp2 then
if flag ~= 2 then
gtAddLine( tooltip, strformat("%s: %s%s",
_G.TinyTipTargetsLocale_TargetedBy,
((tmp > 0) and "\n") or "",
tmp2) )
else
gtAddLine( tooltip, strformat("%s: (|cFFFFFFFF%s|r) %s",
_G.TinyTipTargetsLocale_TargetedBy, tmp2, _G.TUTORIAL_TITLE19) )
end
end
end