comparison Main.lua @ 55:2b5a2d60dd51

Removed code for 4.3.4 compatibility. Set merchant filters to All before scanning and then restore them afterward.
author James D. Callahan III <jcallahan@curse.com>
date Tue, 03 Jul 2012 11:54:36 -0500
parents 052c4075df13
children b58277aa11da
comparison
equal deleted inserted replaced
54:7125e4976001 55:2b5a2d60dd51
833 end 833 end
834 834
835 if _G.type(verify_func) == "function" and not verify_func() then 835 if _G.type(verify_func) == "function" and not verify_func() then
836 return 836 return
837 end 837 end
838 -- TODO: Remove this check once the MoP client goes live
839 local wow_version = private.wow_version
840 local loot_registry = {} 838 local loot_registry = {}
841 action_data.loot_list = {} 839 action_data.loot_list = {}
842 action_data.looting = true 840 action_data.looting = true
843 841
844 if wow_version == "5.0.1" then 842 for loot_slot = 1, _G.GetNumLootItems() do
845 for loot_slot = 1, _G.GetNumLootItems() do 843 local icon_texture, item_text, quantity, quality, locked = _G.GetLootSlotInfo(loot_slot)
846 local icon_texture, item_text, quantity, quality, locked = _G.GetLootSlotInfo(loot_slot) 844 local slot_type = _G.GetLootSlotType(loot_slot)
847 845
848 local slot_type = _G.GetLootSlotType(loot_slot) 846 if slot_type == _G.LOOT_SLOT_ITEM then
849 847 local item_id = ItemLinkToID(_G.GetLootSlotLink(loot_slot))
850 if slot_type == _G.LOOT_SLOT_ITEM then 848 loot_registry[item_id] = (loot_registry[item_id]) or 0 + quantity
851 local item_id = ItemLinkToID(_G.GetLootSlotLink(loot_slot)) 849 elseif slot_type == _G.LOOT_SLOT_MONEY then
852 loot_registry[item_id] = (loot_registry[item_id]) or 0 + quantity 850 table.insert(action_data.loot_list, ("money:%d"):format(_toCopper(item_text)))
853 elseif slot_type == _G.LOOT_SLOT_MONEY then 851 elseif slot_type == _G.LOOT_SLOT_CURRENCY then
854 table.insert(action_data.loot_list, ("money:%d"):format(_toCopper(item_text))) 852 table.insert(action_data.loot_list, ("currency:%d:%s"):format(quantity, icon_texture:match("[^\\]+$"):lower()))
855 elseif slot_type == _G.LOOT_SLOT_CURRENCY then
856 table.insert(action_data.loot_list, ("currency:%d:%s"):format(quantity, icon_texture:match("[^\\]+$"):lower()))
857 end
858 end
859 else
860 for loot_slot = 1, _G.GetNumLootItems() do
861 local icon_texture, item_text, quantity, quality, locked = _G.GetLootSlotInfo(loot_slot)
862 if _G.LootSlotIsItem(loot_slot) then
863 local item_id = ItemLinkToID(_G.GetLootSlotLink(loot_slot))
864 loot_registry[item_id] = (loot_registry[item_id]) or 0 + quantity
865 elseif _G.LootSlotIsCoin(loot_slot) then
866 table.insert(action_data.loot_list, ("money:%d"):format(_toCopper(item_text)))
867 elseif _G.LootSlotIsCurrency(loot_slot) then
868 table.insert(action_data.loot_list, ("currency:%d:%s"):format(quantity, icon_texture:match("[^\\]+$"):lower()))
869 end
870 end 853 end
871 end 854 end
872 855
873 for item_id, quantity in pairs(loot_registry) do 856 for item_id, quantity in pairs(loot_registry) do
874 table.insert(action_data.loot_list, ("%d:%d"):format(item_id, quantity)) 857 table.insert(action_data.loot_list, ("%d:%d"):format(item_id, quantity))
891 local unit_type, unit_idnum = ParseGUID(_G.UnitGUID("target")) 874 local unit_type, unit_idnum = ParseGUID(_G.UnitGUID("target"))
892 875
893 if unit_type ~= private.UNIT_TYPES.NPC or not unit_idnum then 876 if unit_type ~= private.UNIT_TYPES.NPC or not unit_idnum then
894 return 877 return
895 end 878 end
879 local num_items = _G.GetMerchantNumItems()
880 local current_filters = _G.GetMerchantFilter()
896 local _, merchant_standing = UnitFactionStanding("target") 881 local _, merchant_standing = UnitFactionStanding("target")
897 local merchant = NPCEntry(unit_idnum) 882 local merchant = NPCEntry(unit_idnum)
898 merchant.sells = merchant.sells or {} 883 merchant.sells = merchant.sells or {}
899 884
900 local num_items = _G.GetMerchantNumItems() 885 _G.MerchantFrame_SetFilter(nil, _G.LE_LOOT_FILTER_ALL)
901 886
902 for item_index = 1, num_items do 887 for item_index = 1, num_items do
903 local _, _, copper_price, stack_size, num_available, _, extended_cost = _G.GetMerchantItemInfo(item_index) 888 local _, _, copper_price, stack_size, num_available, _, extended_cost = _G.GetMerchantItemInfo(item_index)
904 local item_id = ItemLinkToID(_G.GetMerchantItemLink(item_index)) 889 local item_id = ItemLinkToID(_G.GetMerchantItemLink(item_index))
905 890
962 end 947 end
963 948
964 if _G.CanMerchantRepair() then 949 if _G.CanMerchantRepair() then
965 merchant.can_repair = true 950 merchant.can_repair = true
966 end 951 end
952 _G.MerchantFrame_SetFilter(nil, current_filters)
967 end 953 end
968 end -- do-block 954 end -- do-block
969 955
970 function WDP:PET_BAR_UPDATE() 956 function WDP:PET_BAR_UPDATE()
971 if not action_data.label or not action_data.label == "mind_control" then 957 if not action_data.label or not action_data.label == "mind_control" then