We are preventing deadlocks in the following ways:
- on full KH, IC, OC or other special cases the trains take an alternative route (route = 1) to prevent deadlocks (f.e. if KH_ST is full and the KIO_LN are occupied by incoming (into KH) trains a train leaving KH should always leave through KH)
- lock the entrance to KH_LN and KH_LN_REV and the exit of the turnout track if more than two trains travel in the opposite direction of KH
- a train that is currently in a station and is blocking an other train is given a "random" destination (this is calculated deterministic) to drive to a new station. This can be disabled on each train by setting the no_forced_direction input
- it is possible to set a random destination for each train if a train currently doesn't have one, by setting random_mode to true
- if the KH_ST is full in one direction the KIO_LN in opposite direction or the exit of the turnout track are locked. What is locked depends on how full KH_LN is and if someone wants to enter from KH_LN (same for REV)