# HG changeset patch # User matthijs # Date 1118944420 0 # Node ID b1cb02c0401c17fa5e0b32954cbcc79abec233cb # Parent d6837f067bc99204cbb20875fca4d2cd4d2bb899 (svn r2447) * Add: [NPF] Penalty for road vehicles making turns. diff -r d6837f067bc9 -r b1cb02c0401c npf.c --- a/npf.c Thu Jun 16 01:25:01 2005 +0000 +++ b/npf.c Thu Jun 16 17:53:40 2005 +0000 @@ -322,8 +322,10 @@ /* Check for slope */ cost += NPFSlopeCost(current); - /* Check for turns */ - //TODO + /* Check for turns. Road vehicles only really drive diagonal, turns are + * represented by non-diagonal tracks */ + if (!IsDiagonalTrackdir(current->direction)) + cost += _patches.npf_road_curve_penalty; NPFMarkTile(tile); DEBUG(npf, 4)("Calculating G for: (%d, %d). Result: %d", TileX(current->tile), TileY(current->tile), cost); diff -r d6837f067bc9 -r b1cb02c0401c settings.c --- a/settings.c Thu Jun 16 01:25:01 2005 +0000 +++ b/settings.c Thu Jun 16 17:53:40 2005 +0000 @@ -975,6 +975,8 @@ * rail curve penalty, since ships (realisticly) have more trouble with * making turns */ {"npf_water_curve_penalty", SDT_UINT32, (void*)(NPF_TILE_LENGTH / 4), &_patches.npf_water_curve_penalty, NULL}, + /* This is the penalty for road, same as for rail. */ + {"npf_road_curve_penalty", SDT_UINT32, (void*)(1), &_patches.npf_road_curve_penalty, NULL}, {NULL, 0, NULL, NULL, NULL} }; diff -r d6837f067bc9 -r b1cb02c0401c variables.h --- a/variables.h Thu Jun 16 01:25:01 2005 +0000 +++ b/variables.h Thu Jun 16 17:53:40 2005 +0000 @@ -215,6 +215,7 @@ uint32 npf_rail_depot_reverse_penalty; /* The penalty for reversing in depots */ uint32 npf_buoy_penalty; /* The penalty for going over (through) a buoy */ uint32 npf_water_curve_penalty; /* The penalty for curves */ + uint32 npf_road_curve_penalty; /* The penalty for curves */ bool population_in_label; // Show the population of a town in his label? } Patches;