Quantcast

Moved several instances of duplicate code into ColorNameByFaction().

James D. Callahan III [03-26-10 - 00:36]
Moved several instances of duplicate code into ColorNameByFaction().
Filename
Frame.lua
diff --git a/Frame.lua b/Frame.lua
index cd5e20b..7ac2239 100644
--- a/Frame.lua
+++ b/Frame.lua
@@ -2926,6 +2926,9 @@ do
 			end
 		end
 	end
+	-------------------------------------------------------------------------------
+	-- Functions and data pertaining to individual list entries.
+	-------------------------------------------------------------------------------
 	local faction_strings

 	local function CheckDisplayFaction(faction)
@@ -2952,6 +2955,18 @@ do
 	-- Padding for list entries/subentries
 	local PADDING = "    "

+	-- Changes the color of "name" based on faction type.
+	local function ColorNameByFaction(name, faction)
+		if faction == FACTION_HORDE then
+			name = addon:Horde(name)
+		elseif faction == FACTION_ALLIANCE then
+			name = addon:Alliance(name)
+		else
+			name = SetTextColor(private.reputation_colors["neutral"], name)
+		end
+		return name
+	end
+
 	local function ExpandTrainerData(entry_index, entry_type, id_num, recipe_id, hide_location, hide_type)
 		local trainer = private.trainer_list[id_num]

@@ -2959,16 +2974,7 @@ do
 			return entry_index
 		end
 		local parent_entry = GetParentEntry(entry_index, entry_type)
-		local name = trainer.name
-
-		if trainer.faction == FACTION_HORDE then
-			name = addon:Horde(name)
-		elseif trainer.faction == FACTION_ALLIANCE then
-			name = addon:Alliance(name)
-		else
-			name = SetTextColor(private.reputation_colors["neutral"], name)
-		end
-
+		local name = ColorNameByFaction(trainer.name, trainer.faction)
 		local coord_text = ""

 		if trainer.coord_x ~= 0 and trainer.coord_y ~= 0 then
@@ -2995,22 +3001,13 @@ do
 	-- We need to display the vendor in the drop down if we want to see vendors or if we want to see PVP
 	-- This allows us to select PVP only and to see just the PVP recipes
 	local function ExpandVendorData(entry_index, entry_type, id_num, recipe_id, hide_location, hide_type)
-		local parent_entry = GetParentEntry(entry_index, entry_type)
 		local vendor = private.vendor_list[id_num]

 		if not CheckDisplayFaction(vendor.faction) then
 			return entry_index
 		end
-		local name = vendor.name
-
-		if vendor.faction == FACTION_HORDE then
-			name = addon:Horde(name)
-		elseif vendor.faction == FACTION_ALLIANCE then
-			name = addon:Alliance(name)
-		else
-			name = SetTextColor(private.reputation_colors["neutral"], name)
-		end
-
+		local parent_entry = GetParentEntry(entry_index, entry_type)
+		local name = ColorNameByFaction(vendor.name, vendor.faction)
 		local coord_text = ""

 		if vendor.coord_x ~= 0 and vendor.coord_y ~= 0 then
@@ -3085,15 +3082,7 @@ do
 				local quest = private.quest_list[id_num]

 				if CheckDisplayFaction(quest.faction) then
-					local name = quest.name
-
-					if quest.faction == FACTION_HORDE then
-						name = addon:Horde(name)
-					elseif quest.faction == FACTION_ALLIANCE then
-						name = addon:Alliance(name)
-					else
-						name = SetTextColor(rep_color["neutral"], name)
-					end
+					local name = ColorNameByFaction(quest.name, quest.faction)

 					local t = AcquireTable()

@@ -3149,15 +3138,7 @@ do

 							entry_index = self:InsertEntry(t, parent_entry, entry_index, entry_type, true)

-							local name = ""
-
-							if rep_vendor.faction == FACTION_HORDE then
-								name = addon:Horde(rep_vendor.name)
-							elseif rep_vendor.faction == FACTION_ALLIANCE then
-								name = addon:Alliance(rep_vendor.name)
-							else
-								name = SetTextColor(rep_color["neutral"], rep_vendor.name)
-							end
+							local name = ColorNameByFaction(rep_vendor.name, rep_vendor.faction)

 							t = AcquireTable()
 							t.text = PADDING .. PADDING .. faction_strings[rep_level] .. name
@@ -3212,15 +3193,7 @@ do
 					if vendor.coord_x ~= 0 and vendor.coord_y ~= 0 then
 						coord_text = addon:Coords("(" .. vendor.coord_x .. ", " .. vendor.coord_y .. ")")
 					end
-					local name = ""
-
-					if vendor.faction == FACTION_HORDE then
-						name = addon:Horde(vendor.name)
-					elseif vendor.faction == FACTION_ALLIANCE then
-						name = addon:Alliance(vendor.name)
-					else
-						name = SetTextColor(rep_color["neutral"], vendor.name)
-					end
+					local name = ColorNameByFaction(vendor.name, vendor.faction)

 					local t = AcquireTable()