changeset 4406:d4702ef4c475 draft

(svn r6159) -Fix: FindClosestTrainDepot hardly ever found a depot with NPF off due to absence of distance-normalization (Rojer)
author Darkvater <Darkvater@openttd.org>
date Sat, 26 Aug 2006 21:54:04 +0000
parents ab6c6c2a811e
children 8eda64a27161
files pathfind.c pathfind.h train_cmd.c
diffstat 3 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/pathfind.c
+++ b/pathfind.c
@@ -637,11 +637,6 @@
 	0, //14
 };
 
-
-#define DIAG_FACTOR 3
-#define STR_FACTOR 2
-
-
 static uint DistanceMoo(TileIndex t0, TileIndex t1)
 {
 	const uint dx = abs(TileX(t0) - TileX(t1));
--- a/pathfind.h
+++ b/pathfind.h
@@ -5,6 +5,11 @@
 
 #include "direction.h"
 
+enum {
+	STR_FACTOR  = 2,
+	DIAG_FACTOR = 3
+};
+
 //#define PF_BENCH // perform simple benchmarks on the train pathfinder (not
 //supported on all archs)
 
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -1847,7 +1847,8 @@
 	if (IsTileType(tile, MP_RAILWAY) &&
 			IsTileOwner(tile, tfdd->owner) &&
 			IsRailDepot(tile)) {
-		tfdd->best_length = length;
+		/* approximate number of tiles by dividing by DIAG_FACTOR */
+		tfdd->best_length = length / DIAG_FACTOR;
 		tfdd->tile = tile;
 		return true;
 	}