Mercurial > wow > ouroloot
comparison core.lua @ 39:8f7ec6ccf5e3
Comment/debug changes to help in tracking down cache bug. Do not run OnAccept when pressing Enter in an empty editbox.
| author | Farmbuyer of US-Kilrogg <farmbuyer@gmail.com> |
|---|---|
| date | Thu, 29 Dec 2011 23:15:51 +0000 |
| parents | bb41be8f13b2 |
| children | dc3a66688e50 |
comparison
equal
deleted
inserted
replaced
| 38:bb41be8f13b2 | 39:8f7ec6ccf5e3 |
|---|---|
| 695 -- Recent loot cache | 695 -- Recent loot cache |
| 696 local candidates = {} | 696 local candidates = {} |
| 697 local function prefer_local_loots (cache) | 697 local function prefer_local_loots (cache) |
| 698 -- The function name is a bit of a misnomer, as local entries overwrite | 698 -- The function name is a bit of a misnomer, as local entries overwrite |
| 699 -- remote entries as the candidate table is populated. This routine is | 699 -- remote entries as the candidate table is populated. This routine is |
| 700 -- here to extract the results once the cache timers have expired. | 700 -- here to extract the final results once the cache timers have expired. |
| 701 -- | 701 -- |
| 702 -- Keep this sync'd with the local_override branch below. | 702 -- Keep this sync'd with the local_override branch below. |
| 703 for i,sig in ipairs(candidates) do | 703 for i,sig in ipairs(candidates) do |
| 704 addon.dprint('loot', "processing candidate entry", i, sig) | 704 addon.dprint('loot', "processing candidate entry", i, sig) |
| 705 local loot = candidates[sig] | 705 local loot = candidates[sig] |
| 736 UNKNOWN..': '..itemid, 'item:6948', ITEM_QUALITY_COMMON, [[ICONS\INV_Misc_QuestionMark]] | 736 UNKNOWN..': '..itemid, 'item:6948', ITEM_QUALITY_COMMON, [[ICONS\INV_Misc_QuestionMark]] |
| 737 end | 737 end |
| 738 self.dprint('loot',">>_do_loot, R:", recipient, "I:", itemid, "C:", count, "frm:", from, "ex:", extratext, "q:", iquality) | 738 self.dprint('loot',">>_do_loot, R:", recipient, "I:", itemid, "C:", count, "frm:", from, "ex:", extratext, "q:", iquality) |
| 739 | 739 |
| 740 itemid = tonumber(ilink:match("item:(%d+)") or 0) | 740 itemid = tonumber(ilink:match("item:(%d+)") or 0) |
| 741 -- This is only a loop to make jumping out of it easy, and still do cleanup below. | 741 -- This is only a 'while' to make jumping out of it easy and still do cleanup below. |
| 742 while local_override or ((iquality >= self.threshold) and not opts.itemfilter[itemid]) do | 742 while local_override or ((iquality >= self.threshold) and not opts.itemfilter[itemid]) do |
| 743 if (self.rebroadcast and (not from)) and not local_override then | 743 if (self.rebroadcast and (not from)) and not local_override then |
| 744 self:broadcast('loot', recipient, itemid, count) | 744 self:broadcast('loot', recipient, itemid, count) |
| 745 end | 745 end |
| 746 if (not self.enabled) and (not local_override) then break end | 746 if (not self.enabled) and (not local_override) then break end |
| 747 local signature = recipient .. iname .. (count or "") | 747 local signature = recipient .. iname .. (count or "") |
| 748 if from and self.recent_loot:test(signature) then | 748 if from and self.recent_loot:test(signature) then |
| 749 self.dprint('cache', "loot <",signature,"> already in cache, skipping") | 749 self.dprint('cache', "remote loot <",signature,"> already in cache, skipping") |
| 750 else | 750 else |
| 751 -- There is some redundancy in all this, in the interests of ease-of-coding | 751 -- There is some redundancy in all this, in the interests of ease-of-coding |
| 752 i = { | 752 i = { |
| 753 kind = 'loot', | 753 kind = 'loot', |
| 754 person = recipient, | 754 person = recipient, |
| 764 bcast_from = from, | 764 bcast_from = from, |
| 765 extratext = extratext, | 765 extratext = extratext, |
| 766 is_heroic = self:is_heroic_item(ilink), | 766 is_heroic = self:is_heroic_item(ilink), |
| 767 } | 767 } |
| 768 if local_override then | 768 if local_override then |
| 769 -- adding things by hand, don't wait for network cache timeouts | 769 -- player is adding loot by hand, don't wait for network cache timeouts |
| 770 -- keep this sync'd with prefer_local_loots above | |
| 770 if i.extratext == 'shard' | 771 if i.extratext == 'shard' |
| 771 or i.extratext == 'gvault' | 772 or i.extratext == 'gvault' |
| 772 or i.extratext == 'offspec' | 773 or i.extratext == 'offspec' |
| 773 then | 774 then |
| 774 i.disposition = i.extratext | 775 i.disposition = i.extratext |
| 778 and (i.disposition ~= 'gvault') | 779 and (i.disposition ~= 'gvault') |
| 779 and (not self.history_suppress) | 780 and (not self.history_suppress) |
| 780 then | 781 then |
| 781 self:_addHistoryEntry(looti) | 782 self:_addHistoryEntry(looti) |
| 782 end | 783 end |
| 783 i = looti -- mostly for gui's manual entry | 784 i = looti -- return value mostly for gui's manual entry |
| 784 else | 785 else |
| 785 self.recent_loot:add(signature) | 786 self.recent_loot:add(signature) |
| 786 candidates[signature] = i | 787 candidates[signature] = i |
| 787 tinsert (candidates, signature) | 788 tinsert (candidates, signature) |
| 788 self.dprint('cache', "loot <",signature,"> added to cache, candidate", #candidates) | 789 self.dprint('cache', "loot <",signature,"> added to cache as candidate", #candidates) |
| 789 end | 790 end |
| 790 end | 791 end |
| 791 break | 792 break |
| 792 end | 793 end |
| 793 self.dprint('loot',"<<_do_loot out") | 794 self.dprint('loot',"<<_do_loot out") |
| 1278 if reason == 'wipe' and opts.no_tracking_wipes then break end | 1279 if reason == 'wipe' and opts.no_tracking_wipes then break end |
| 1279 bossname = (opts.snarky_boss and self.boss_abbrev[bossname] or bossname) or bossname | 1280 bossname = (opts.snarky_boss and self.boss_abbrev[bossname] or bossname) or bossname |
| 1280 local not_from_local = duration == nil | 1281 local not_from_local = duration == nil |
| 1281 local signature = bossname .. reason | 1282 local signature = bossname .. reason |
| 1282 if not_from_local and self.recent_boss:test(signature) then | 1283 if not_from_local and self.recent_boss:test(signature) then |
| 1283 self.dprint('cache', "boss <",signature,"> already in cache, skipping") | 1284 self.dprint('cache', "remote boss <",signature,"> already in cache, skipping") |
| 1284 else | 1285 else |
| 1285 self.recent_boss:add(signature) | 1286 self.recent_boss:add(signature) |
| 1286 g_boss_signpost = #g_loot + 1 | 1287 g_boss_signpost = #g_loot + 1 |
| 1287 self.dprint('loot', "added boss signpost", g_boss_signpost) | 1288 self.dprint('loot', "added boss signpost", g_boss_signpost) |
| 1288 -- Possible scenarios: (1) we don't see a boss event at all (e.g., we're | 1289 -- Possible scenarios: (1) we don't see a boss event at all (e.g., we're |
