Quantcast

Improved logic for items with a subclass of Miscellaneous

Salvatore Lopiparo [07-19-16 - 03:09]
Improved logic for items with a subclass of Miscellaneous
Filename
code.lua
diff --git a/code.lua b/code.lua
index d496f1b..8f67af1 100644
--- a/code.lua
+++ b/code.lua
@@ -133,12 +133,7 @@ CanIMogIt.KNOWN_FROM_ANOTHER_ITEM_AND_CHARACTER = QUESTIONABLE_ICON .. YELLOW ..


 local exceptionItems = {
-    ['INVTYPE_HEAD'] = {
-		[87213] = CanIMogIt.NOT_TRANSMOGABLE, -- Mist-Piercing Goggles
-		[52485] = CanIMogIt.NOT_TRANSMOGABLE, -- Jeweler's Ruby Monocle
-		[52486] = CanIMogIt.NOT_TRANSMOGABLE, -- Jeweler's Sapphire Monocle
-		-- [52487] = CanIMogIt.NOT_TRANSMOGABLE, -- Jeweler's Ruby Monocle -- NOTE: This item works.
-	},
+    ['INVTYPE_HEAD'] = {},
     ['INVTYPE_SHOULDER'] = {
 		[119556] = CanIMogIt.NOT_TRANSMOGABLE, -- Trailseeker Spaulders
 	},
@@ -159,33 +154,9 @@ local exceptionItems = {
 		[89573] = CanIMogIt.NOT_TRANSMOGABLE, -- Handwraps of Meditation
 		[89574] = CanIMogIt.NOT_TRANSMOGABLE, -- Handwraps of Fallen Blossoms
 		[89575] = CanIMogIt.NOT_TRANSMOGABLE, -- Handwraps of Serenity
-		-- Brewfest Steins start --
-		[27941] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33016] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37892] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32912] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33020] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32917] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33017] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33021] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33019] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32918] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37897] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32920] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37895] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32915] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37896] = CanIMogIt.NOT_TRANSMOGABLE,
-		[32919] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37894] = CanIMogIt.NOT_TRANSMOGABLE,
-		[37893] = CanIMogIt.NOT_TRANSMOGABLE,
-		[33018] = CanIMogIt.NOT_TRANSMOGABLE,
-		[56836] = CanIMogIt.NOT_TRANSMOGABLE,
-		-- Brewfest Steins end --
 	},
     ['INVTYPE_SHIELD'] = {},
-    ['INVTYPE_2HWEAPON'] = {
-		[41755] = CanIMogIt.NOT_TRANSMOGABLE, -- The Fire Extinguisher
-	},
+    ['INVTYPE_2HWEAPON'] = {},
     ['INVTYPE_WEAPONMAINHAND'] = {},
     ['INVTYPE_RANGED'] = {},
     ['INVTYPE_RANGEDRIGHT'] = {},
@@ -274,9 +245,14 @@ function CanIMogIt:IsItemArmor(itemLink)
 end


+function CanIMogIt:IsArmorSubClass(subClass, itemLink)
+	return select(1, GetItemSubClassInfo(4, subClass)) == select(7, GetItemInfo(itemLink))
+end
+
+
 function CanIMogIt:IsArmorAppropriateForPlayer(itemLink)
 	local playerArmorTypeID = CanIMogIt:GetPlayerArmorTypeName()
-	if armorTypeSlots[CanIMogIt:GetSlotName(itemLink)] and select(1, GetItemSubClassInfo(4, 5)) ~= select(7, GetItemInfo(itemLink)) then
+	if armorTypeSlots[CanIMogIt:GetSlotName(itemLink)] and not CanIMogIt:IsArmorSubClass(COSMETIC, itemLink) then
 		return playerArmorTypeID == select(7, GetItemInfo(itemLink))
 	else
 		return true
@@ -403,6 +379,11 @@ function CanIMogIt:IsTransmogable(itemLink)
 	if quality <= 1 then
 		return false
 	end
+
+	local is_misc_subclass = CanIMogIt:IsArmorSubClass(MISC, itemLink)
+	if is_misc_subclass then
+		return false
+	end

     local itemID, _, _, slotName = GetItemInfoInstant(itemLink)