ClosetGnome

18 - Item set matching fails on sets that ignore slots

What steps will reproduce the problem?
1. Create a partial item set (e.g. tabard and shirt slots are ignored)
2. Reload the UI

What is the expected output? What do you see instead?
The LDB broker displays "ClosetGnome" instead of the equipped item set name as detection failed

What version of the product are you using?
r614

Do you have an error log of what happened?
n/a

Please provide any additional information below.
The item set detection routine is trying to match an item to a slot, even if that slot is ignored in the item set currently being checked.

My suggestion is to add the following code to increment slotMatches when the location is EQUIPMENT_SET_IGNORED_SLOT

local function guessEquippedSet()
	local currentSlotCount, currentName = 0, nil
	for i = 1, GetNumEquipmentSets() do
		local name = GetEquipmentSetInfo(i)
		local locations = GetEquipmentSetLocations(name)
		if locations then
			local slotCount, slotMatches = 0, 0
			for slot = INVSLOT_FIRST_EQUIPPED, INVSLOT_LAST_EQUIPPED do
				local location = locations[slot]
				if location then
					slotCount = slotCount + 1
					if location == EQUIPMENT_SET_EMPTY_SLOT then
						if not GetInventoryItemID("player", slot) then
							slotMatches = slotMatches + 1
						end
+					elseif location == EQUIPMENT_SET_IGNORED_SLOT then
+						slotMatches = slotMatches + 1
					elseif location ~= EQUIPMENT_SET_ITEM_MISSING then
						local player, bank, bags, actualSlot = EquipmentManager_UnpackLocation(location)
						if player and not bank and not bags and slot == actualSlot then
							slotMatches = slotMatches + 1
						end
					end
				end
			end
			if slotMatches == slotCount and slotCount > currentSlotCount then
				currentName, currentSlotCount = name, slotCount
			end
		end
	end
	return currentName
end


User When Change
yj589794 Sun, 29 Nov 2009 08:34:33 Create

You must login to post a comment. Don't have an account? Register to get one!

Facts

Reported on
29 Nov 2009
Status
New - Issue has not had initial review yet.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.

Reported by

Possible assignees