comparison Main.lua @ 537:ec2ee7b48c21 7.2.5-1

Update for 7.2.5 PTR compatibility; 'texture' arguments for currency conversion can be 'string' or 'number' now.
author MMOSimca
date Thu, 11 May 2017 21:23:12 -0400
parents 4a7989584ae8
children 1bcaf08ae424
comparison
equal deleted inserted replaced
536:e8e30b0bcf45 537:ec2ee7b48c21
318 local MAX_CURRENCY_ID_GAP = 800 318 local MAX_CURRENCY_ID_GAP = 800
319 319
320 local currency_info_lookup = {} 320 local currency_info_lookup = {}
321 321
322 322
323 function CurrencyInfoToID(name, texture) 323 -- Going to have to support paths until Patch 7.2.5 comes out (after that, the 'tostring' use can go away)
324 if not name or not texture then return nil end 324 function CurrencyInfoToID(name, texture_id)
325 return currency_info_lookup[("%s:%s"):format(name, texture)] 325 if not name or not texture_id then return nil end
326 end 326 return currency_info_lookup[("%s:%s"):format(name, tostring(texture_id))]
327 327 end
328 328
329
330 -- Going to have to support paths until Patch 7.2.5 comes out (after that, the 'tostring' use can go away)
329 function PopulateCurrencyInfoLookup() 331 function PopulateCurrencyInfoLookup()
330 local currency_index = 1 332 local currency_index = 1
331 local gap_since_last_currency = 0 333 local gap_since_last_currency = 0
332 repeat 334 repeat
333 -- Store ID by info (name and texture combined) 335 -- Store ID by info (name and texture_id combined)
334 local name, _, texture = GetCurrencyInfo(currency_index) 336 local name, _, texture_id = GetCurrencyInfo(currency_index)
335 currency_info_lookup[("%s:%s"):format(name, texture)] = currency_index
336 337
337 -- If we found nothing, increment gap 338 -- If we found nothing, increment gap
338 if not name or not texture or (name == "" and texture == "") then 339 if name and texture_id and name ~= "" and tostring(texture_id) ~= "0" and tostring(texture_id) ~= "" then
340 currency_info_lookup[("%s:%s"):format(name, tostring(texture_id))] = currency_index
341 gap_since_last_currency = 0
342 else
339 gap_since_last_currency = gap_since_last_currency + 1 343 gap_since_last_currency = gap_since_last_currency + 1
340 else
341 gap_since_last_currency = 0
342 end 344 end
343 345
344 -- Increment loop counter 346 -- Increment loop counter
345 currency_index = currency_index + 1 347 currency_index = currency_index + 1
346 348
2548 --price_string = ("%s:%s:%s:%s"):format(price_string, battleground_rating, personal_rating, required_season_amount or 0) 2550 --price_string = ("%s:%s:%s:%s"):format(price_string, battleground_rating, personal_rating, required_season_amount or 0)
2549 price_string = ("%s:%s:%s"):format(price_string, personal_rating, required_season_amount or 0) 2551 price_string = ("%s:%s:%s"):format(price_string, personal_rating, required_season_amount or 0)
2550 2552
2551 for cost_index = 1, item_count do 2553 for cost_index = 1, item_count do
2552 -- The third return (Blizz calls "currency_link") of GetMerchantItemCostItem only returns item links as of Patch 5.3.0. 2554 -- The third return (Blizz calls "currency_link") of GetMerchantItemCostItem only returns item links as of Patch 5.3.0.
2553 local texture_path, amount_required, item_link, name = _G.GetMerchantItemCostItem(item_index, cost_index) 2555 local texture_id, amount_required, item_link, name = _G.GetMerchantItemCostItem(item_index, cost_index)
2554 2556
2555 -- Try to get item ID 2557 -- Try to get item ID
2556 local item_id = ItemLinkToID(item_link) 2558 local item_id = ItemLinkToID(item_link)
2557 2559
2558 -- FUTURE: At some point, we should make the output from these two cases (item_id vs currency_id) slightly different, so that WoWDB doesn't have to guess if it is a currency or item 2560 -- FUTURE: At some point, we should make the output from these two cases (item_id vs currency_id) slightly different, so that WoWDB doesn't have to guess if it is a currency or item
2559 -- Handle cases when the additional cost is another item 2561 -- Handle cases when the additional cost is another item
2560 if item_id and item_id > 0 then 2562 if item_id and item_id > 0 then
2561 currency_list[#currency_list + 1] = ("(%s:%d)"):format(amount_required, item_id) 2563 currency_list[#currency_list + 1] = ("(%s:%d)"):format(amount_required, item_id)
2562 -- Handle cases when the additional cost is another currency 2564 -- Handle cases when the additional cost is another currency
2563 else 2565 else
2564 local currency_id = CurrencyInfoToID(name, texture_path) 2566 local currency_id = CurrencyInfoToID(name, texture_id)
2565 if currency_id and currency_id > 0 then 2567 if currency_id and currency_id > 0 then
2566 currency_list[#currency_list + 1] = ("(%s:%d)"):format(amount_required, currency_id) 2568 currency_list[#currency_list + 1] = ("(%s:%d)"):format(amount_required, currency_id)
2567 end 2569 end
2568 end 2570 end
2569 end 2571 end