# HG changeset patch # User James D. Callahan III # Date 1371583124 18000 # Node ID 841eeb16dcf78be8dd1f2d84dc452a0b91987a39 # Parent 57cb63fe5ba8012eb5fed65d995504430dd56360 Update group pets on GROUP_ROSTER_UPDATE as well as on UNIT_PET since pets may exist before groups are formed. diff -r 57cb63fe5ba8 -r 841eeb16dcf7 Main.lua --- a/Main.lua Mon Jun 17 14:39:09 2013 -0500 +++ b/Main.lua Tue Jun 18 14:18:44 2013 -0500 @@ -1049,28 +1049,7 @@ end -function WDP:GROUP_ROSTER_UPDATE() - local is_raid = _G.IsInRaid() - local unit_type = is_raid and "raid" or "party" - local group_size = is_raid and _G.GetNumGroupMembers() or _G.GetNumSubgroupMembers() - - table.wipe(group_member_uids) - - Debug("GROUP_ROSTER_UPDATE: %s group - %d members.", unit_type, group_size) - - for index = 1, group_size do - local group_unit = unit_type .. index - local unit_guid = _G.UnitGUID(group_unit) - - Debug("%s (%s) added as GUID %s", group_unit, _G.UnitName(group_unit), unit_guid) - group_member_uids[unit_guid] = true - end - group_member_uids[_G.UnitGUID("player")] = true -end - - -function WDP:UNIT_PET(event_name, unit_id) - local unit_guid = _G.UnitGUID(unit_id) +local function UpdateUnitPet(unit_guid, unit_id) local current_pet_guid = group_owner_guids_to_pet_guids[unit_guid] if current_pet_guid then @@ -1088,6 +1067,32 @@ end +function WDP:GROUP_ROSTER_UPDATE(event_name) + local is_raid = _G.IsInRaid() + local unit_type = is_raid and "raid" or "party" + local group_size = is_raid and _G.GetNumGroupMembers() or _G.GetNumSubgroupMembers() + + table.wipe(group_member_uids) + + Debug("GROUP_ROSTER_UPDATE: %s group - %d members.", unit_type, group_size) + + for index = 1, group_size do + local unit_id = unit_type .. index + local unit_guid = _G.UnitGUID(unit_id) + + group_member_uids[unit_guid] = true + Debug("%s (%s) added as GUID %s", unit_id, _G.UnitName(unit_id), unit_guid) + UpdateUnitPet(unit_guid, unit_id) + end + group_member_uids[_G.UnitGUID("player")] = true +end + + +function WDP:UNIT_PET(event_name, unit_id) + UpdateUnitPet(_G.UnitGUID(unit_id), unit_id) +end + + function WDP:SHOW_LOOT_TOAST(event_name, loot_type, item_link, quantity) if loot_type ~= "item" then return