diff --git a/openttd-srnw.org b/openttd-srnw.org index 5f44bed..d4f6b8d 100644 --- a/openttd-srnw.org +++ b/openttd-srnw.org @@ -143,3 +143,35 @@ unreachable way-point. A train can only have 255 orders. Once the order list is full no implicit orders can be created. [[file:openttd-srnw/pick-up-train-orders.png][file:openttd-srnw/pick-up-train-orders_small.png]] + +* Self Regulating Network Signalling +The interesting bit happens once the trains passed the INJECT +way-point. They are now inside of the waiting loop and try to get +to the transfer station. This is only possible through one of the +SBahn stations. + +When a train reaches the tunnel entrance to an SBahn station it has +two choices, either continue in the waiting loop or enter the station. + +If a train is already in the waiting bay of that station we want our +train in the waiting loop to continue and try the next station. We put +two-way block signals at the tunnel entrance which turns red when the +waiting bay is occupied by a train. OpenTTD's path finder treats a red +two-way signal as a dead-end[fn::This is only true if +=yapf.rail_firstred_twoway_eol= is =True=. This is the default in +OpenTTD 13.]. It has an infinite penalty and any other +path will be better. Our train continues. This is the first block +signal in the picture below. + +At our second SBahn entrance the waiting bay is free and the block +signal shows green, so a train should enter the waiting bay towards +the station. However, the path finder sees that the path goes through +a station. Going through a station incurs a penalty for that path and +it might so happen that the path continuing in the waiting loop is +considered better, our train would not enter the waiting bay. + +We need to add a penalty to the waiting loop path to make the path +through the station look better. We do this by adding a few reversed +path signals after the choice. + +[[file:openttd-srnw/srnw-signalling.png][file:openttd-srnw/srnw-signalling_small.png]] diff --git a/openttd-srnw/srnw-signalling.png b/openttd-srnw/srnw-signalling.png new file mode 100644 index 0000000..3e545bf Binary files /dev/null and b/openttd-srnw/srnw-signalling.png differ diff --git a/openttd-srnw/srnw-signalling_small.png b/openttd-srnw/srnw-signalling_small.png new file mode 100644 index 0000000..a77033f Binary files /dev/null and b/openttd-srnw/srnw-signalling_small.png differ