The train's "current order" is advanced as the pathfinder moves past the target.Valdez wrote: ↑04 Apr 2021 11:34 I've encountered this several times already in the past years, but only got to documenting it now..
Something's wrong with some programmed signals, like the one in the example above. Ideally, they should function like this:
Here is one train that stops at Okayama, yet the signal shows green/clear. I've had this signal program fail in similar way in other places and work okay elsewhere (via program copying and just swapping the stations, so no chance of having different structure).Code: Select all
Check train entry direction > If BACK - apply varying penalty to make trains prioritize different platforms depending on their direction, i.e. no awkward crossing over > ELSE - Check current order and maximum train speed >> If train doesn't stop at the station AND is faster than specified - the signal should attempt a long reserve. BOTH conditions must be true. >> If only one or neither of these conditions apply, nothing should happen - the train is either stopping (therefore it would pointlessly block the crossovers) - or isn't fast enough to warrant a preferrential treatment
While there's a possibility it's a PEBKAC issue, I consider that fairly improbable - had that been the case, none of the signals with this programming would work properly.
What could be the problem? Something broken in the If.. Else If.. structure, or sometimes the game just doesn't evaluate current order condition properly?
In this case, once the pathfinder/reservation has gone past the platform, the "current order" becomes the next item in the order list, and the "last visited station" becomes Okayama.
This is the same as in vanilla and is so that PBS works reasonably when you have a junction or similar on the far side of the target station or waypoint.
The signal is green because a long reservation is being made, because "current order is not Okayama" is true. A long reserve reservation would not normally occur because the train is stopping at the station. Turning on "show path reservations" should show this. Using "last visited station" instead ought to resolve this.
This would seem to me to be a bit too much of a potential footgun. Each slot is intended to be orthogonal to all other slots (except where the player has specifically programmed otherwise).
Having a slot be released because the train happened to go past the release point for a completely different slot would create issues which would be quite difficult to track down in a large network.