diff data.lua @ 12:2273a56762cb

Manage -partially- multiple recipes for the same item adn track the number of items made by a recipe
author contrebasse
date Sun, 03 Apr 2011 00:25:08 +0200
parents 2716889648bd
children 5c8fcfdd1e24
line wrap: on
line diff
--- a/data.lua	Sat Apr 02 23:37:19 2011 +0200
+++ b/data.lua	Sun Apr 03 00:25:08 2011 +0200
@@ -254,17 +254,35 @@
 				-- reagent number needed
 				local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(i, 1)
 
-				-- skillName or...???
-				if not reagentID or not reagentCount or not skillName or not itemID then
-					A.DEBUG("Erreur de scan :")
-					print(itemID," ",skillName," ",reagentID," ",reagentCount)
+				-- number of reagent created by the recipe
+				local minMade, maxMade = GetTradeSkillNumMade(i)
+				if maxMade==minMade then
+					maxMade = nil
+					if minMade==1 then
+						minMade = nil
+					end
 				end
 
+				-- error checking
+				if not reagentID or not reagentCount or not skillName or not itemID or not minMade or not maxMade then
+					print("Erreur de scan :",itemID,skillName,reagentID,reagentCount,minMade,maxMade)
+				end
+
+				-- skillName or...???
 				if not A.data[itemID] then
-					A.data[itemID] = {{reagentID,reagentCount}}
+					A.data[itemID] = {}
+				end
+				local newSpell = true
+				for _,v in ipairs(A.data[itemID]) do
+					if v.spellName==skillName then
+						newSpell = nil
+						break
+					end
+				end
+				if newSpell then
+					tinsert(A.data[itemID],{reagentID,reagentCount,minMade,maxMade,spellName=skillName})
 				end
 			end -- if
 		end -- if
 	end -- for
-
 end