Quantcast

Insert the trainer scan header at the top of the output table only if there was previous output. Normalize the coordinates, and display the current values versus the scanned ones in cases where the difference is negligible.

James D. Callahan III [04-02-11 - 15:14]
Insert the trainer scan header at the top of the output table only if there was previous output. Normalize the coordinates, and display the current values versus the scanned ones in cases where the difference is negligible.
Filename
Scanner.lua
diff --git a/Scanner.lua b/Scanner.lua
index 7f4353e..8a3d8a8 100644
--- a/Scanner.lua
+++ b/Scanner.lua
@@ -176,9 +176,6 @@ do
 		local trainer_id = tonumber(string.sub(_G.UnitGUID("target"), -12, -9), 16)
 		local trainer_name = _G.UnitName("target")

-		table.insert(output, ("ARL Version: %s"):format(self.version))
-		table.insert(output, L["DATAMINER_TRAINER_INFO"]:format(trainer_name, trainer_id))
-
 		for spell_id, recipe in pairs(recipe_list) do
 			if trainer_profession == recipe.profession then
 				local train_data = recipe.acquire_data[A.TRAINER]
@@ -200,16 +197,18 @@ do
 				end
 				local trainer_entry = private.trainer_list[trainer_id]
 				local trainer_x, trainer_y = _G.GetPlayerMapPosition("player")
+				trainer_x = ("%.2f"):format(trainer_x * 100)
+				trainer_y = ("%.2f"):format(trainer_y * 100)

 				if trainer_entry and trainer_entry.coord_x ~= trainer_x or trainer_entry.coord_y ~= trainer_y then
-					table.insert(output, ("%s appears to have different coordinates than those in the database - a trainer dump for %s will fix this."):format(trainer_name, trainer_profession))
+					table.insert(output, ("%s appears to have different coordinates (%s, %s) than those in the database (%s, %s) - a trainer dump for %s will fix this."):format(trainer_name, trainer_entry.coord_x, trainer_entry.coord_y, trainer_x, trainer_y, trainer_profession))
 					trainer_entry.coord_x = trainer_x
 					trainer_entry.coord_y = trainer_y
 				elseif not trainer_entry then
 					table.insert(output, ("%s was not found in the trainer list - a trainer dump for %s will fix this."):format(trainer_name, trainer_profession))
 					_G.SetMapToCurrentZone() -- Make sure were are looking at the right zone

-					private:AddTrainer(trainer_id, trainer_name, _G.GetRealZoneText(), ("%.2f"):format(trainer_x * 100), ("%.2f"):format(trainer_y * 100), private.Player.faction)
+					private:AddTrainer(trainer_id, trainer_name, _G.GetRealZoneText(), trainer_x, trainer_y, private.Player.faction)
 				end

 				if matching_item or matching_recipe then
@@ -325,6 +324,8 @@ do
 		end

 		if #output > 0 then
+			table.insert(output, 1, ("ARL Version: %s"):format(self.version))
+			table.insert(output, 2, L["DATAMINER_TRAINER_INFO"]:format(trainer_name, trainer_id))
 			if found_extra and trainer_profession == private.professions.Engineering then
 				table.insert(output, "\nSome goggles may be listed as extra. These goggles ONLY show up for the classes who can make them, so they may be false positives.")
 			end