mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 05:13:58 -07:00
The pathfinder computations are run asynchronously (and potentially on the main thread) in-between simulation turns, thus reducing pathfinder-related lag considerably in common cases. To make this most efficient, the number of paths computed during a turn via MaxSameTurnMoves is reduced from 64 to 20. This has a hard dependency on the obstruction manager (via the vertex pathfinder) not being modified in-between simulation turn (or to put it more generally on the simulation state not changing outside of turn computation), otherwise results will be non-deterministic and go OOS. This is currently entirely safe (as in, it indeed does not happen that the simulation state changes in-between turn), but future work towards improving simulation sandboxing would be good. Thanks to Kuba386 for maintaining & improving the patch in 2020 Thanks to everyone who tested the various iterations of this patch. Fixes #4324 Differential Revision: https://code.wildfiregames.com/D14 This was SVN commit r25657. |
||
|---|---|---|
| .. | ||
| CinemaPath.cpp | ||
| CinemaPath.h | ||
| Geometry.cpp | ||
| Geometry.h | ||
| Grid.h | ||
| HierarchicalPathfinder.cpp | ||
| HierarchicalPathfinder.h | ||
| LongPathfinder.cpp | ||
| LongPathfinder.h | ||
| Los.h | ||
| MapEdgeTiles.h | ||
| Pathfinding.cpp | ||
| Pathfinding.h | ||
| PathGoal.cpp | ||
| PathGoal.h | ||
| Player.h | ||
| Position.h | ||
| PriorityQueue.h | ||
| Rasterize.cpp | ||
| Rasterize.h | ||
| Render.cpp | ||
| Render.h | ||
| Selection.cpp | ||
| Selection.h | ||
| SimulationCommand.h | ||
| Spatial.h | ||
| VertexPathfinder.cpp | ||
| VertexPathfinder.h | ||