Mercurial > wow > ouroloot
comparison gui.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 | ac57a4342812 |
children | 81d5449621f8 |
comparison
equal
deleted
inserted
replaced
55:ac57a4342812 | 56:fcc0d0ff5832 |
---|---|
45 local g_loot = nil | 45 local g_loot = nil |
46 local g_generated = nil | 46 local g_generated = nil |
47 local window_title = "Ouro Loot" | 47 local window_title = "Ouro Loot" |
48 local dirty_tabs = nil | 48 local dirty_tabs = nil |
49 | 49 |
50 local pairs, ipairs, tinsert, tremove, tonumber = pairs, ipairs, table.insert, table.remove, tonumber | 50 local pairs, ipairs, tinsert, tremove, tostring, tonumber = |
51 pairs, ipairs, table.insert, table.remove, tostring, tonumber | |
51 | 52 |
52 local pprint, tabledump = addon.pprint, flib.tabledump | 53 local pprint, tabledump = addon.pprint, flib.tabledump |
53 local GetItemInfo, ITEM_QUALITY_COLORS = GetItemInfo, ITEM_QUALITY_COLORS | 54 local GetItemInfo, ITEM_QUALITY_COLORS = GetItemInfo, ITEM_QUALITY_COLORS |
54 | 55 |
55 -- En masse forward decls of symbols defined inside local blocks | 56 -- En masse forward decls of symbols defined inside local blocks |
162 local real_nip = next_insertion_position | 163 local real_nip = next_insertion_position |
163 local function LOAD() | 164 local function LOAD() |
164 _tabtexts[tabtitle] = nil | 165 _tabtexts[tabtitle] = nil |
165 tremove (_taborder, loaded_at) | 166 tremove (_taborder, loaded_at) |
166 next_insertion_position = loaded_at | 167 next_insertion_position = loaded_at |
168 local saved_next_insertion_position = loaded_at | |
167 local loaded, whynot = LoadAddOn(addon_index) | 169 local loaded, whynot = LoadAddOn(addon_index) |
168 if loaded then | 170 if loaded then |
169 addon:Print(tabtitle, "loaded.") | 171 addon:Print("%s loaded. %d |4tab:tabs; added.", tabtitle, |
172 next_insertion_position - saved_next_insertion_position) | |
170 else | 173 else |
171 what.disabled = true | 174 what.disabled = true |
172 _tabtexts[tabtitle] = what -- restore this for mouseovers | 175 _tabtexts[tabtitle] = what -- restore this for mouseovers |
173 addon:Print("%s could not load (game client reason was '%s').", tabtitle, whynot) | 176 addon:Print("%s could not load (game client reason was '%s').", tabtitle, whynot) |
174 DisableAddOn(addon_index) | 177 DisableAddOn(addon_index) |
539 end, | 542 end, |
540 | 543 |
541 ["Rebroadcast this loot entry"] = function(rowi) | 544 ["Rebroadcast this loot entry"] = function(rowi) |
542 local e = g_loot[rowi] | 545 local e = g_loot[rowi] |
543 -- This only works because GetItemInfo accepts multiple argument formats | 546 -- This only works because GetItemInfo accepts multiple argument formats |
544 addon:broadcast('loot', e.person, e.itemlink, e.count, e.cols[3].value) | 547 addon:vbroadcast('loot', e.person, e.itemlink, e.count, e.cols[3].value) |
545 addon:Print("Rebroadcast entry", rowi, e.itemlink) | 548 addon:Print("Rebroadcast entry", rowi, e.itemlink) |
546 end, | 549 end, |
547 | 550 |
548 ["Rebroadcast this boss"] = function(rowi,kind) | 551 ["Rebroadcast this boss"] = function(rowi,kind) |
549 -- if kind is boss, also need to stop at new timestamp | 552 -- if kind is boss, also need to stop at new timestamp |
551 -- this could be a lot of traffic, but frankly it's counterproductive | 554 -- this could be a lot of traffic, but frankly it's counterproductive |
552 -- to try to micromanage when ChatThrottleLib is already doing so | 555 -- to try to micromanage when ChatThrottleLib is already doing so |
553 repeat | 556 repeat |
554 local e = g_loot[rowi] | 557 local e = g_loot[rowi] |
555 if e.kind == 'boss' then | 558 if e.kind == 'boss' then |
556 addon:broadcast('boss', e.reason, e.bossname, e.instance) | 559 addon:vbroadcast('boss', e.reason, e.bossname, e.instance) |
557 elseif e.kind == 'loot' then | 560 elseif e.kind == 'loot' then |
558 -- This only works because GetItemInfo accepts multiple argument formats | 561 -- This only works because GetItemInfo accepts multiple argument formats |
559 addon:broadcast('loot', e.person, e.itemlink, e.count, e.cols[3].value) | 562 addon:vbroadcast('loot', e.person, e.itemlink, e.count, e.cols[3].value) |
560 end | 563 end |
561 addon:Print("Rebroadcast entry", rowi, e.itemlink or e.bossname or UNKNOWN) | 564 addon:Print("Rebroadcast entry", rowi, e.itemlink or e.bossname or UNKNOWN) |
562 rowi = rowi + 1 | 565 rowi = rowi + 1 |
563 until rowi >= fencepost | 566 until rowi >= fencepost |
564 end, | 567 end, |
2160 -- first click | 2163 -- first click |
2161 if text then | 2164 if text then |
2162 data.name = text | 2165 data.name = text |
2163 local getinstance = StaticPopup_Show("OUROL_EOI_INSERT","instance") | 2166 local getinstance = StaticPopup_Show("OUROL_EOI_INSERT","instance") |
2164 getinstance.data = data | 2167 getinstance.data = data |
2165 getinstance.editBox:SetText(addon.instance_tag()) | 2168 getinstance.editBox:SetText((addon.instance_tag())) |
2166 -- This suppresses auto-hide (which would case the getinstance dialog | 2169 -- This suppresses auto-hide (which would case the getinstance dialog |
2167 -- to go away), but only when mouse clicking. OnEnter is on its own. | 2170 -- to go away), but only when mouse clicking. OnEnter is on its own. |
2168 return true | 2171 return true |
2169 end | 2172 end |
2170 end | 2173 end |