Quantcast

Fixed waypoint generation.

torhal [05-29-09 - 10:14]
Fixed waypoint generation.
Filename
ARLFrame.lua
AckisRecipeList.lua
diff --git a/ARLFrame.lua b/ARLFrame.lua
index 8e4fc81..8ec15c2 100644
--- a/ARLFrame.lua
+++ b/ARLFrame.lua
@@ -69,7 +69,7 @@ local IsControlKeyDown = IsControlKeyDown
 local currentProfIndex = 0
 local currentProfession = ""
 local maxVisibleRecipes = 24
-local FilterValueMap		-- Assigned in InitializeFrame()
+local FilterValueMap = {}		-- Assigned in InitializeFrame()
 local DisplayStrings = {}
 local myFaction = ""

@@ -77,12 +77,18 @@ local myFaction = ""
 -- 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 recipeDB = {}
+local trainerDB = {}
+local vendorDB = {}
+local questDB = {}
+local repDB = {}
+local seasonDB = {}
+local customDB = {}
+local mobDB = {}
+local allSpecTable = {}
+local playerData = {}

-local sortedRecipeIndex
+local sortedRecipeIndex = {}


 local seasonal = GetCategoryInfo(155)
@@ -426,7 +432,7 @@ do
 				TomTom:RemoveWaypoint(iconlist[i])
 			end
 			-- Nuke our own internal table
-			twipe(iconlist)
+			iconlist = twipe(iconlist)
 		end

 	end
@@ -454,8 +460,6 @@ do
 	-- Expected result: Icons are added to the world map and mini-map.
 	-- Input: An optional recipe ID
 	-- Output: Points are added to the maps
-	local maplist = {}
-
 	function addon:SetupMap(singlerecipe)
 		if (not TomTom) then
 			--@debug@
@@ -480,7 +484,7 @@ do
 					break
 				end
 			end
-			twipe(maplist)
+			local maplist = {}

 			-- We're only getting a single recipe, not a bunch
 			if (singlerecipe) then
@@ -4863,6 +4867,9 @@ 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 403adfc..29ade10 100644
--- a/AckisRecipeList.lua
+++ b/AckisRecipeList.lua
@@ -464,9 +464,6 @@ 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)
@@ -475,6 +472,7 @@ do
 		if (not RepTable) then
 			return
 		end
+		local t = {}

 		-- Number of factions before we expand
 		local numfactions = GetNumFactions()
@@ -603,7 +601,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] or {}
+	RecipeDB[SpellID] = {}

 	local recipeentry = RecipeDB[SpellID]

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

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

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

 do

-	local reptable
+	local reptable = nil

 	local function CreateRepTable()

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

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

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

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

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

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

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

@@ -2053,8 +2051,8 @@ end
 ]]--

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

 	-- Description: Sorts the recipe Database depending on the settings defined in the database.
 	function addon:SortMissingRecipes(RecipeDB)
@@ -2094,8 +2092,23 @@ 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
-		twipe(SortedRecipeIndex)
+		-- Create a new array for the sorted index
+		local SortedRecipeIndex = {}

 		-- Get all the indexes of the RecipeListing
 		for n, v in pairs(RecipeDB) do