Quantcast

Change class filtering to be exclusinve instead of inclusive.

ackis [09-29-09 - 16:22]
Change class filtering to be exclusinve instead of inclusive.
Filename
AckisRecipeList.lua
diff --git a/AckisRecipeList.lua b/AckisRecipeList.lua
index f9a5fae..2ed270c 100644
--- a/AckisRecipeList.lua
+++ b/AckisRecipeList.lua
@@ -849,6 +849,38 @@ end

 do

+	-------------------------------------------------------------------------------
+	-- Item "rarity"
+	-------------------------------------------------------------------------------
+	local R_COMMON, R_UNCOMMON, R_RARE, R_EPIC, R_LEGENDARY, R_ARTIFACT = 1, 2, 3, 4, 5, 6
+
+	-------------------------------------------------------------------------------
+	-- Origin
+	-------------------------------------------------------------------------------
+	local GAME_ORIG, GAME_TBC, GAME_WOTLK = 0, 1, 2
+
+	-------------------------------------------------------------------------------
+	-- Filter flags
+	-------------------------------------------------------------------------------
+	local F_ALLIANCE, F_HORDE, F_TRAINER, F_VENDOR, F_INSTANCE, F_RAID = 1, 2, 3, 4, 5, 6
+	local F_SEASONAL, F_QUEST, F_PVP, F_WORLD_DROP, F_MOB_DROP, F_DISC = 7, 8, 9, 10, 11, 12
+	local F_DK, F_DRUID, F_HUNTER, F_MAGE, F_PALADIN, F_PRIEST, F_SHAMAN, F_ROGUE, F_WARLOCK, F_WARRIOR = 21, 22, 23, 24, 25, 26, 27, 28, 29 30
+	local F_IBOE, F_IBOP, F_IBOA, F_RBOE, F_RBOP, F_RBOA, = 36, 37, 38, 40, 41, 42
+	local F_DPS, F_TANK, F_HEALER, F_CASTER = 51, 52, 53, 54
+	local F_CLOTH, F_LEATHER, F_MAIL, F_PLATE, F_CLOAK, F_TRINKET, F_RING, F_NECK, F_SHIELD = 56, 57, 58, 59, 60, 61, 62, 63, 64
+	local F_1H, F_2H, F_AXE, F_SWORD, F_MACE, F_POLEARM, F_DAGGER, F_STAFF, F_WAND, F_THROWN, F_BOW, F_XBOW, F_AMMO, F_FIST, F_GUN = 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
+
+	-------------------------------------------------------------------------------
+	-- Reputation Filter flags
+	-------------------------------------------------------------------------------
+	local F_ARGENTDAWN, F_CENARION_CIRCLE, F_THORIUM_BROTHERHOOD, F_TIMBERMAW_HOLD, F_ZANDALAR = 96, 97, 98, 99, 100
+	local F_ALDOR, F_ASHTONGUE, F_CENARION_EXPIDITION, F_HELLFIRE, F_CONSORTIUM = 101, 102, 103, 104, 105
+	local F_KOT, F_LOWERCITY, F_NAGRAND, F_SCALE_SANDS, F_SCRYER, F_SHATAR = 106, 107, 108, 109, 110
+	local F_SHATTEREDSUN, F_SPOREGGAR, F_VIOLETEYE = 111, 112, 113, 114
+	local F_ARGENTCRUSADE, F_FRENZYHEART, F_EBONBLADE, F_KIRINTOR, F_HODIR = 115, 116, 117, 118, 119
+	local F_KALUAK, F_ORACLES, F_WYRMREST, F_WRATHCOMMON1, F_WRATHCOMMON2 = 120, 121, 122, 123, 124
+	local F_WRATHCOMMON3, F_WRATHCOMMON4, F_WRATHCOMMON5 = 125, 126, 127
+
 	local reptable = nil

 	local function CreateRepTable()
@@ -946,13 +978,13 @@ do
 			-- We want to filter out all the Horde only recipes
 			if (playerFaction == BFAC["Alliance"]) then
 				-- Filter out Horde only
-				if (flags[1] == false) and (flags[2] == true) then
+				if (flags[F_ALLIANCE] == false) and (flags[F_HORDE] == true) then
 					return false
 				end
 			-- We want to filter out all the Alliance only recipes
 			else
 				-- Filter out Alliance only
-				if (flags[2] == false) and (flags[1] == true) then
+				if (flags[F_HORDE] == false) and (flags[F_ALLIANCE] == true) then
 					return false
 				end
 			end
@@ -972,45 +1004,45 @@ do

 		-- Filter out "era" recipes

-		if ((obtaindb.originalwow == false) and (Recipe["Game"] == 0)) then
+		if ((obtaindb.originalwow == false) and (Recipe["Game"] == GAME_ORIG)) then
 			return false
 		end
-		if ((obtaindb.bc == false) and (Recipe["Game"] == 1)) then
+		if ((obtaindb.bc == false) and (Recipe["Game"] == GAME_TBC)) then
 			return false
 		end
-		if ((obtaindb.wrath == false) and (Recipe["Game"] == 2)) then
+		if ((obtaindb.wrath == false) and (Recipe["Game"] == GAME_WOTLK)) then
 			return false
 		end

 		local bindingdb = filterdb.binding

 		-- Include BoE Items in the scan? (if I want to see BoE items, only filter those that are not BoE)
-		if (bindingdb.itemboe == false) and (flags[36] == true) then
+		if (bindingdb.itemboe == false) and (flags[F_IBOE] == true) then
 			return false
 		end

 		-- Include BoP Items in the scan? (if I want to see BoP items, only filter those that are not BoP)
-		if (bindingdb.itembop == false) and (flags[37] == true) then
+		if (bindingdb.itembop == false) and (flags[F_IBOP] == true) then
 			return false
 		end

 		-- Include BoA Items in the scan? (if I want to see BoA items, only filter those that are not BoA)
-		if (bindingdb.itemboa == false) and (flags[38] == true) then
+		if (bindingdb.itemboa == false) and (flags[F_IBOA] == true) then
 			return false
 		end

 		-- Include BoE Recipes in the scan? (if I want to see BoE recipes, only filter those that are not BoE)
-		if (bindingdb.recipeboe == false) and (flags[40] == true) then
+		if (bindingdb.recipeboe == false) and (flags[F_RBOE] == true) then
 			return false
 		end

 		-- Include BoP Recipes in the scan? (if I want to see BoP recipes, only filter those that are not BoP)
-		if (bindingdb.recipebop == false) and (flags[41] == true) then
+		if (bindingdb.recipebop == false) and (flags[F_RBOP] == true) then
 			return false
 		end

 		-- Include BoA Recipes in the scan? (if I want to see BoA recipes, only filter those that are not BoA)
-		if (bindingdb.recipeboa == false) and (flags[42] == true) then
+		if (bindingdb.recipeboa == false) and (flags[F_RBOA] == true) then
 			return false
 		end

@@ -1119,165 +1151,36 @@ do

 		local classesdb = filterdb.classes

-			if (classesdb.deathknight == false) and (flags[21] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.druid == false) and (flags[22] == true) then
-				if (classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.hunter == false) and (flags[23] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.mage == false) and (flags[24] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.paladin == false) and (flags[25] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.priest == false) and (flags[26] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.shaman == false) and (flags[27] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.rogue == false) and (flags[28] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.warlock == false) and (flags[29] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) or
-				(classesdb.warrior == true) and (flags[30] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
-
-			if (classesdb.warrior == false) and (flags[30] == true) then
-				if (classesdb.druid == true) and (flags[22] == true) or
-				(classesdb.hunter == true) and (flags[23] == true) or
-				(classesdb.mage == true) and (flags[24] == true) or
-				(classesdb.paladin == true) and (flags[25] == true) or
-				(classesdb.priest == true) and (flags[26] == true) or
-				(classesdb.shaman == true) and (flags[27] == true) or
-				(classesdb.rogue == true) and (flags[28] == true) or
-				(classesdb.warlock == true) and (flags[29] == true) or
-				(classesdb.deathknight == true) and (flags[21] == true) then
-					--do nothing
-				else
-					return false
-				end
-			end
+		if ((classesdb.deathknight == false) and (flags[F_DK] == true)) then
+			return false
+		end
+		if ((classesdb.druid == false) and (flags[F_DRUID] == true)) then
+			return false
+		end
+		if ((classesdb.hunter == false) and (flags[F_HUNTER] == true)) then
+			return false
+		end
+		if ((classesdb.mage == false) and (flags[F_MAGE] == true)) then
+			return false
+		end
+		if ((classesdb.paladin == false) and (flags[F_PALADIN] == true)) then
+			return false
+		end
+		if ((classesdb.priest == false) and (flags[F_PRIEST] == true)) then
+			return false
+		end
+		if ((classesdb.shaman == false) and (flags[F_SHAMAN] == true)) then
+			return false
+		end
+		if ((classesdb.rogue == false) and (flags[F_ROGUE] == true)) then
+			return false
+		end
+		if ((classesdb.warlock == false) and (flags[F_WARLOCK] == true)) then
+			return false
+		end
+		if ((classesdb.warrior == false) and (flags[F_WARRIOR] == true)) then
+			return false
+		end

 		-- Stage 2
 		-- loop through nonexclusive (soft filters) flags until one is true