diff bossmods.lua @ 56:fcc0d0ff5832

- instance_tag() also returns max instance size as a plain number, adjust call sites - clean up .raiders table, add some new fields, use copies of this instead of a single string - make sure datarev field is properly updated when it's already present - avoid multiple GetRaidRosterInfo loops scattered throughout the addon, instead just traverse the .raiders list, regularly updated - make the 'loot' and 'boss' broadcasts versioned. Handle receiving older. - new format for plaintext attendance output
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Fri, 13 Apr 2012 04:28:46 +0000
parents 4f1e71f62776
children c01875b275ca
line wrap: on
line diff
--- a/bossmods.lua	Sat Apr 07 05:40:20 2012 +0000
+++ b/bossmods.lua	Fri Apr 13 04:28:46 2012 +0000
@@ -35,7 +35,7 @@
 local tonumber = tonumber
 
 -- WoW
-local GetRaidRosterInfo = GetRaidRosterInfo
+--local GetRaidRosterInfo = GetRaidRosterInfo
 
 -- OL
 local addon_do_boss 
@@ -44,7 +44,7 @@
 ------ Deadly Boss Mods
 do
 	local DBM
-	local location
+	local location, maxsize
 	local real_loadmod
 	-- When zoning into a raid instance not seen this session, make sure
 	-- we don't report a previous raid instance as current location.  DBM
@@ -66,7 +66,12 @@
 			name = "Unknown Boss"
 		end
 
-		local it = location or self.instance_tag()
+		local it
+		if location then
+			it = location
+		else
+			it, maxsize = self.instance_tag()
+		end
 		self.latest_instance = it
 		location = nil
 
@@ -75,18 +80,7 @@
 			duration = math.floor (GetTime() - mod.combatInfo.pull)
 		end
 
-		-- attendance:  maybe put people in groups 6,7,8 into a "backup/standby"
-		-- list?  probably too specific to guild practices.
-		local raiders = {}
-		for i = 1, GetNumRaidMembers() do
-			local name = GetRaidRosterInfo(i)
-			if name then
-				tinsert (raiders, name)
-			end
-		end
-		table.sort(raiders)
-
-		return addon_do_boss (self, reason, name, it, duration, raiders)
+		return addon_do_boss (self, reason, name, it, maxsize, duration)
 	end
 
 	local function callback(...) DBMBossCallback(addon,...) end
@@ -102,7 +96,9 @@
 			addon_do_boss = OL_boss_worker
 			local r = DBM:RegisterCallback("kill", callback)
 					  DBM:RegisterCallback("wipe", callback)
-					  DBM:RegisterCallback("pull", function() location = self.instance_tag() end)
+					  DBM:RegisterCallback("pull", function()
+						  location, maxsize = self.instance_tag()
+					  end)
 			real_loadmod = DBM.LoadMod
 			DBM.LoadMod = resetting_loadmod
 			return r > 0