Mercurial > wow > ouroloot
comparison core.lua @ 142:375059a11c1d 2.21.0
Updates for WoD.
- Basic WoD changes (TOC bump, LE_* constants, etc)
- The instance_abbrev table is now indexed by InstanceMapID values; the old
method is still supported for transition.
- Some initial placeholder values for WoD until we actually start seeing them.
author | Farmbuyer of US-Kilrogg <farmbuyer@gmail.com> |
---|---|
date | Thu, 13 Nov 2014 22:12:33 -0500 |
parents | c176359e7265 |
children | 543fcf15add7 |
comparison
equal
deleted
inserted
replaced
141:13d81d7faa0a | 142:375059a11c1d |
---|---|
55 otherwise | 55 otherwise |
56 - itemname not including square brackets | 56 - itemname not including square brackets |
57 - id itemID as number | 57 - id itemID as number |
58 - itemlink full clickable link | 58 - itemlink full clickable link |
59 - itexture icon path (e.g., Interface\Icons\INV_Misc_Rune_01) | 59 - itexture icon path (e.g., Interface\Icons\INV_Misc_Rune_01) |
60 - quality ITEM_QUALITY_* number | 60 - quality [LE_]ITEM_QUALITY_* number |
61 - unique an almost-certainly-unique string, content meaningless | 61 - unique an almost-certainly-unique string, content meaningless |
62 - disposition offspec/gvault/shard; missing otherwise; can be set from | 62 - disposition offspec/gvault/shard; missing otherwise; can be set from |
63 the extratext field | 63 the extratext field |
64 - count e.g., "x3"; missing otherwise; can be set/removed from | 64 - count e.g., "x3"; missing otherwise; can be set/removed from |
65 extratext; triggers only for a stack of items, not "the boss | 65 extratext; triggers only for a stack of items, not "the boss |
292 | 292 |
293 -- don't use NUM_ITEM_QUALITIES as the upper loop bound unless we expect | 293 -- don't use NUM_ITEM_QUALITIES as the upper loop bound unless we expect |
294 -- heirlooms to show up | 294 -- heirlooms to show up |
295 thresholds = {} | 295 thresholds = {} |
296 for i = 0,6 do | 296 for i = 0,6 do |
297 thresholds[i] = _G.ITEM_QUALITY_COLORS[i].hex .. _G["ITEM_QUALITY"..i.."_DESC"] .. "|r" | 297 thresholds[i] = _G.ITEM_QUALITY_COLORS[i].hex .. _G['ITEM_QUALITY'..i..'_DESC'] .. '|r' |
298 end | 298 end |
299 | 299 |
300 _G.setfenv (1, _G) | 300 _G.setfenv (1, _G) |
301 end | 301 end |
302 | 302 |
438 print("Collecting hyperlink object <",tostring(ud),">") | 438 print("Collecting hyperlink object <",tostring(ud),">") |
439 end | 439 end |
440 --@end-debug@ | 440 --@end-debug@ |
441 | 441 |
442 -- TEXT will automatically be surrounded by brackets | 442 -- TEXT will automatically be surrounded by brackets |
443 -- COLOR can be ITEM_QUALITY_* or a formatting string ("|cff...") | 443 -- COLOR can be LE_ITEM_QUALITY_* or a formatting string ("|cff...") |
444 -- FUNC can be "MethodName", "tab_title", or a function | 444 -- FUNC can be "MethodName", "tab_title", or a function |
445 -- | 445 -- |
446 -- Returns an opaque token and a matching number. Calling tostring() on | 446 -- Returns an opaque token and a matching number. Calling tostring() on |
447 -- the token will yield a formatted clickable string that can be displayed | 447 -- the token will yield a formatted clickable string that can be displayed |
448 -- in local chat. Clicking a tab_title hyperlink opens the GUI to that | 448 -- in local chat. Clicking a tab_title hyperlink opens the GUI to that |
528 [9] = "40", | 528 [9] = "40", |
529 } | 529 } |
530 function instance_tag() | 530 function instance_tag() |
531 -- Return values of GetInstanceInfo changed considerably, now much | 531 -- Return values of GetInstanceInfo changed considerably, now much |
532 -- more useful and consistent. | 532 -- more useful and consistent. |
533 local name, typeof, diffcode, _, raidsize = GetInstanceInfo() | 533 local name, typeof, diffcode, _, raidsize, _, _, mapid, currsize = GetInstanceInfo() |
534 local t | 534 local t |
535 name = addon.instance_abbrev[name] or name | 535 name = addon.instance_abbrev[mapid] or addon.instance_abbrev[name] or name |
536 if typeof == nil or typeof == "none" or diffcode == 0 or diffcode == nil then | 536 if typeof == nil or typeof == "none" or diffcode == 0 or diffcode == nil then |
537 -- either outdoors or in a scenario (revisit those maybe) | 537 -- either outdoors or in a scenario (revisit those maybe) |
538 return name, MAX_RAID_MEMBERS | 538 return name, MAX_RAID_MEMBERS |
539 end | 539 end |
540 t = codemap[diffcode] or ("?"..diffcode.."?") | 540 t = codemap[diffcode] or ("?"..diffcode.."?") |
649 -- 2 bar | 649 -- 2 bar |
650 end | 650 end |
651 end | 651 end |
652 ]] | 652 ]] |
653 do | 653 do |
654 local AnimTimerFrame = CreateFrame('Frame',nil,nil) -- FIXME transition hack | |
654 local caches = {} | 655 local caches = {} |
655 local cleanup_group = AnimTimerFrame:CreateAnimationGroup() | 656 local cleanup_group = AnimTimerFrame:CreateAnimationGroup() |
656 local time, next = time, next | 657 local time, next = time, next |
657 local new, del = flib.new, flib.del | 658 local new, del = flib.new, flib.del |
658 cleanup_group:SetLooping("REPEAT") | 659 cleanup_group:SetLooping("REPEAT") |
758 self.callbacks = LibStub("CallbackHandler-1.0"):New(self) | 759 self.callbacks = LibStub("CallbackHandler-1.0"):New(self) |
759 --function self.callbacks:OnUsed (target_aka_self, eventname) end | 760 --function self.callbacks:OnUsed (target_aka_self, eventname) end |
760 --function self.callbacks:OnUnused (target_aka_self, eventname) end | 761 --function self.callbacks:OnUnused (target_aka_self, eventname) end |
761 | 762 |
762 if _G.OuroLootOptsDB == nil then | 763 if _G.OuroLootOptsDB == nil then |
763 local vclick = self.format_hypertext ([[click here]], ITEM_QUALITY_UNCOMMON, 'help') | 764 local vclick = self.format_hypertext ([[click here]], LE_ITEM_QUALITY_UNCOMMON, 'help') |
764 self:ScheduleTimer(function(s) | 765 self:ScheduleTimer(function(s) |
765 for id in pairs(self.default_itemfilter) do | 766 for id in pairs(self.default_itemfilter) do |
766 opts.itemfilter[id] = true | 767 opts.itemfilter[id] = true |
767 end | 768 end |
768 for id in pairs(self.default_itemvault) do | 769 for id in pairs(self.default_itemvault) do |
877 -- | 878 -- |
878 -- Everything dealing with a prefix hyperlink is my fault. | 879 -- Everything dealing with a prefix hyperlink is my fault. |
879 -- | 880 -- |
880 -- CFPrint added instead of the usual Print testing of the first arg for | 881 -- CFPrint added instead of the usual Print testing of the first arg for |
881 -- frame-ness, which would slow down all printing and only rarely be useful. | 882 -- frame-ness, which would slow down all printing and only rarely be useful. |
882 -- | |
883 -- There is no ITEM_QUALITY_LEGENDARY constant. Sigh. | |
884 do | 883 do |
885 local AC = LibStub("AceConsole-3.0") | 884 local AC = LibStub("AceConsole-3.0") |
886 function addon.chatprefix (code, arg) | 885 function addon.chatprefix (code, arg) |
887 local f = '' -- empty -> BuildMainDisplay(empty) -> main tab | 886 local f = '' -- empty -> BuildMainDisplay(empty) -> main tab |
888 if code == "GoToLootLine" then | 887 if code == "GoToLootLine" then |
889 f = code | 888 f = code |
890 --elseif ..... | 889 --elseif ..... |
891 end | 890 end |
892 local ret, num = self.format_hypertext ("Ouro Loot", --[[legendary]]5, f) | 891 local ret, num = self.format_hypertext ("Ouro Loot", |
892 LE_ITEM_QUALITY_LEGENDARY, f) | |
893 if code == "GoToLootLine" then | 893 if code == "GoToLootLine" then |
894 self.lootjumps[num] = arg | 894 self.lootjumps[num] = arg |
895 end | 895 end |
896 return ret, num | 896 return ret, num |
897 end | 897 end |
931 end | 931 end |
932 | 932 |
933 while opts.keybinding do | 933 while opts.keybinding do |
934 if InCombatLockdown() then | 934 if InCombatLockdown() then |
935 local reload = self.format_hypertext ([[the options tab]], | 935 local reload = self.format_hypertext ([[the options tab]], |
936 ITEM_QUALITY_UNCOMMON, 'opt') | 936 LE_ITEM_QUALITY_UNCOMMON, 'opt') |
937 self:Print("Cannot create '%s' as a keybinding while in combat!", | 937 self:Print("Cannot create '%s' as a keybinding while in combat!", |
938 opts.keybinding_text) | 938 opts.keybinding_text) |
939 self:Print("The rest of the addon will continue to work, but you will need to reload out of combat to get the keybinding. Either type /reload or use the button on %s in the lower right.", | 939 self:Print("The rest of the addon will continue to work, but you will need to reload out of combat to get the keybinding. Either type /reload or use the button on %s in the lower right.", |
940 tostring(reload)) | 940 tostring(reload)) |
941 break | 941 break |
1195 tag string stored as 'unique' in loot entries and used as keys in history. | 1195 tag string stored as 'unique' in loot entries and used as keys in history. |
1196 Item IDs are always of numeric type. | 1196 Item IDs are always of numeric type. |
1197 | 1197 |
1198 'Activate', enabled_p, rebroadcast_p, threshold | 1198 'Activate', enabled_p, rebroadcast_p, threshold |
1199 The two boolean predicates are self-explanatory. The threshold is an | 1199 The two boolean predicates are self-explanatory. The threshold is an |
1200 ITEM_QUALITY_* constant integer. | 1200 LE_ITEM_QUALITY_* constant integer. |
1201 | 1201 |
1202 'Deactivate', raiderdata | 1202 'Deactivate', raiderdata |
1203 After all system events have been unregistered. Argument is a holder of | 1203 After all system events have been unregistered. Argument is a holder of |
1204 the current g_loot.raiders table (in 'raidersnap'). | 1204 the current g_loot.raiders table (in 'raidersnap'). |
1205 | 1205 |
1623 local iname, ilink, iquality = GetItemInfo(itemid) | 1623 local iname, ilink, iquality = GetItemInfo(itemid) |
1624 local cache_miss | 1624 local cache_miss |
1625 if (not iname) or (not itexture) then | 1625 if (not iname) or (not itexture) then |
1626 cache_miss = true | 1626 cache_miss = true |
1627 iname, ilink, iquality, itexture = | 1627 iname, ilink, iquality, itexture = |
1628 UNKNOWN..': '..itemid, 'item:6948', ITEM_QUALITY_COMMON, [[Interface\ICONS\INV_Misc_QuestionMark]] | 1628 UNKNOWN..': '..itemid, 'item:6948', LE_ITEM_QUALITY_COMMON, [[Interface\ICONS\INV_Misc_QuestionMark]] |
1629 end | 1629 end |
1630 self.dprint('loot',">>"..prefix, "R:", recipient, "U:", unique, "I:", | 1630 self.dprint('loot',">>"..prefix, "R:", recipient, "U:", unique, "I:", |
1631 itemid, "C:", count, "frm:", from, "ex:", extratext, "q:", iquality) | 1631 itemid, "C:", count, "frm:", from, "ex:", extratext, "q:", iquality) |
1632 | 1632 |
1633 itemid = tonumber(ilink:match("item:(%d+)") or 0) | 1633 itemid = tonumber(ilink:match("item:(%d+)") or 0) |
1832 -- that would result in a pile of teensy functions, most of which would | 1832 -- that would result in a pile of teensy functions, most of which would |
1833 -- never be called. Too much overhead. (2.0: Most of these removed now | 1833 -- never be called. Too much overhead. (2.0: Most of these removed now |
1834 -- that GUI is in place.) | 1834 -- that GUI is in place.) |
1835 do | 1835 do |
1836 local green_help_link = addon.format_hypertext ([[Click here]], | 1836 local green_help_link = addon.format_hypertext ([[Click here]], |
1837 ITEM_QUALITY_UNCOMMON, 'help') | 1837 LE_ITEM_QUALITY_UNCOMMON, 'help') |
1838 function addon:OnSlash (txt) --, editbox) | 1838 function addon:OnSlash (txt) --, editbox) |
1839 txt = strtrim(txt:lower()) | 1839 txt = strtrim(txt:lower()) |
1840 local cmd, arg = "" | 1840 local cmd, arg = "" |
1841 do | 1841 do |
1842 local s,e = txt:find("^%a+") | 1842 local s,e = txt:find("^%a+") |
2195 self:broadcast('revcheck',version_large) | 2195 self:broadcast('revcheck',version_large) |
2196 | 2196 |
2197 else | 2197 else |
2198 self.dprint('comm', "ours is older, (possibly) yammering") | 2198 self.dprint('comm', "ours is older, (possibly) yammering") |
2199 if newer_warning then | 2199 if newer_warning then |
2200 local pop = addon.format_hypertext ([[click here]], ITEM_QUALITY_UNCOMMON, | 2200 local pop = addon.format_hypertext ([[click here]], LE_ITEM_QUALITY_UNCOMMON, |
2201 function() | 2201 function() |
2202 -- Sadly, this is not generated by the packager, so hardcode it | 2202 -- Sadly, this is not generated by the packager, so hardcode it |
2203 -- for now. The 'data' field is handled differently for onshow | 2203 -- for now. The 'data' field is handled differently for onshow |
2204 -- than for other callbacks. | 2204 -- than for other callbacks. |
2205 StaticPopup_Show("OUROL_URL", | 2205 StaticPopup_Show("OUROL_URL", |
2206 --[[text_arg1=]]nil, --[[text_arg2=]]nil, | 2206 --[[text_arg1=]]nil, --[[text_arg2=]]nil, |
2207 --[[data=]][[http://www.curse.com/addons/wow/ouroloot]]) | 2207 --[[data=]][[http://www.curse.com/addons/wow/ouroloot]]) |
2208 end) | 2208 end) |
2209 local ping = addon.format_hypertext ([[click here]], ITEM_QUALITY_UNCOMMON, 'DoPing') | 2209 local ping = addon.format_hypertext ([[click here]], LE_ITEM_QUALITY_UNCOMMON, 'DoPing') |
2210 self:Print(newer_warning, tostring(pop), tostring(ping)) | 2210 self:Print(newer_warning, tostring(pop), tostring(ping)) |
2211 newer_warning = nil | 2211 newer_warning = nil |
2212 end | 2212 end |
2213 end | 2213 end |
2214 end | 2214 end |