# HG changeset patch # User matthijs # Date 1110311996 0 # Node ID 86d703cbdd3a64373b7a965b294363b04e64f71d # Parent 19333d7f99b357d3660110e91e85e7018ad12f57 (svn r1964) - Add: [NPF] Added a penalty diff -r 19333d7f99b3 -r 86d703cbdd3a npf.c --- a/npf.c Tue Mar 08 19:54:10 2005 +0000 +++ b/npf.c Tue Mar 08 19:59:56 2005 +0000 @@ -369,7 +369,10 @@ cost += NPFSlopeCost(current); /* Check for turns */ - //TODO + if (current->direction != parent->path.node.direction) + cost += _patches.npf_rail_curve_penalty; + //TODO, with realistic acceleration, also the amount of straight track between + // curves should be taken into account, as this affects the speed limit. /* Check for occupied track */ //TODO diff -r 19333d7f99b3 -r 86d703cbdd3a settings.c --- a/settings.c Tue Mar 08 19:54:10 2005 +0000 +++ b/settings.c Tue Mar 08 19:59:56 2005 +0000 @@ -949,6 +949,7 @@ */ {"npf_rail_station_penalty", SDT_UINT32, (void*)(1 * NPF_TILE_LENGTH), &_patches.npf_rail_station_penalty, NULL}, {"npf_rail_slope_penalty", SDT_UINT32, (void*)(1 * NPF_TILE_LENGTH), &_patches.npf_rail_slope_penalty, NULL}, + {"npf_rail_curve_penalty", SDT_UINT32, (void*)(1), &_patches.npf_rail_curve_penalty, NULL}, {NULL, 0, NULL, NULL, NULL} }; diff -r 19333d7f99b3 -r 86d703cbdd3a variables.h --- a/variables.h Tue Mar 08 19:54:10 2005 +0000 +++ b/variables.h Tue Mar 08 19:59:56 2005 +0000 @@ -196,6 +196,7 @@ uint32 npf_rail_lastred_penalty; /* The penalty for when the last signal is red */ uint32 npf_rail_station_penalty; /* The penalty for station tiles */ uint32 npf_rail_slope_penalty; /* The penalty for sloping upwards */ + uint32 npf_rail_curve_penalty; /* The penalty for curves */ bool population_in_label; // Show the population of a town in his label? } Patches;