We ensure that selectable lines are placed at the same vertical
coordinates but space out unselectable text lines at the cost
of reduced heigh of empty space between the store items.
We also have to move the back button in scrollable lists to the
lower right.
This can definitely be improved further but at least it solves
the problem for now.
Refs #3162
The out-of-bounds check in MAI_Fallen checks whether the relative
offset coordinates (x, y) are out of bounds, rather than the
absoulte coordinate (xpos, ypos) which is used for array access
into dMonster.
The code previously assumed that there is an ASCII separator after each
resistance type.
Different languages may use something else entirely. Relaxes the
assumption to any single code point to avoid producing malformed
UTF-8.
This fixes cases such as `github.com`.
As we now require a space after Latin punctuation, we can remove
the list of Latin punctuation symbols and break on the space itself.
We still disallow linebreaks between consecutive fullwidth punctuation
symbols.
`DrawHalfTransparentBlendedRectTo` takes up a significant chunk of time
when rendering store and quest dialogs.
Optimize the function to read 2 pixels at a time and write 4 pixels at a
time.
The pre-calculated crawl table is replaced with partially unrolled loops to handle the special cases covered by the table.
Arbitrary limit of 50 placed to allow using this function for searches where vanilla logic would check up to (±49, ±49).