WoWInterface SVN Aloft

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /branches/Ace3/Aloft/AloftRoster
    from Rev 1389 to Rev 1520
    Reverse comparison

Rev 1389 → Rev 1520

AloftRoster.lua
1,6 → 1,7
--[[
Basically lifted from RosterLib-2.1r90093. per http://forums.wowace.com/showthread.php?p=226766, LibRoster-3.0 is a non-starter
]]
 
--[[
Name: Roster-2.1
Revision: $Revision: 93 $
101,8 → 102,8
self:ScheduleTimer(function() AloftRoster:ScanFullRoster() end, 0.2)
end
 
function AloftRoster:OnUnitPet(event)
self:ScheduleTimer(function() AloftRoster:ScanPet() end, 0.2)
function AloftRoster:OnUnitPet(event, unitid)
self:ScheduleTimer(function() AloftRoster:ScanPet(unitid) end, 0.2)
end
 
------------------------------------------------
219,26 → 220,39
end
 
 
local function ProcessPet(unitid)
if not unitid then return nil end
local changed
 
if not UnitExists(unitid) then
unknownUnits[unitid] = nil
-- find the pet in the roster we need to delete
for _,u in pairs(roster) do
if u.unitid == unitid then
AloftRoster:RemoveUnit(u.name)
changed = true
end
end
else
changed = select(2, AloftRoster:CreateOrUpdateUnit(unitid))
end
AloftRoster:ProcessRoster()
 
return changed
end
 
function AloftRoster:ScanPet(owner_list)
local changed
for owner in pairs(owner_list) do
local unitid = self:GetPetFromOwner(owner)
if not unitid then return end
 
if not UnitExists(unitid) then
unknownUnits[unitid] = nil
-- find the pet in the roster we need to delete
for _,u in pairs(roster) do
if u.unitid == unitid then
self:RemoveUnit(u.name)
changed = true
end
if owner_list then
if type(owner_list) == "string" then
local unitid = self:GetPetFromOwner(owner_list)
changed = ProcessPet(unitid)
elseif type(owner_list) == "table" then
for owner in pairs(owner_list) do
local unitid = self:GetPetFromOwner(owner)
changed = ProcessPet(unitid)
end
else
changed = select(2, self:CreateOrUpdateUnit(unitid))
end
self:ProcessRoster()
end
if changed then
self:SendMessage("AloftRoster_RosterUpdated")
289,8 → 303,8
 
function AloftRoster:ProcessRoster()
if next(unknownUnits, nil) then
self:CancelScheduledEvent("ScanUnknownUnits")
self:ScheduleEvent("ScanUnknownUnits", self.ScanUnknownUnits, 1, self)
self:CancelAllTimers()
self:ScheduleTimer(function() AloftRoster:ScanUnknownUnits() end, 1)
end
end