Mercurial > wow > askmrrobot
comparison AskMrRobot.lua @ 31:44c285acfff0 v8
fixed item display bug on summary tab
| author | yellowfive | 
|---|---|
| date | Sat, 18 Oct 2014 10:33:33 -0700 | 
| parents | aabec73640a0 | 
| children | 4ba69d2ee252 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 30:55906ac875ae | 31:44c285acfff0 | 
|---|---|
| 33 AskMrRobot.eventListener:RegisterEvent("VOID_STORAGE_UPDATE") | 33 AskMrRobot.eventListener:RegisterEvent("VOID_STORAGE_UPDATE") | 
| 34 | 34 | 
| 35 AskMrRobot.AddonName = ... | 35 AskMrRobot.AddonName = ... | 
| 36 AskMrRobot.ChatPrefix = "_AMR" | 36 AskMrRobot.ChatPrefix = "_AMR" | 
| 37 | 37 | 
| 38 -- flag to turn on debugging behavior | |
| 39 AskMrRobot.debug = false | |
| 40 | |
| 38 -- the main user interface window | 41 -- the main user interface window | 
| 39 AskMrRobot.mainWindow = nil | 42 AskMrRobot.mainWindow = nil | 
| 40 | 43 | 
| 41 local _amrLDB | 44 local _amrLDB | 
| 42 local _minimapIcon | 45 local _minimapIcon | 
| 448 | 451 | 
| 449 function AskMrRobot.GetCurrencies() | 452 function AskMrRobot.GetCurrencies() | 
| 450 local currencies = {}; | 453 local currencies = {}; | 
| 451 currencies[-1] = GetMoney() | 454 currencies[-1] = GetMoney() | 
| 452 | 455 | 
| 453 local currencyList = {61, 81, 241, 361, 384, 394, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 416, 515, 614, 615, 676, 679} | 456 local currencyList = {61, 81, 241, 361, 384, 394, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 416, 515, 614, 615, 676, 679, 823} | 
| 454 for i, currency in pairs(currencyList) do | 457 for i, currency in pairs(currencyList) do | 
| 455 local amount = getCurrencyAmount(currency) | 458 local amount = getCurrencyAmount(currency) | 
| 456 if amount ~= 0 then | 459 if amount ~= 0 then | 
| 457 currencies[currency] = amount | 460 currencies[currency] = amount | 
| 458 end | 461 end | 
| 801 local MIN_IMPORT_VERSION = 2 | 804 local MIN_IMPORT_VERSION = 2 | 
| 802 | 805 | 
| 803 -- | 806 -- | 
| 804 -- Import a character, returning nil on success, otherwise an error message, import result stored in AskMrRobot.ImportData | 807 -- Import a character, returning nil on success, otherwise an error message, import result stored in AskMrRobot.ImportData | 
| 805 -- | 808 -- | 
| 806 function AskMrRobot.ImportCharacter(data) | 809 function AskMrRobot.ImportCharacter(data, isTest) | 
| 807 | 810 | 
| 808 -- make sure all data is up to date before importing | 811 -- make sure all data is up to date before importing | 
| 809 AskMrRobot.SaveAll() | 812 AskMrRobot.SaveAll() | 
| 810 | 813 | 
| 811 if data == nil or string.len(data) == 0 then | 814 if data == nil or string.len(data) == 0 then | 
| 824 if ver < MIN_IMPORT_VERSION then | 827 if ver < MIN_IMPORT_VERSION then | 
| 825 return L.AMR_IMPORT_ERROR_VERSION | 828 return L.AMR_IMPORT_ERROR_VERSION | 
| 826 end | 829 end | 
| 827 | 830 | 
| 828 -- require realm/name match | 831 -- require realm/name match | 
| 829 local realm = parts[2] | 832 if not isTest then | 
| 830 local name = parts[3] | 833 local realm = parts[2] | 
| 831 if name ~= AmrDb.CharacterName then | 834 local name = parts[3] | 
| 832 local badPers = name .. " (" .. realm .. ")" | 835 if name ~= AmrDb.CharacterName then | 
| 833 local goodPers = AmrDb.CharacterName .. " (" .. AmrDb.RealmName .. ")" | 836 local badPers = name .. " (" .. realm .. ")" | 
| 834 return L.AMR_IMPORT_ERROR_CHAR:format(badPers, goodPers) | 837 local goodPers = AmrDb.CharacterName .. " (" .. AmrDb.RealmName .. ")" | 
| 835 end | 838 return L.AMR_IMPORT_ERROR_CHAR:format(badPers, goodPers) | 
| 836 | 839 end | 
| 837 -- require race match | 840 | 
| 838 local race = tonumber(parts[5]) | 841 -- require race match | 
| 839 if race ~= AskMrRobot.raceIds[AmrDb.Race] then | 842 local race = tonumber(parts[5]) | 
| 840 return L.AMR_IMPORT_ERROR_RACE | 843 if race ~= AskMrRobot.raceIds[AmrDb.Race] then | 
| 841 end | 844 return L.AMR_IMPORT_ERROR_RACE | 
| 842 | 845 end | 
| 843 -- require faction match | 846 | 
| 844 local faction = tonumber(parts[6]) | 847 -- require faction match | 
| 845 if faction ~= AskMrRobot.factionIds[AmrDb.Faction] then | 848 local faction = tonumber(parts[6]) | 
| 846 return L.AMR_IMPORT_ERROR_FACTION | 849 if faction ~= AskMrRobot.factionIds[AmrDb.Faction] then | 
| 847 end | 850 return L.AMR_IMPORT_ERROR_FACTION | 
| 848 | 851 end | 
| 849 -- require level match | 852 | 
| 850 local level = tonumber(parts[7]) | 853 -- require level match | 
| 851 if level ~= AmrDb.Level then | 854 local level = tonumber(parts[7]) | 
| 852 return L.AMR_IMPORT_ERROR_LEVEL | 855 if level ~= AmrDb.Level then | 
| 853 end | 856 return L.AMR_IMPORT_ERROR_LEVEL | 
| 854 | 857 end | 
| 855 -- require spec match | 858 | 
| 856 local spec = tonumber(parts[11]) | 859 -- require spec match | 
| 857 if spec ~= AmrDb.Specs[AmrDb.ActiveSpec] then | 860 local spec = tonumber(parts[11]) | 
| 858 print(AmrDb.ActiveSpec) | 861 if spec ~= AmrDb.Specs[AmrDb.ActiveSpec] then | 
| 859 print(spec) | 862 print(AmrDb.ActiveSpec) | 
| 860 print(AmrDb.Specs[AmrDb.ActiveSpec]) | 863 print(spec) | 
| 861 local _, specName = GetSpecializationInfoByID(AskMrRobot.gameSpecIds[spec]) | 864 print(AmrDb.Specs[AmrDb.ActiveSpec]) | 
| 862 return L.AMR_IMPORT_ERROR_SPEC:format(specName) | 865 local _, specName = GetSpecializationInfoByID(AskMrRobot.gameSpecIds[spec]) | 
| 863 end | 866 return L.AMR_IMPORT_ERROR_SPEC:format(specName) | 
| 864 | 867 end | 
| 865 -- require talent match | 868 | 
| 866 local talents = parts[12] | 869 -- require talent match | 
| 867 if talents ~= AmrDb.Talents[AmrDb.ActiveSpec] then | 870 local talents = parts[12] | 
| 868 return L.AMR_IMPORT_ERROR_TALENT | 871 if talents ~= AmrDb.Talents[AmrDb.ActiveSpec] then | 
| 869 end | 872 return L.AMR_IMPORT_ERROR_TALENT | 
| 870 | 873 end | 
| 871 -- require glyph match | 874 | 
| 872 -- TODO: re-enable this check when glyphs are more consistent | 875 -- require glyph match | 
| 873 --local glyphs = parts[13] | 876 -- TODO: re-enable this check when glyphs are more consistent | 
| 874 --if glyphs ~= AskMrRobot.toCompressedNumberList(AmrDb.Glyphs[AmrDb.ActiveSpec]) then | 877 --local glyphs = parts[13] | 
| 875 -- return L.AMR_IMPORT_ERROR_GLYPH | 878 --if glyphs ~= AskMrRobot.toCompressedNumberList(AmrDb.Glyphs[AmrDb.ActiveSpec]) then | 
| 876 --end | 879 -- return L.AMR_IMPORT_ERROR_GLYPH | 
| 880 --end | |
| 881 end | |
| 882 | |
| 877 | 883 | 
| 878 -- if we make it this far, the data is valid, so read item information | 884 -- if we make it this far, the data is valid, so read item information | 
| 879 local importData = {} | 885 local importData = {} | 
| 880 | 886 | 
| 881 local itemInfo = {} | 887 local itemInfo = {} | 
| 1043 enchantInfo[enchObj.id] = enchObj | 1049 enchantInfo[enchObj.id] = enchObj | 
| 1044 | 1050 | 
| 1045 end | 1051 end | 
| 1046 end | 1052 end | 
| 1047 | 1053 | 
| 1048 -- we have succeeded, record the result | 1054 if isTest then | 
| 1049 AskMrRobot.ImportData = importData | 1055 -- print result for debugging | 
| 1050 AskMrRobot.ExtraItemData = itemInfo | 1056 local blah = importData[1] | 
| 1051 AskMrRobot.ExtraGemData = gemInfo | 1057 local name, link = GetItemInfo(AskMrRobot.createItemLink(blah)) | 
| 1052 AskMrRobot.ExtraEnchantData = enchantInfo | 1058 print(link) | 
| 1053 | 1059 | 
| 1054 AmrDb.LastCharacterImport = data | 1060 else | 
| 1055 AmrDb.LastCharacterImportDate = date() | 1061 -- we have succeeded, record the result | 
| 1056 end | 1062 AskMrRobot.ImportData = importData | 
| 1063 AskMrRobot.ExtraItemData = itemInfo | |
| 1064 AskMrRobot.ExtraGemData = gemInfo | |
| 1065 AskMrRobot.ExtraEnchantData = enchantInfo | |
| 1066 | |
| 1067 AmrDb.LastCharacterImport = data | |
| 1068 AmrDb.LastCharacterImportDate = date() | |
| 1069 end | |
| 1070 end | 
