Expose P_PathTraverse to Lua
Exposes P_PathTraverse to Lua, allowing modders to search objects and linedefs touching a line within specified coordinates. Also exposes PT_ADDLINES, PT_ADDTHINGS, and PT_EARLYOUT to pass in as flags for P_PathTraverse.
This MR also fixes some blockmap bugs:
- Fixes #1025 (closed) by adding a new argument to P_BlockThingsIterator that takes an
mobj_tand checks for it, instead of just checking fortmthing. - Fixes a few bugs with P_PathTraverse itself:
- Ports over a couple of fixes regarding path traversal from ZDoom (traversing through blockmap corners, etc.).
- Fixes incorrect calculation(s) of
partial(nowpartialxandpartialy),xstep,ystep,xintercept, andyintercept. - Path traversals can now go beyond a map's blockmap limit, granted they stay within the hardcoded limit of 65536x65536.
Example Lua: P_PathTraverseTesting.lua
Special thanks to the following users for helping me out with this MR:
- Golden (This MR was based off of the
p-path-traverse-lua-exposurebranch, which Golden worked on) - Monster Iestyn (For helping me figure out how to pass in a Lua function as a parameter)
- AlamTaz (For helping me figure out why my branch was failing to build)
- Anyone else who helped out (I hope I didn't forget anyone...)