summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKUDr <kudr@openttd.org>2006-06-01 22:20:40 +0000
committerKUDr <kudr@openttd.org>2006-06-01 22:20:40 +0000
commitd680fcec772d422b88ea4802add2e6195c6327a2 (patch)
tree0241149fb8567a25bc526c43c20c9412991a125d
parentbd25f49d3f5252ba473759320b86f581be9c79fd (diff)
downloadopenttd-d680fcec772d422b88ea4802add2e6195c6327a2.tar.xz
(svn r5067) -Codechange: [YAPF] Platform selection feature now applies penalty per platform instead of per tile (should give better results)
-rw-r--r--settings.c4
-rw-r--r--yapf/yapf_costrail.hpp6
2 files changed, 5 insertions, 5 deletions
diff --git a/settings.c b/settings.c
index 1fd5e5d05..b1691f4bc 100644
--- a/settings.c
+++ b/settings.c
@@ -1408,8 +1408,8 @@ const SettingDesc _patch_settings[] = {
SDT_CONDVAR (Patches, yapf.rail_look_ahead_signal_p1 , SLE_INT , 28, SL_MAX_VERSION, 0, 0, -100 , -1000000, 1000000, STR_NULL, NULL),
SDT_CONDVAR (Patches, yapf.rail_look_ahead_signal_p2 , SLE_INT , 28, SL_MAX_VERSION, 0, 0, 5 , -1000000, 1000000, STR_NULL, NULL),
// penalties for too long or too short station platforms (TODO: NS flag or higher revision?)
- SDT_CONDVAR (Patches, yapf.rail_longer_platform_penalty, SLE_UINT, 28, SL_MAX_VERSION,NS, 0, 10 * YAPF_TILE_LENGTH, 0, 20000, STR_NULL, NULL),
- SDT_CONDVAR (Patches, yapf.rail_shorter_platform_penalty, SLE_UINT, 28, SL_MAX_VERSION,NS, 0, 100 * YAPF_TILE_LENGTH, 0, 20000, STR_NULL, NULL),
+ SDT_CONDVAR (Patches, yapf.rail_longer_platform_penalty, SLE_UINT, 28, SL_MAX_VERSION,NS, 0, 8 * YAPF_TILE_LENGTH, 0, 20000, STR_NULL, NULL),
+ SDT_CONDVAR (Patches, yapf.rail_shorter_platform_penalty, SLE_UINT, 28, SL_MAX_VERSION,NS, 0, 40 * YAPF_TILE_LENGTH, 0, 20000, STR_NULL, NULL),
SDT_END()
};
diff --git a/yapf/yapf_costrail.hpp b/yapf/yapf_costrail.hpp
index 76af3652b..ab708410d 100644
--- a/yapf/yapf_costrail.hpp
+++ b/yapf/yapf_costrail.hpp
@@ -148,10 +148,10 @@ public:
int needed_platform_length = (v->u.rail.cached_total_length + TILE_SIZE - 1) / TILE_SIZE;
if (platform_length > needed_platform_length) {
// apply penalty for longer platform than needed
- cost += Yapf().PfGetSettings().rail_longer_platform_penalty * (platform_length - needed_platform_length);
- } else {
+ cost += Yapf().PfGetSettings().rail_longer_platform_penalty;
+ } else if (needed_platform_length > platform_length) {
// apply penalty for shorter platform than needed
- cost += Yapf().PfGetSettings().rail_shorter_platform_penalty * (needed_platform_length - platform_length);
+ cost += Yapf().PfGetSettings().rail_shorter_platform_penalty;
}
return cost;
}