Mercurial > wow > ouroloot
comparison core.lua @ 42:4f1e71f62776
Handle moving from one instance kill/loot into a new instance, and then getting loot from trash in the new instance before seeing any bosses.
| author | Farmbuyer of US-Kilrogg <farmbuyer@gmail.com> |
|---|---|
| date | Fri, 13 Jan 2012 01:12:36 +0000 |
| parents | d6b8858c1b64 |
| children | a561a967b5e6 |
comparison
equal
deleted
inserted
replaced
| 41:d6b8858c1b64 | 42:4f1e71f62776 |
|---|---|
| 280 t = t .. "h" | 280 t = t .. "h" |
| 281 end | 281 end |
| 282 return name .. "(" .. t .. ")" | 282 return name .. "(" .. t .. ")" |
| 283 end | 283 end |
| 284 addon.instance_tag = instance_tag -- grumble | 284 addon.instance_tag = instance_tag -- grumble |
| 285 addon.latest_instance = nil -- spelling reminder, assigned elsewhere | |
| 285 | 286 |
| 286 | 287 |
| 287 ------ Expiring caches | 288 ------ Expiring caches |
| 288 --[[ | 289 --[[ |
| 289 foo = create_new_cache("myfoo",15[,cleanup]) -- ttl | 290 foo = create_new_cache("myfoo",15[,cleanup]) -- ttl |
| 693 end | 694 end |
| 694 end | 695 end |
| 695 | 696 |
| 696 -- helper for CHAT_MSG_LOOT handler | 697 -- helper for CHAT_MSG_LOOT handler |
| 697 do | 698 do |
| 699 local function maybe_trash_kill_entry() | |
| 700 -- this is set on various boss interactions, so we've got a kill/wipe | |
| 701 -- entry already | |
| 702 if addon.latest_instance then return end | |
| 703 addon.latest_instance = instance_tag() | |
| 704 addon:_mark_boss_kill (addon._addLootEntry{ | |
| 705 kind='boss',reason='kill',bosskill=[[trash]],instance=addon.latest_instance,duration=0 | |
| 706 }) | |
| 707 end | |
| 708 | |
| 698 -- Recent loot cache | 709 -- Recent loot cache |
| 699 local candidates = {} | 710 local candidates = {} |
| 700 local function prefer_local_loots (cache) | 711 local function prefer_local_loots (cache) |
| 701 -- The function name is a bit of a misnomer, as local entries overwrite | 712 -- The function name is a bit of a misnomer, as local entries overwrite |
| 702 -- remote entries as the candidate table is populated. This routine is | 713 -- remote entries as the candidate table is populated. This routine is |
| 706 for i,sig in ipairs(candidates) do | 717 for i,sig in ipairs(candidates) do |
| 707 addon.dprint('loot', "processing candidate entry", i, sig) | 718 addon.dprint('loot', "processing candidate entry", i, sig) |
| 708 local loot = candidates[sig] | 719 local loot = candidates[sig] |
| 709 if loot then | 720 if loot then |
| 710 addon.dprint('loot', i, "was found") | 721 addon.dprint('loot', i, "was found") |
| 722 maybe_trash_kill_entry() -- Generate *some* kind of boss/location entry | |
| 711 candidates[sig] = nil | 723 candidates[sig] = nil |
| 712 local looti = addon._addLootEntry(loot) | 724 local looti = addon._addLootEntry(loot) |
| 713 if (loot.disposition ~= 'shard') | 725 if (loot.disposition ~= 'shard') |
| 714 and (loot.disposition ~= 'gvault') | 726 and (loot.disposition ~= 'gvault') |
| 715 and (not addon.history_suppress) | 727 and (not addon.history_suppress) |
| 1262 end | 1274 end |
| 1263 bossi = addon._addLootEntry(boss) | 1275 bossi = addon._addLootEntry(boss) |
| 1264 -- addon. | 1276 -- addon. |
| 1265 bossi = addon._adjustBossOrder (bossi, g_boss_signpost) or bossi | 1277 bossi = addon._adjustBossOrder (bossi, g_boss_signpost) or bossi |
| 1266 g_boss_signpost = nil | 1278 g_boss_signpost = nil |
| 1279 addon.latest_instance = boss.instance | |
| 1267 addon.dprint('loot', "added boss entry", bossi) | 1280 addon.dprint('loot', "added boss entry", bossi) |
| 1268 if boss.reason == 'kill' then | 1281 if boss.reason == 'kill' then |
| 1269 addon:_mark_boss_kill (bossi) | 1282 addon:_mark_boss_kill (bossi) |
| 1270 if opts.chatty_on_kill then | 1283 if opts.chatty_on_kill then |
| 1271 addon:Print("Registered kill for '%s' in %s!", boss.bosskill, boss.instance) | 1284 addon:Print("Registered kill for '%s' in %s!", boss.bosskill, boss.instance) |
