WoWInterface SVN Aloft

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /branches/Ace3/Aloft/AloftTargetTrackingData
    from Rev 1654 to Rev 1695
    Reverse comparison

Rev 1654 → Rev 1695

AloftTargetTrackingData.lua
283,10 → 283,12
if UnitExists(unitid) then
self:UpdateUnitTracking(unitid, nil)
end
--[[
unitid = "arenapet" .. i
if UnitExists(unitid) then
-- TODO: detect that an opponent has brought out a pet dynamically, and track that?
end
]]
end
end
 
319,9 → 321,11
ChatFrame7:AddMessage("AloftTargetTrackingData:GetGUIdUnitid(): content " .. tostring(k) .. "<>" .. tostring(v))
end
]]
if originGUId then
-- ChatFrame7:AddMessage("AloftTargetTrackingData:GetGUIdUnitid(): mapped " .. tostring(originGUId) .. "<>" .. tostring(self.guidToUnitid[originGUId]))
return self.guidToUnitid[originGUId]
if originGUId and self.guidToUnitid[originGUId] then
for unitid, _ in pairs(self.guidToUnitid[originGUId]) do
-- ChatFrame7:AddMessage("AloftTargetTrackingData:GetGUIdUnitid(): mapped " .. tostring(originGUId) .. "<>" .. tostring(self.guidToUnitid[originGUId]))
return unitid
end
end
return nil
end
472,11 → 476,22
self.nameplateIdToTargetGUId[nameplateId] = nil
end
 
-- for friendly group-members only
-- for friendly group-members and arena unitids only
if not suffix and targetGUId then
-- ChatFrame7:AddMessage("AloftTargetTrackingData:ClearUnitTracking(): clear groupmember " .. "/" .. tostring(targetGUId) .. "/" .. tostring(self.guidToUnitid[targetGUId]) .. "/" .. tostring(targetId) .. "/" .. tostring(self.unitidToGUId[targetId]))
self.unitidToGUId[targetId] = nil
self.guidToUnitid[targetGUId] = nil
if self.guidToUnitid[targetGUId] then
self.guidToUnitid[targetGUId][targetId] = nil
 
-- clean out empty guid->unitid maps
local empty = true
for u, _ in pairs(self.guidToUnitid[targetGUId]) do
empty = false
end
if empty then
self.guidToUnitid[targetGUId] = nil
end
end
end
end
 
516,42 → 531,55
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. "live/exists " .. tostring(targetId))
 
local targetGUId = UnitGUID(targetId)
self:ClearGUIdTracking(targetGUId)
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(targetGUId))
if targetGUId then
self:ClearGUIdTracking(targetGUId)
 
local name = UnitName(targetId)
local race, _ = UnitRace(targetId) -- assuming that if there is a race, the unit name is unique (i.e. a player char)
local _, class = UnitClass(targetId) -- assuming that if there is a class, the unit name is unique (i.e. a player char)
local raidTargetIndex = GetRaidTargetIndex(targetId) -- the target is required to have a raid icon assigned
local isUnique = self:IsUnique(name, UnitClassification(targetId), UnitLevel(targetId))
local name = UnitName(targetId)
local race, _ = UnitRace(targetId) -- assuming that if there is a race, the unit name is unique (i.e. a player char)
local _, class = UnitClass(targetId) -- assuming that if there is a class, the unit name is unique (i.e. a player char)
local raidTargetIndex = GetRaidTargetIndex(targetId) -- the target is required to have a raid icon assigned
local isUnique = self:IsUnique(name, UnitClassification(targetId), UnitLevel(targetId))
local nameplateId
 
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(race) .. "/" .. tostring(class) .. "/" .. tostring(raidTargetIndex) .. "/" .. tostring(isUnique))
if targetGUId and ((race and class) or raidTargetIndex or isUnique) then
local nameplateId
if race and class then
nameplateId = self:FormatNameplateId(name, true, nil, nil)
elseif raidTargetIndex or isUnique then
nameplateId = self:FormatNameplateId(name, nil, raidTargetIndex, isUnique)
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(targetId) .. "/" .. tostring(race) .. "/" .. tostring(class) .. "/" .. tostring(raidTargetIndex) .. "/" .. tostring(isUnique))
if ((race and class) or raidTargetIndex or isUnique) then
if race and class then
nameplateId = self:FormatNameplateId(name, true, nil, nil)
elseif raidTargetIndex or isUnique then
nameplateId = self:FormatNameplateId(name, nil, raidTargetIndex, isUnique)
end
 
if nameplateId then
AloftTargetTrackingData.targetIdToNameplateId[targetId] = nameplateId
if (not AloftTargetTrackingData.nameplateIdToTargetId[nameplateId]) then AloftTargetTrackingData.nameplateIdToTargetId[nameplateId] = { } end
AloftTargetTrackingData.nameplateIdToTargetId[nameplateId][targetId] = true
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(self.targetIdToNameplateId[targetId]) .. "/" .. tostring(self.nameplateIdToTargetId[nameplateId][targetId]))
 
self.nameplateIdToTargetGUId[nameplateId] = targetGUId
self.targetGUIdToNameplateId[targetGUId] = nameplateId
self.targetGUIdToNameplateTime[targetGUId] = GetTime()
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): >>>>> " .. tostring(targetGUId) .. "/" .. tostring(self.targetGUIdToNameplateId[targetGUId]) .. "/" .. tostring(self.targetGUIdToNameplateTime[targetGUId]) .. "/" .. tostring(nameplate and self.nameplateIdToTargetGUId[nameplateId]) .. "/" .. tostring(name))
end
end
 
AloftTargetTrackingData.targetIdToNameplateId[targetId] = nameplateId
if (not AloftTargetTrackingData.nameplateIdToTargetId[nameplateId]) then AloftTargetTrackingData.nameplateIdToTargetId[nameplateId] = { } end
AloftTargetTrackingData.nameplateIdToTargetId[nameplateId][targetId] = true
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(self.targetIdToNameplateId[targetId]) .. "/" .. tostring(self.nameplateIdToTargetId[nameplateId][targetId]))
-- for friendly group-members and arena unitids only
if not suffix then
self.unitidToGUId[targetId] = targetGUId
 
self.nameplateIdToTargetGUId[nameplateId] = targetGUId
self.targetGUIdToNameplateId[targetGUId] = nameplateId
self.targetGUIdToNameplateTime[targetGUId] = GetTime()
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): >>>>> " .. tostring(targetGUId) .. "/" .. tostring(self.targetGUIdToNameplateId[targetGUId]) .. "/" .. tostring(self.targetGUIdToNameplateTime[targetGUId]) .. "/" .. tostring(nameplate and self.nameplateIdToTargetGUId[nameplateId]) .. "/" .. tostring(name))
-- create an empty guid->unitid map
if not self.guidToUnitid[targetGUId] then
self.guidToUnitid[targetGUId] = { }
end
self.guidToUnitid[targetGUId][targetId] = true
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): " .. tostring(name) .. " --- " .. tostring(targetId) .. "/" .. tostring(self.guidToUnitid[targetGUId][targetId]) .. " <> " .. tostring(targetGUId) .. "/" .. tostring(self.unitidToGUId[targetId]))
end
 
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): trigger " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(targetGUId))
self:SendMessage("AloftTargetTrackingData:OnTargetTrackingDataUpdated", targetId, nameplateId)
if nameplateId then
-- ChatFrame7:AddMessage("AloftTargetTrackingData:UpdateUnitTracking(): trigger " .. tostring(unitid) .. "/" .. tostring(suffix) .. "/" .. tostring(targetId) .. "/" .. tostring(targetGUId))
self:SendMessage("AloftTargetTrackingData:OnTargetTrackingDataUpdated", targetId, nameplateId)
end
end
 
-- for non-targets/friendly group-members only
if not suffix then
self.unitidToGUId[targetId] = targetGUId
self.guidToUnitid[targetGUId] = targetId
end
end
 
--[[