P_PathTraverse no longer assumes all Blockmaps have the same properties
Reworked trace intercept list:
Replaced the global array with a doubly linked list with sentinel nodes.
P_AddIntercept now automatically constructs a sorted trace node list.
This is more efficent than scanning for the next trace node by distance in P_TraverseIntercepts. Also because of the fact nodes are added in approximately the right order due to the logic of the Blockmap cell stepping algorithms - remember the MRU node and use it's distance value to skip the insertion sort forward when possible.
Removed the "earlyout" logic path from the intercept collection stage as its no longer used (was it ever?).
P_PathTraverse no longer assumes all Blockmaps have the same properties
Reworked trace intercept list:This is more efficent than scanning for the next trace node by distance
in P_TraverseIntercepts. Also because of the fact nodes are added in
approximately the right order due to the logic of the Blockmap cell
stepping algorithms - remember the MRU node and use it's distance value
to skip the insertion sort forward when possible.
Removed the "earlyout" logic path from the intercept collection stage
as its no longer used (was it ever?).
Added a void* paramaters argument to traverser_t
Cleanup