changeset 1941:52fdfd0cc51b draft

(svn r2447) * Add: [NPF] Penalty for road vehicles making turns.
author matthijs <matthijs@openttd.org>
date Thu, 16 Jun 2005 17:53:40 +0000
parents 720d4ad3c811
children 1e42db2f8fbe
files npf.c settings.c variables.h
diffstat 3 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/npf.c
+++ b/npf.c
@@ -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);
--- a/settings.c
+++ b/settings.c
@@ -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}
 };
--- a/variables.h
+++ b/variables.h
@@ -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;