Files @ r4346:fa4ac6b6f852
Branch filter:

Location: cpp/openttd-patchpack/source/yapf.txt

truelight
(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones
-Codechange: use IsValidXXX where ever possible
Note: both changes to prepare for new pool system, which needs those changes.
For every pool there are 2 ugly lines, which will be removed when done
implementing new pool system.
Based on FS#13 by blathijs, partly implemented.
Ships:
======
Set the YAPF (Yet Another Path Finder) type in the "Configure Pathes/Vehicles/YAPF for ships":
 - 0 - No YAPF (NPF or old PF)
 - 1 - YAPF type 1 (Node = Tile/Trackdir, 90 deg. turns allowed)
 - 2 - YAPF type 2 (Node = Tile/ExitDir , 90 deg. turns allowed)
 - 3 - YAPF type 3 (Node = Tile/Trackdir, no 90 deg.)
 - 4 - YAPF type 4 (Node = Tile/ExitDir , no 90 deg.)


Set the "npf_max_search_nodes" value in your openttd.cfg to tune the pathfinder behavior.
This value tells, how many nodes (Tile/Trackdir or Tile/ExitDir) combinations the pathfinder
should visit before it ends. The lower number would mean quicker, but less accurate results.
The "npf_max_search_nodes" value is shared between NPF and YAPF and has the same meaning.

The pathfinder without such limit would be unusable on large maps, where number of visited
nodes can exceed 10 milions. NPF on my machine (dual code AMD 4400+) with 1 milion of nodes
visited took 2 minutes to finish, but with this limit set to 10000 it takes 20 miliseconds.
The new YAPF had similar results (18 seconds vs. 4 miliseconds).


Road Vehicles:
==============
Set the YAPF (Yet Another Path Finder) type in the "Configure Pathes/Vehicles/YAPF for road vehs":
 - 0 - No YAPF (NPF or old PF)
 - 1 - YAPF type 1 (Node = Tile/Trackdir, 90 deg. turns allowed)
 - 2 - YAPF type 2 (Node = Tile/ExitDir , 90 deg. turns allowed)

Trains:
=======
Same types as for ships:
 - 0 - No YAPF (NPF or old PF)
 - 1 - YAPF type 1 (Node = Tile/Trackdir, 90 deg. turns allowed)
 - 2 - YAPF type 2 (Node = Tile/ExitDir , 90 deg. turns allowed)
 - 3 - YAPF type 3 (Node = Tile/Trackdir, no 90 deg.)
 - 4 - YAPF type 4 (Node = Tile/ExitDir , no 90 deg.)