fix: cyclopedia item filters & market voc filter #1122
Draft
+66
−49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The cyclopedia filters have a few issues:
Selecting any of the item filters clears out all items. This is simply due to a scoping error which is easily fixed.
Fixing the scoping error then revealed that there is an issue with displaying items based on the vocation filter.
The vocations are as follows:
1 = knight
2 = paladin
3 = sorcerer
4 = druid
When restrictVocation bitmask is calculated on the C++ side and an item is for a knight and paladin the value is 3 which is the same as sorcerer. As a result, sorcerers are seeing items for knights and paladins. Also, with the current logic for the filter each vocation is only seeing items that are explicitly for their vocation and none of the items with multiple vocations nor items with no vocation req.
I have changed the restrictVocation bitmask to the following:
1 = knight
2 = paladin
4 = sorcerer
8 = druid
This way each bit represents each vocation and no overlap can occur when combining.
These changes also fix the vocation filtering for the market items as well.
Behavior
Actual
Selecting an items filter clears all results
Selecting vocation filter shows incorrect results
Expected
Selecting filters should show correct items based on player level/voc
Type of change
Please delete options that are not relevant.
How Has This Been Tested
Test Configuration:
Checklist