The event regions used to redirect creeps have been reduced drastically in size. The hope is that the difference between different player orientations in regards to air pathing has been removed or reduced.
Notes
A region seems to be made up of cells (i.e. 32x32 squares, where the bottom and left edges are inclusive and the top and right edges are exclusive). If a rect extends into a cell, it is marked as part of the region.
\
Regions, before working on this issue, were defined by 64x64 rects (edges inclusive). These rects are converted to regions for the unit enters region event. In reality, an area of 96x96 is marked internally in those event regions, skewed towards the top and right. This means that units entering a checkpoint from the top or right would fire the event sooner than intended.
\
Switching rect sizes to 0.1x0.1 accidentally resolved this larger event region issue. It creates true 64x64 event regions (even if that was not my intention).
Update 2019-05-18
The above is close to accurate, but not may not always hold true. If region works like how SetTerrainPathable works, then if a point is as the center of four cells:
AB
CD
Then depending on location in the map, the point will represent a different cell. In the upper right quadrant, A will represent the point. In upper left, B will, and so on. To avoid such issues, prefer to reference cells by the center point.
To-Do
[x] Reduce the size of checkpoint regions. These should be as small as possible, while still allowing the event to fire. The 0.1x0.1 rects created mark all four cells around a specific point when added to a region. This is the smallest possible region that can be created for such behavior (i.e. 64x64).
[x] Introduce a temporary waypoint system for air units. This will help fight against the pathing engine's tendency to have units drift from the straight line.
Air Pathing
Attempt at implementing #11.
Testing Version
The event regions used to redirect creeps have been reduced drastically in size. The hope is that the difference between different player orientations in regards to air pathing has been removed or reduced.
Notes
32x32
squares, where the bottom and left edges are inclusive and the top and right edges are exclusive). If a rect extends into a cell, it is marked as part of the region. \ Regions, before working on this issue, were defined by64x64
rects (edges inclusive). These rects are converted to regions for the unit enters region event. In reality, an area of96x96
is marked internally in those event regions, skewed towards the top and right. This means that units entering a checkpoint from the top or right would fire the event sooner than intended. \ Switching rect sizes to0.1x0.1
accidentally resolved this larger event region issue. It creates true64x64
event regions (even if that was not my intention).Update 2019-05-18
The above is close to accurate, but not may not always hold true. If
region
works like howSetTerrainPathable
works, then if a point is as the center of four cells:Then depending on location in the map, the point will represent a different cell. In the upper right quadrant, A will represent the point. In upper left, B will, and so on. To avoid such issues, prefer to reference cells by the center point.
To-Do
0.1x0.1
rects created mark all four cells around a specific point when added to a region. This is the smallest possible region that can be created for such behavior (i.e.64x64
).