From 3bbf0fc87b34ccab4f3bb91e1690981aecd80c7d Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 30 Mar 2009 20:19:25 +0000 Subject: (svn r15900) -Fix (r5076): Adding settings is not enough, you also have to use them. --- src/yapf/yapf_costrail.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/yapf') diff --git a/src/yapf/yapf_costrail.hpp b/src/yapf/yapf_costrail.hpp index f32b8388b..81ef6a82a 100644 --- a/src/yapf/yapf_costrail.hpp +++ b/src/yapf/yapf_costrail.hpp @@ -244,13 +244,13 @@ public: assert(v != NULL); assert(v->type == VEH_TRAIN); assert(v->u.rail.cached_total_length != 0); - int needed_platform_length = (v->u.rail.cached_total_length + TILE_SIZE - 1) / TILE_SIZE; - if (platform_length > needed_platform_length) { + int missing_platform_length = (v->u.rail.cached_total_length + TILE_SIZE - 1) / TILE_SIZE - platform_length; + if (missing_platform_length < 0) { /* apply penalty for longer platform than needed */ - cost += Yapf().PfGetSettings().rail_longer_platform_penalty; - } else if (needed_platform_length > platform_length) { + cost += Yapf().PfGetSettings().rail_longer_platform_penalty + Yapf().PfGetSettings().rail_longer_platform_per_tile_penalty * -missing_platform_length; + } else if (missing_platform_length > 0) { /* apply penalty for shorter platform than needed */ - cost += Yapf().PfGetSettings().rail_shorter_platform_penalty; + cost += Yapf().PfGetSettings().rail_shorter_platform_penalty + Yapf().PfGetSettings().rail_shorter_platform_per_tile_penalty * missing_platform_length; } return cost; } -- cgit v1.2.3-54-g00ecf