From 6c825df8f76442acf61f0c2f01620bdbff8a776f Mon Sep 17 00:00:00 2001 From: matthijs Date: Mon, 4 Apr 2005 17:53:39 +0000 Subject: (svn r2147) - Add: [NPF] Give red presignal exit signals a different (higher) penalty, to discourage trains from waiting at presignal exits. --- npf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'npf.c') diff --git a/npf.c b/npf.c index 7f408d1b6..3b50055a5 100644 --- a/npf.c +++ b/npf.c @@ -373,7 +373,13 @@ int32 NPFRailPathCost(AyStar* as, AyStarNode* current, OpenListNode* parent) { if (!NPFGetFlag(current, NPF_FLAG_SEEN_SIGNAL)) { /* Penalize the first signal we * encounter, if it is red */ - cost += _patches.npf_rail_firstred_penalty; + + /* Is this a presignal exit or combo? */ + if ((_map3_hi[tile] & 0x3) == 0x2 || (_map3_hi[tile] & 0x3) == 0x3) + /* Penalise exit and combo signals differently (heavier) */ + cost += _patches.npf_rail_firstred_exit_penalty; + else + cost += _patches.npf_rail_firstred_penalty; } /* Record the state of this signal */ NPFSetFlag(current, NPF_FLAG_LAST_SIGNAL_RED, true); -- cgit v1.2.3-54-g00ecf