-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow searching for multiple terms #1853
base: dev
Are you sure you want to change the base?
Conversation
…al character to class
Split searchStr on searchTermSentinal. Change searchStrResults to a bitmap table. Draw a circle for each successful search term. Color highlight circles with searchResultColormap. Require luabit for access to bitwise functions
I managed to get my changes running on a different computer and was able to fix what issues I could find, (as shown in the many force-pushes). It's pretty neat to see frenzy, endurance, or power nodes highlighted.
Responding to my comment about how the search term parsing works, it seems that the Lua |
This series of commits allow the search bar to handle multiple search terms. When the user searches with the string,
bleed|frenzy
, nodes that contain text with eitherbleed
orfrenzy
will be highlighted. In other words, this change allows searching the union of each term. This is a change from the previous functionality of PoB searching only for the entire search string, including any whitespace. For comparison, the game allows whitespace to separate search terms and performs a search of the intersection of each term.There are three big changes that should be considered before accepting this pull request.
1. The search cache has been changed from a table of booleans to a table of bitmaps (integers)
I don't know how this will work with the current serialization method or how the program will handle loading an old table of booleans and treating it like it's a new table of bitmaps.
2. I developed this patch on Linux and could not compile and test these changesI'm mostly worried that the highlight circles are being drawn incorrectly (more on this below) or that I unknowingly clobbered some global variable, but I'm new to Lua, so anything's possible.3. Users can no longer search for
|
(the pipe symbol)I don't think this will affect anyone.
Some other comments:
I tried to make the highlight circles be drawn concentrically, but I'm not entirely sure I changed the draw call correctly. Please check to make sure theSetDrawLayer()
function and thesize
variable are used correctly.The search terms can also be empty. For example, the stringIf I knew how, I would have instead added an Advanced Search button that opened a dialog window with eight text areas and associated color pickers.bleed||freeze||
will have three empty terms in it (bleed|1|freeze|2|3
), and the highlight circles will be offset accordingly. This is not the greatest from a useablility perspective, but it's what I could figure out.Thank you for any feedback.