changeset 4411:0269b733a4d6 draft

(svn r6164) -Fix [YAPF]: Road vehicles preferring bends - added yapf.road_curve_penalty setting with default value 100 (=YAPF_TILE_LENGTH) that is saved only in MP games (mart3p)
author KUDr <KUDr@openttd.org>
date Sun, 27 Aug 2006 07:23:46 +0000
parents b7fd8c269df8
children 094190c7f3a0
files settings.c yapf/yapf_road.cpp yapf/yapf_settings.h
diffstat 3 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/settings.c
+++ b/settings.c
@@ -1433,6 +1433,7 @@
 	SDT_CONDVAR (Patches, yapf.rail_shorter_platform_per_tile_penalty, SLE_UINT, 28, SL_MAX_VERSION,NS, 0,   0 * YAPF_TILE_LENGTH,        0,   20000, STR_NULL, NULL),
 	// road vehicles - penalties
 	SDT_CONDVAR (Patches, yapf.road_slope_penalty                    , SLE_UINT, 28, SL_MAX_VERSION,NS, 0,   2 * YAPF_TILE_LENGTH,        0, 1000000, STR_NULL, NULL),
+	SDT_CONDVAR (Patches, yapf.road_curve_penalty                    , SLE_UINT, 28, SL_MAX_VERSION,NS, 0,   1 * YAPF_TILE_LENGTH,        0, 1000000, STR_NULL, NULL),
 	SDT_CONDVAR (Patches, yapf.road_crossing_penalty                 , SLE_UINT, 28, SL_MAX_VERSION,NS, 0,   3 * YAPF_TILE_LENGTH,        0, 1000000, STR_NULL, NULL),
 
 	/***************************************************************************/
--- a/yapf/yapf_road.cpp
+++ b/yapf/yapf_road.cpp
@@ -57,7 +57,7 @@
 			}
 		} else {
 			// non-diagonal trackdir
-			cost = YAPF_TILE_CORNER_LENGTH;
+			cost = YAPF_TILE_CORNER_LENGTH + Yapf().PfGetSettings().road_curve_penalty;
 		}
 		return cost;
 	}
--- a/yapf/yapf_settings.h
+++ b/yapf/yapf_settings.h
@@ -37,6 +37,7 @@
 	YS_DEF(bool  , road_use_yapf)              ///< use YAPF for road
 	YS_DEF(bool  , rail_use_yapf)              ///< use YAPF for rail
 	YS_DEF(uint32, road_slope_penalty)         ///< penalty for up-hill slope
+	YS_DEF(uint32, road_curve_penalty)         ///< penalty for curves
 	YS_DEF(uint32, road_crossing_penalty)      ///< penalty for level crossing
 	YS_DEF(bool  , rail_firstred_twoway_eol)   ///< treat first red two-way signal as dead end
 	YS_DEF(uint32, rail_firstred_penalty)      ///< penalty for first red signal