Hi Yexo, ..
the 'declaration/interface' section of InitializePath() function on pathfinder.road 4 said there's no ' ignored_tiles' (line 67)
but the 'implementation' has (line 153), there is no problem with that since the debugger says no error. But, if that
feature is still supportted, IMO it would be better to write the same as implementation.
All ....
Here some try out of Aystar.5 and RPF 4
=========================
Map Size = 512 x 512
Difficulty Setting = Medium (Hilly Land)
Climate = Temperate
Connecting 2 town with road (I've choose the most far)
879 tile distance manhattan
1. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 5
ignore_tile = AITilelist( !IsBuildAble || !IsRoadTile )
------------
total time needed to connecting the road = 13 days
path.length become 891
2. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 5
ignore_tile = []
------------
total time needed to connecting the road = 13 days
path.length become 891
3. Set the parameters :
max_length_multiplier = 0 (default)
max_length_offset = 10000 (default)
pathfinder.cost.estimate_multiplier = 5
ignore_tile = []
------------
total time needed to connecting the road = 13 days
path.length become 887
4. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 2
ignore_tile = AITilelist( !IsBuildAble || !IsRoadTile )
------------
total time needed to connecting the road = 33 days
path.length become 881
5. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 1.5
ignore_tile = AITilelist( !IsBuildAble || !IsRoadTile )
------------
total time needed to connecting the road = 1605 days
path.length become 883
6. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 1.7
ignore_tile = AITilelist( !IsBuildAble || !IsRoadTile )
------------
total time needed to connecting the road = 64 days
path.length become 881
7. Set the parameters :
max_length_multiplier = 1.5
max_length_offset = 0
pathfinder.cost.estimate_multiplier = 1 (default)
ignore_tile = AITilelist( !IsBuildAble || !IsRoadTile )
------------
stopped pathfinding, it take 5 years and path still 'false'
Note:
when cost.estimate_multiplier is set to 5, most of bridge was built, even over a town road (remind me of PathZilla

CMIIW zutty)
when cost.estimate_multiplier is set to 2, the pathfinder look avoid building bridge/tunnel and made a nice road I thought

just wondering, the Heuristic function really make a different processing time (see 4,5,6,7)

Nice pathfinder