Quantcast

In AckisRecipeList.lua:

torhal [05-29-09 - 07:28]
In AckisRecipeList.lua:
  Removed some garbage creation throughout the file by moving some table declarations and using twipe(). Made some code more readable by changing some if checks and using return.
In ARLFrame.lua:
  Removed empty-table creation from some upvalues, because their value is always set by addon:DisplayFrame() or InitializeFrame(). In addon:DisplayFrame(): Removed call to addon:SortMissingRecipes() because this is already done prior to calling addon:DisplayFrame().
Filename
ARLFrame.lua
AckisRecipeList.lua
diff --git a/ARLFrame.lua b/ARLFrame.lua
index ac92885..8e4fc81 100644
--- a/ARLFrame.lua
+++ b/ARLFrame.lua
@@ -69,16 +69,35 @@ local IsControlKeyDown = IsControlKeyDown
 local currentProfIndex = 0
 local currentProfession = ""
 local maxVisibleRecipes = 24
-local FilterValueMap = {}
-local sortedRecipeIndex = {}
+local FilterValueMap		-- Assigned in InitializeFrame()
 local DisplayStrings = {}
 local myFaction = ""

-local narrowFont = nil
-local normalFont = nil
+-------------------------------------------------------------------------------
+-- Tables assigned in addon:DisplayFrame()
+-------------------------------------------------------------------------------
+-- local versions of the databases storing the recipe information, trainers, vendors, etc
+local recipeDB, trainerDB, vendorDB
+local questDB, repDB, seasonDB
+local customDB, mobDB, allSpecTable
+local playerData
+
+local sortedRecipeIndex
+

 local seasonal = GetCategoryInfo(155)

+
+-------------------------------------------------------------------------------
+-- Fonts
+-------------------------------------------------------------------------------
+local narrowFont
+local normalFont
+
+-- Font Objects needed for arlTooltip
+local narrowFontObj = CreateFont(MODNAME.."narrowFontObj")
+local normalFontObj = CreateFont(MODNAME.."normalFontObj")
+
 -- Fallback in case the user doesn't have LSM-3.0 installed
 if (not LibStub:GetLibrary("LibSharedMedia-3.0", true)) then

@@ -99,22 +118,6 @@ else
 	normalFont = LSM3:Fetch(LSM3.MediaType.FONT, "Friz Quadrata TT")
 end

--- Font Objects needed for arlTooltip
-local normalFontObj = CreateFont(MODNAME.."normalFontObj")
-local narrowFontObj = CreateFont(MODNAME.."narrowFontObj")
-
--- local versions of the databases storing the recipe information, trainers, vendors, etc
-local recipeDB = {}
-local trainerDB = {}
-local vendorDB = {}
-local questDB = {}
-local repDB = {}
-local seasonDB = {}
-local customDB = {}
-local mobDB = {}
-local allSpecTable = {}
-local playerData = {}
-
 local arlTooltip = _G["arlTooltip"]
 local arlSpellTooltip = _G["arlSpellTooltip"]

@@ -4809,6 +4812,7 @@ function addon:DisplayFrame(
 	myFaction = cPlayer.playerFaction

 	sortedRecipeIndex = sortedRI
+
 	recipeDB = rDB
 	allSpecTable = asTable
 	playerData = cPlayer
@@ -4859,9 +4863,6 @@ function addon:DisplayFrame(
 	-- Set the texture on our switcher button correctly
 	SetSwitcherTexture(SortedProfessions[currentProfIndex].texture)

-	-- Sort the list
-	sortedRecipeIndex = addon:SortMissingRecipes(recipeDB)
-
 	-- Take our sorted list, and fill up DisplayStrings
 	initDisplayStrings()

diff --git a/AckisRecipeList.lua b/AckisRecipeList.lua
index 4caaa43..403adfc 100644
--- a/AckisRecipeList.lua
+++ b/AckisRecipeList.lua
@@ -464,18 +464,18 @@ do
 	local CollapseFactionHeader = CollapseFactionHeader
 	local ExpandFactionHeader = ExpandFactionHeader

+	local t = {}
+

 	-- Description: Scans all reputations to get reputation levels to determine if the player can learn a reputation recipe

 	function addon:GetFactionLevels(RepTable)

-	-- Bug here when I reload UI
+		-- Bug here when I reload UI
 		if (not RepTable) then
 			return
 		end

-		local t = {}
-
 		-- Number of factions before we expand
 		local numfactions = GetNumFactions()

@@ -514,7 +514,7 @@ do

 	end

-end
+end	-- do block

 do

@@ -572,7 +572,7 @@ do

 	end

-end
+end	-- do block

 --[[
 	Tradeskill functions
@@ -603,7 +603,7 @@ function addon:addTradeSkill(RecipeDB, SpellID, SkillLevel, ItemID, Rarity, Prof
 	--]]

 	-- Creates a table in the RecipeListing table storing all information about a recipe
-	RecipeDB[SpellID] = {}
+	RecipeDB[SpellID] = RecipeDB[SpellID] or {}

 	local recipeentry = RecipeDB[SpellID]

@@ -819,7 +819,7 @@ function addon:addLookupList(DB, ID, Name, Loc, Coordx, Coordy, Faction)
 		For individual database structures, see Documentation.lua
 	]]--

-	DB[ID] = {}
+	DB[ID] = DB[ID] or {}
 	DB[ID]["Name"] = Name

 	if (Loc) then
@@ -933,7 +933,7 @@ end

 do

-	local reptable = nil
+	local reptable

 	local function CreateRepTable()

@@ -1646,8 +1646,8 @@ do
 	local tradewindowopened = false

 	-- Variables for getting the locations
-	local locationlist = nil
-	local locationchecklist = nil
+	local locationlist = {}
+	local locationchecklist = {}

 	-- Description: Determines all the locations a given recipe can be obtained

@@ -1655,8 +1655,8 @@ do

 		if (RecipeList) and (RecipeList[SpellID]) then

-			locationlist = {}
-			locationchecklist = {}
+			twipe(locationlist)
+			twipe(locationchecklist)

 			local recipeacquire = RecipeList[SpellID]["Acquire"]

@@ -2053,19 +2053,13 @@ end
 ]]--

 do
-
-	-- Sorting functions
-
-	local sortFuncs = nil
+	local sortFuncs			-- Sorting functions
+	local SortedRecipeIndex = {}	-- Array for the sorted index

 	-- Description: Sorts the recipe Database depending on the settings defined in the database.
-
 	function addon:SortMissingRecipes(RecipeDB)
-
 		if (not sortFuncs) then
-
 			sortFuncs = {}
-
 			sortFuncs["SkillAsc"] = function(a, b)
 				if (RecipeDB[a]["Level"] == RecipeDB[b]["Level"]) then
 					return RecipeDB[a]["Name"] < RecipeDB[b]["Name"]
@@ -2074,7 +2068,7 @@ do
 				end
 			end

-			sortFuncs["SkillDesc"] = function(a, b)
+			sortFuncs["SkillDesc"] = function(a, b)
 				if (RecipeDB[a]["Level"] == RecipeDB[b]["Level"]) then
 					return RecipeDB[a]["Name"] < RecipeDB[b]["Name"]
 				else
@@ -2100,25 +2094,8 @@ do
 					return not not reca
 				end
 			end
-
-			-- Will only sort based off of the first acquire type
-			sortFuncs["Location"] = function (a, b)
-				-- We do the or "" because of nil's, I think this would be better if I just left it as a table which was returned
-				local reca = RecipeDB[a]["Locations"] or ""
-				local recb = RecipeDB[b]["Locations"] or ""
-				reca = smatch(reca,"(%w+),") or ""
-				recb = smatch(recb,"(%w+),") or ""
-				if (reca == recb) then
-					return RecipeDB[a]["Name"] < RecipeDB[b]["Name"]
-				else
-					return (reca < recb)
-				end
-			end
-
 		end
-
-		-- Create a new array for the sorted index
-		local SortedRecipeIndex = {}
+		twipe(SortedRecipeIndex)

 		-- Get all the indexes of the RecipeListing
 		for n, v in pairs(RecipeDB) do
@@ -2224,48 +2201,43 @@ end

 function addon:SearchRecipeDB(RecipeDB, searchstring)

-	if (searchstring) then
+	if not searchstring then return end

-		searchstring = strlower(searchstring)
+	searchstring = strlower(searchstring)

-		-- Go through the entire database
-		for SpellID in pairs(RecipeDB) do
+	-- Go through the entire database
+	for SpellID in pairs(RecipeDB) do

-			-- Get the Spell object
-			local recipe = RecipeDB[SpellID]
+		-- Get the Spell object
+		local recipe = RecipeDB[SpellID]

-			-- Set the search as false automatically
-			recipe["Search"] = false
+		-- Set the search as false automatically
+		recipe["Search"] = false

-			-- Allow us to search by spell ID
-			if sfind(strlower(SpellID),searchstring) or
+		-- Allow us to search by spell ID
+		if sfind(strlower(SpellID),searchstring) or

-				-- Allow us to search byitem ID
-				(recipe["ItemID"] and sfind(strlower(recipe["ItemID"]),searchstring)) or
+			-- Allow us to search byitem ID
+			(recipe["ItemID"] and sfind(strlower(recipe["ItemID"]),searchstring)) or

-				-- Allow us to search by name
-				(recipe["Name"] and sfind(strlower(recipe["Name"]),searchstring)) or
+			-- Allow us to search by name
+			(recipe["Name"] and sfind(strlower(recipe["Name"]),searchstring)) or

-				-- Allow us to search by locations
-				(recipe["Locations"] and sfind(recipe["Locations"],searchstring)) or
+			-- Allow us to search by locations
+			(recipe["Locations"] and sfind(recipe["Locations"],searchstring)) or

-				-- Allow us to search by specialty
-				(recipe["Specialty"] and sfind(recipe["Specialty"],searchstring)) or
+			-- Allow us to search by specialty
+			(recipe["Specialty"] and sfind(recipe["Specialty"],searchstring)) or

-				-- Allow us to search by skill level
-				(recipe["Level"] and sfind(recipe["Level"],searchstring)) or
+			-- Allow us to search by skill level
+			(recipe["Level"] and sfind(recipe["Level"],searchstring)) or

-				-- Allow us to search by Rarity
-				(recipe["Rarity"] and sfind(recipe["Rarity"],searchstring)) then
-
-					recipe["Search"] = true
-
-			end
+			-- Allow us to search by Rarity
+			(recipe["Rarity"] and sfind(recipe["Rarity"],searchstring)) then

+			recipe["Search"] = true
 		end
-
 	end
-
 end

 -- Description: Goes through the recipe database and resets all the search flags
@@ -2375,333 +2347,329 @@ do

 		local recipelist = addon:GetRecipeTable()

-		if (not recipelist) then
+		if not recipelist then return end
+
+		if not recipelist[SpellID] then
+			self:Print("Spell ID not in recipe database.")
 			return
 		end

-		if (recipelist[SpellID]) then
-
-			local x = recipelist[SpellID]
-			self:Print(x["Name"] .. "(" .. x["Level"] .. ") -- " .. SpellID)
-			self:Print("Rarity: " .. x["Rarity"])
-			if (x["Specialty"]) then
-				self:Print("Profession: " .. x["Profession"] .. "(" .. x["Specialty"] .. ")")
-			else
-				self:Print("Profession: " .. x["Profession"])
-			end
-			if (x["ItemID"]) then
-				local _,linky = GetItemInfo(x["ItemID"])
-				self:Print("Creates: " .. linky .. "(" .. x["ItemID"] .. ")")
-			end
-			if (x["Locations"]) then
-				self:Print("Located: " .. x["Locations"])
-			end
-
-			local flags = x["Flags"]
-			local flagstr = ""
+		local x = recipelist[SpellID]
+		self:Print(x["Name"] .. "(" .. x["Level"] .. ") -- " .. SpellID)
+		self:Print("Rarity: " .. x["Rarity"])

-			if (flags[1] == true) then
-				flagstr = flagstr .. "Ally,"
-			end
-			if (flags[2] == true) then
-				flagstr = flagstr .. "Horde,"
-			end
-			if (flags[3] == true) then
-				flagstr = flagstr .. "Trn,"
-			end
-			if (flags[4] == true) then
-				flagstr = flagstr .. "Ven,"
-			end
-			if (flags[5] == true) then
-				flagstr = flagstr .. "Instance,"
-			end
-			if (flags[6] == true) then
-				flagstr = flagstr .. "Raid,"
-			end
-			if (flags[7] == true) then
-				flagstr = flagstr .. "Seasonal,"
-			end
-			if (flags[8] == true) then
-				flagstr = flagstr .. "Quest,"
-			end
-			if (flags[9] == true) then
-				flagstr = flagstr .. "PVP,"
-			end
-			if (flags[10] == true) then
-				flagstr = flagstr .. "World,"
-			end
-			if (flags[11] == true) then
-				flagstr = flagstr .. "Mob,"
-			end
-			if (flags[12] == true) then
-				flagstr = flagstr .. "Disc,"
-			end
-			if (flags[13] == true) then
-				flagstr = flagstr .. "13,"
-			end
-			if (flags[14] == true) then
-				flagstr = flagstr .. "14,"
-			end
-			if (flags[15] == true) then
-				flagstr = flagstr .. "15,"
-			end
-			if (flags[16] == true) then
-				flagstr = flagstr .. "16,"
-			end
-			if (flags[17] == true) then
-				flagstr = flagstr .. "17,"
-			end
-			if (flags[18] == true) then
-				flagstr = flagstr .. "18,"
-			end
-			if (flags[19] == true) then
-				flagstr = flagstr .. "19,"
-			end
-			if (flags[20] == true) then
-				flagstr = flagstr .. "20,"
-			end
-			if (flags[21] == true) then
-				flagstr = flagstr .. "DK,"
-			end
-			if (flags[22] == true) then
-				flagstr = flagstr .. "Druid,"
-			end
-			if (flags[23] == true) then
-				flagstr = flagstr .. "Huntard,"
-			end
-			if (flags[24] == true) then
-				flagstr = flagstr .. "Mage,"
-			end
-			if (flags[25] == true) then
-				flagstr = flagstr .. "Pally,"
-			end
-			if (flags[26] == true) then
-				flagstr = flagstr .. "Priest,"
-			end
-			if (flags[27] == true) then
-				flagstr = flagstr .. "Sham,"
-			end
-			if (flags[28] == true) then
-				flagstr = flagstr .. "Rogue,"
-			end
-			if (flags[29] == true) then
-				flagstr = flagstr .. "Lock,"
-			end
-			if (flags[30] == true) then
-				flagstr = flagstr .. "War,"
-			end
-			if (flags[31] == true) then
-				flagstr = flagstr .. "31,"
-			end
-			if (flags[36] == true) then
-				flagstr = flagstr .. "IBoE,"
-			end
-			if (flags[37] == true) then
-				flagstr = flagstr .. "IBoP,"
-			end
-			if (flags[38] == true) then
-				flagstr = flagstr .. "IBoA,"
-			end
-			if (flags[39] == true) then
-				flagstr = flagstr .. "39,"
-			end
-			if (flags[40] == true) then
-				flagstr = flagstr .. "RBoE,"
-			end
-			if (flags[41] == true) then
-				flagstr = flagstr .. "RBoP,"
-			end
-			if (flags[42] == true) then
-				flagstr = flagstr .. "RBoA,"
-			end
-			if (flags[51] == true) then
-				flagstr = flagstr .. "Melee,"
-			end
-			if (flags[52] == true) then
-				flagstr = flagstr .. "Tank,"
-			end
-			if (flags[53] == true) then
-				flagstr = flagstr .. "Heal,"
-			end
-			if (flags[54] == true) then
-				flagstr = flagstr .. "Caster,"
-			end
-			if (flags[56] == true) then
-				flagstr = flagstr .. "Cloth,"
-			end
-			if (flags[57] == true) then
-				flagstr = flagstr .. "Leather,"
-			end
-			if (flags[58] == true) then
-				flagstr = flagstr .. "Mail,"
-			end
-			if (flags[59] == true) then
-				flagstr = flagstr .. "Plate,"
-			end
-			if (flags[60] == true) then
-				flagstr = flagstr .. "Cloak,"
-			end
-			if (flags[61] == true) then
-				flagstr = flagstr .. "Trinket,"
-			end
-			if (flags[62] == true) then
-				flagstr = flagstr .. "Ring,"
-			end
-			if (flags[63] == true) then
-				flagstr = flagstr .. "Neck,"
-			end
-			if (flags[64] == true) then
-				flagstr = flagstr .. "Shield,"
-			end
-			if (flags[66] == true) then
-				flagstr = flagstr .. "1H,"
-			end
-			if (flags[67] == true) then
-				flagstr = flagstr .. "2H,"
-			end
-			if (flags[68] == true) then
-				flagstr = flagstr .. "Axe,"
-			end
-			if (flags[69] == true) then
-				flagstr = flagstr .. "Sword,"
-			end
-			if (flags[70] == true) then
-				flagstr = flagstr .. "Mace,"
-			end
-			if (flags[71] == true) then
-				flagstr = flagstr .. "Polearm,"
-			end
-			if (flags[72] == true) then
-				flagstr = flagstr .. "Dagger,"
-			end
-			if (flags[73] == true) then
-				flagstr = flagstr .. "Staff,"
-			end
-			if (flags[74] == true) then
-				flagstr = flagstr .. "Wand,"
-			end
-			if (flags[75] == true) then
-				flagstr = flagstr .. "Thrown,"
-			end
-			if (flags[76] == true) then
-				flagstr = flagstr .. "Bow,"
-			end
-			if (flags[77] == true) then
-				flagstr = flagstr .. "xBow,"
-			end
-			if (flags[78] == true) then
-				flagstr = flagstr .. "Ammo,"
-			end
-			if (flags[79] == true) then
-				flagstr = flagstr .. "Fist,"
-			end
+		if (x["Specialty"]) then
+			self:Print("Profession: " .. x["Profession"] .. "(" .. x["Specialty"] .. ")")
+		else
+			self:Print("Profession: " .. x["Profession"])
+		end
+		if (x["ItemID"]) then
+			local _,linky = GetItemInfo(x["ItemID"])
+			self:Print("Creates: " .. linky .. "(" .. x["ItemID"] .. ")")
+		end
+		if (x["Locations"]) then
+			self:Print("Located: " .. x["Locations"])
+		end

-			self:Print("Flags: " .. flagstr)
-			flagstr = ""
+		local flags = x["Flags"]
+		local flagstr = ""

-			if (flags[96] == true) then
-				flagstr = flagstr .. "AD,"
-			end
-			if (flags[97] == true) then
-				flagstr = flagstr .. "CC,"
-			end
-			if (flags[98] == true) then
-				flagstr = flagstr .. "TB,"
-			end
-			if (flags[99] == true) then
-				flagstr = flagstr .. "TH,"
-			end
-			if (flags[100] == true) then
-				flagstr = flagstr .. "ZH,"
-			end
-			if (flags[101] == true) then
-				flagstr = flagstr .. "Aldor,"
-			end
-			if (flags[102] == true) then
-				flagstr = flagstr .. "Ashtongue,"
-			end
-			if (flags[103] == true) then
-				flagstr = flagstr .. "CE,"
-			end
-			if (flags[104] == true) then
-				flagstr = flagstr .. "Thrall/HH,"
-			end
-			if (flags[105] == true) then
-				flagstr = flagstr .. "Consort,"
-			end
-			if (flags[106] == true) then
-				flagstr = flagstr .. "KoT,"
-			end
-			if (flags[107] == true) then
-				flagstr = flagstr .. "LC,"
-			end
-			if (flags[108] == true) then
-				flagstr = flagstr .. "Mag/Kur,"
-			end
-			if (flags[109] == true) then
-				flagstr = flagstr .. "SoS,"
-			end
-			if (flags[110] == true) then
-				flagstr = flagstr .. "Scryer,"
-			end
-			if (flags[111] == true) then
-				flagstr = flagstr .. "Sha'tar,"
-			end
-			if (flags[112] == true) then
-				flagstr = flagstr .. "Shattered Sun,"
-			end
-			if (flags[113] == true) then
-				flagstr = flagstr .. "Spore,"
-			end
-			if (flags[114] == true) then
-				flagstr = flagstr .. "VE,"
-			end
-			if (flags[115] == true) then
-				flagstr = flagstr .. "AC,"
-			end
-			if (flags[116] == true) then
-				flagstr = flagstr .. "Frenzy,"
-			end
-			if (flags[117] == true) then
-				flagstr = flagstr .. "Ebon,"
-			end
-			if (flags[118] == true) then
-				flagstr = flagstr .. "Kirin,"
-			end
-			if (flags[119] == true) then
-				flagstr = flagstr .. "Hodir,"
-			end
-			if (flags[120] == true) then
-				flagstr = flagstr .. "Kalu'ak,"
-			end
-			if (flags[121] == true) then
-				flagstr = flagstr .. "Oracles,"
-			end
-			if (flags[122] == true) then
-				flagstr = flagstr .. "Wyrm,"
-			end
-			if (flags[123] == true) then
-				flagstr = flagstr .. "Wrath Common Factions (The Silver Convenant/The Sunreavers),"
-			end
-			if (flags[124] == true) then
-				flagstr = flagstr .. "Wrath Common Factions (Explorer's League/Hand of Vengance),"
-			end
-			if (flags[125] == true) then
-				flagstr = flagstr .. "Wrath Common Factions(Explorer's League/Valiance Expedition),"
-			end
-			if (flags[126] == true) then
-				flagstr = flagstr .. "TWrath Common Factions (The Frostborn/The Taunka),"
-			end
-			if (flags[127] == true) then
-				flagstr = flagstr .. "Wrath Common Factions (Alliance Vanguard/Horde Expedition),"
-			end
+		if (flags[1] == true) then
+			flagstr = flagstr .. "Ally,"
+		end
+		if (flags[2] == true) then
+			flagstr = flagstr .. "Horde,"
+		end
+		if (flags[3] == true) then
+			flagstr = flagstr .. "Trn,"
+		end
+		if (flags[4] == true) then
+			flagstr = flagstr .. "Ven,"
+		end
+		if (flags[5] == true) then
+			flagstr = flagstr .. "Instance,"
+		end
+		if (flags[6] == true) then
+			flagstr = flagstr .. "Raid,"
+		end
+		if (flags[7] == true) then
+			flagstr = flagstr .. "Seasonal,"
+		end
+		if (flags[8] == true) then
+			flagstr = flagstr .. "Quest,"
+		end
+		if (flags[9] == true) then
+			flagstr = flagstr .. "PVP,"
+		end
+		if (flags[10] == true) then
+			flagstr = flagstr .. "World,"
+		end
+		if (flags[11] == true) then
+			flagstr = flagstr .. "Mob,"
+		end
+		if (flags[12] == true) then
+			flagstr = flagstr .. "Disc,"
+		end
+		if (flags[13] == true) then
+			flagstr = flagstr .. "13,"
+		end
+		if (flags[14] == true) then
+			flagstr = flagstr .. "14,"
+		end
+		if (flags[15] == true) then
+			flagstr = flagstr .. "15,"
+		end
+		if (flags[16] == true) then
+			flagstr = flagstr .. "16,"
+		end
+		if (flags[17] == true) then
+			flagstr = flagstr .. "17,"
+		end
+		if (flags[18] == true) then
+			flagstr = flagstr .. "18,"
+		end
+		if (flags[19] == true) then
+			flagstr = flagstr .. "19,"
+		end
+		if (flags[20] == true) then
+			flagstr = flagstr .. "20,"
+		end
+		if (flags[21] == true) then
+			flagstr = flagstr .. "DK,"
+		end
+		if (flags[22] == true) then
+			flagstr = flagstr .. "Druid,"
+		end
+		if (flags[23] == true) then
+			flagstr = flagstr .. "Huntard,"
+		end
+		if (flags[24] == true) then
+			flagstr = flagstr .. "Mage,"
+		end
+		if (flags[25] == true) then
+			flagstr = flagstr .. "Pally,"
+		end
+		if (flags[26] == true) then
+			flagstr = flagstr .. "Priest,"
+		end
+		if (flags[27] == true) then
+			flagstr = flagstr .. "Sham,"
+		end
+		if (flags[28] == true) then
+			flagstr = flagstr .. "Rogue,"
+		end
+		if (flags[29] == true) then
+			flagstr = flagstr .. "Lock,"
+		end
+		if (flags[30] == true) then
+			flagstr = flagstr .. "War,"
+		end
+		if (flags[31] == true) then
+			flagstr = flagstr .. "31,"
+		end
+		if (flags[36] == true) then
+			flagstr = flagstr .. "IBoE,"
+		end
+		if (flags[37] == true) then
+			flagstr = flagstr .. "IBoP,"
+		end
+		if (flags[38] == true) then
+			flagstr = flagstr .. "IBoA,"
+		end
+		if (flags[39] == true) then
+			flagstr = flagstr .. "39,"
+		end
+		if (flags[40] == true) then
+			flagstr = flagstr .. "RBoE,"
+		end
+		if (flags[41] == true) then
+			flagstr = flagstr .. "RBoP,"
+		end
+		if (flags[42] == true) then
+			flagstr = flagstr .. "RBoA,"
+		end
+		if (flags[51] == true) then
+			flagstr = flagstr .. "Melee,"
+		end
+		if (flags[52] == true) then
+			flagstr = flagstr .. "Tank,"
+		end
+		if (flags[53] == true) then
+			flagstr = flagstr .. "Heal,"
+		end
+		if (flags[54] == true) then
+			flagstr = flagstr .. "Caster,"
+		end
+		if (flags[56] == true) then
+			flagstr = flagstr .. "Cloth,"
+		end
+		if (flags[57] == true) then
+			flagstr = flagstr .. "Leather,"
+		end
+		if (flags[58] == true) then
+			flagstr = flagstr .. "Mail,"
+		end
+		if (flags[59] == true) then
+			flagstr = flagstr .. "Plate,"
+		end
+		if (flags[60] == true) then
+			flagstr = flagstr .. "Cloak,"
+		end
+		if (flags[61] == true) then
+			flagstr = flagstr .. "Trinket,"
+		end
+		if (flags[62] == true) then
+			flagstr = flagstr .. "Ring,"
+		end
+		if (flags[63] == true) then
+			flagstr = flagstr .. "Neck,"
+		end
+		if (flags[64] == true) then
+			flagstr = flagstr .. "Shield,"
+		end
+		if (flags[66] == true) then
+			flagstr = flagstr .. "1H,"
+		end
+		if (flags[67] == true) then
+			flagstr = flagstr .. "2H,"
+		end
+		if (flags[68] == true) then
+			flagstr = flagstr .. "Axe,"
+		end
+		if (flags[69] == true) then
+			flagstr = flagstr .. "Sword,"
+		end
+		if (flags[70] == true) then
+			flagstr = flagstr .. "Mace,"
+		end
+		if (flags[71] == true) then
+			flagstr = flagstr .. "Polearm,"
+		end
+		if (flags[72] == true) then
+			flagstr = flagstr .. "Dagger,"
+		end
+		if (flags[73] == true) then
+			flagstr = flagstr .. "Staff,"
+		end
+		if (flags[74] == true) then
+			flagstr = flagstr .. "Wand,"
+		end
+		if (flags[75] == true) then
+			flagstr = flagstr .. "Thrown,"
+		end
+		if (flags[76] == true) then
+			flagstr = flagstr .. "Bow,"
+		end
+		if (flags[77] == true) then
+			flagstr = flagstr .. "xBow,"
+		end
+		if (flags[78] == true) then
+			flagstr = flagstr .. "Ammo,"
+		end
+		if (flags[79] == true) then
+			flagstr = flagstr .. "Fist,"
+		end

-			self:Print("Reps: " .. flagstr)
+		self:Print("Flags: " .. flagstr)
+		flagstr = ""

-		else
-			self:Print("Spell ID not in recipe database.")
+		if (flags[96] == true) then
+			flagstr = flagstr .. "AD,"
 		end
-
+		if (flags[97] == true) then
+			flagstr = flagstr .. "CC,"
+		end
+		if (flags[98] == true) then
+			flagstr = flagstr .. "TB,"
+		end
+		if (flags[99] == true) then
+			flagstr = flagstr .. "TH,"
+		end
+		if (flags[100] == true) then
+			flagstr = flagstr .. "ZH,"
+		end
+		if (flags[101] == true) then
+			flagstr = flagstr .. "Aldor,"
+		end
+		if (flags[102] == true) then
+			flagstr = flagstr .. "Ashtongue,"
+		end
+		if (flags[103] == true) then
+			flagstr = flagstr .. "CE,"
+		end
+		if (flags[104] == true) then
+			flagstr = flagstr .. "Thrall/HH,"
+		end
+		if (flags[105] == true) then
+			flagstr = flagstr .. "Consort,"
+		end
+		if (flags[106] == true) then
+			flagstr = flagstr .. "KoT,"
+		end
+		if (flags[107] == true) then
+			flagstr = flagstr .. "LC,"
+		end
+		if (flags[108] == true) then
+			flagstr = flagstr .. "Mag/Kur,"
+		end
+		if (flags[109] == true) then
+			flagstr = flagstr .. "SoS,"
+		end
+		if (flags[110] == true) then
+			flagstr = flagstr .. "Scryer,"
+		end
+		if (flags[111] == true) then
+			flagstr = flagstr .. "Sha'tar,"
+		end
+		if (flags[112] == true) then
+			flagstr = flagstr .. "Shattered Sun,"
+		end
+		if (flags[113] == true) then
+			flagstr = flagstr .. "Spore,"
+		end
+		if (flags[114] == true) then
+			flagstr = flagstr .. "VE,"
+		end
+		if (flags[115] == true) then
+			flagstr = flagstr .. "AC,"
+		end
+		if (flags[116] == true) then
+			flagstr = flagstr .. "Frenzy,"
+		end
+		if (flags[117] == true) then
+			flagstr = flagstr .. "Ebon,"
+		end
+		if (flags[118] == true) then
+			flagstr = flagstr .. "Kirin,"
+		end
+		if (flags[119] == true) then
+			flagstr = flagstr .. "Hodir,"
+		end
+		if (flags[120] == true) then
+			flagstr = flagstr .. "Kalu'ak,"
+		end
+		if (flags[121] == true) then
+			flagstr = flagstr .. "Oracles,"
+		end
+		if (flags[122] == true) then
+			flagstr = flagstr .. "Wyrm,"
+		end
+		if (flags[123] == true) then
+			flagstr = flagstr .. "Wrath Common Factions (The Silver Convenant/The Sunreavers),"
+		end
+		if (flags[124] == true) then
+			flagstr = flagstr .. "Wrath Common Factions (Explorer's League/Hand of Vengance),"
+		end
+		if (flags[125] == true) then
+			flagstr = flagstr .. "Wrath Common Factions(Explorer's League/Valiance Expedition),"
+		end
+		if (flags[126] == true) then
+			flagstr = flagstr .. "TWrath Common Factions (The Frostborn/The Taunka),"
+		end
+		if (flags[127] == true) then
+			flagstr = flagstr .. "Wrath Common Factions (Alliance Vanguard/Horde Expedition),"
+		end
+		self:Print("Reps: " .. flagstr)
 	end

 end