Mercurial > wow > wowdb-profiler
comparison Main.lua @ 384:ae63dafab1e6
Replaced individual bonusID system with one that stores and tracks combinations.
author | MMOSimca <MMOSimca@gmail.com> |
---|---|
date | Fri, 12 Dec 2014 12:42:02 -0500 |
parents | d3e8a11a21ea |
children | f49252dc3de0 |
comparison
equal
deleted
inserted
replaced
383:d3e8a11a21ea | 384:ae63dafab1e6 |
---|---|
1052 | 1052 |
1053 if instance_difficulty_id and instance_difficulty_id ~= 0 then | 1053 if instance_difficulty_id and instance_difficulty_id ~= 0 then |
1054 item.instance_difficulty_id = instance_difficulty_id | 1054 item.instance_difficulty_id = instance_difficulty_id |
1055 end | 1055 end |
1056 | 1056 |
1057 -- Future code: waiting for dev time to implement server-side parsing | 1057 if not item.seen_bonuses then |
1058 --[[if not item.bonus_ids then | 1058 item.seen_bonuses = {} |
1059 item.bonus_ids = {} | 1059 end |
1060 end | 1060 item.seen_bonuses[0] = true |
1061 item.bonus_ids[0] = true]]-- | |
1062 end | 1061 end |
1063 elseif num_bonus_ids > 0 then | 1062 elseif num_bonus_ids > 0 then |
1064 item = DBEntry("items", item_id) | 1063 item = DBEntry("items", item_id) |
1065 | 1064 |
1066 item.unique_id = bit.band(unique_id, 0xFFFF) | 1065 item.unique_id = bit.band(unique_id, 0xFFFF) |
1067 item.instance_difficulty_id = instance_difficulty_id | 1066 item.instance_difficulty_id = instance_difficulty_id |
1068 | 1067 |
1069 if not item.bonus_ids then | 1068 if not item.seen_bonuses then |
1070 item.bonus_ids = {} | 1069 item.seen_bonuses = {} |
1071 end | 1070 end |
1072 | 1071 |
1073 for bonus_index = 1, num_bonus_ids do | 1072 -- We want the bonus ID combo output to be in the form ["bonusID1:bonusID2:bonusID3"] = true |
1074 item.bonus_ids[tonumber(item_results[13 + bonus_index])] = true | 1073 -- And sorted numerically with the smallest bonusID first |
1075 end | 1074 local sorted_bonus_string = "" |
1076 | 1075 local min_bonus_id_array = {} |
1077 Debug("RecordItemData: Recorded bonusIDs for %d.", item_id) | 1076 for iterations = 1, num_bonus_ids do |
1077 -- Find minimum of this iteration | |
1078 local min_bonus_id = 100000 | |
1079 for bonus_index = 1, num_bonus_ids do | |
1080 local temp_bonus_id = tonumber(item_results[13 + bonus_index]) | |
1081 if (not min_bonus_id_array[temp_bonus_id]) and (min_bonus_id < temp_bonus_id) then | |
1082 min_bonus_id = temp_bonus_id | |
1083 end | |
1084 end | |
1085 | |
1086 -- Keep track of already processed IDs | |
1087 min_bonus_id_array[min_bonus_id] = true | |
1088 | |
1089 -- Build string | |
1090 if iterations == 1 then | |
1091 sorted_bonus_string = sorted_bonus_string .. tostring(min_bonus_id) | |
1092 else | |
1093 sorted_bonus_string = sorted_bonus_string .. ":" .. tostring(min_bonus_id) | |
1094 end | |
1095 end | |
1096 | |
1097 Debug("RecordItemData: Recorded bonus IDs %s for item %d.", sorted_bonus_string, item_id) | |
1078 else | 1098 else |
1079 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids) | 1099 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids) |
1080 end | 1100 end |
1081 if upgrade_id and upgrade_id ~= 0 then | 1101 if upgrade_id and upgrade_id ~= 0 then |
1082 DatamineTT:SetHyperlink(item_link) | 1102 DatamineTT:SetHyperlink(item_link) |