This patch allows trains to reserve 3 (instead of 1) blocks ahead. Based on number of reserved blocks, there are different colors on signals (since v3, yellow is yellow

Each passable color has different maximum speed - green is unlimited, double yellow is 100km/h, yellow is 40km/h (or you can change that in settings).
It helps trains to reduce unnecessary stopping (behind other trains) and allows them to better join the main lines. Also it's more like in real life

v8.1 changes:
- fixed 2x maglev speed in forgotten cases
- fix - trains in tunnels/on bridges can look ahead too
v8 changes:
- fixed inconsistend behavior between reservation and extending, when block signal placed behind station.
- code cleanup
- added setting for watching next signal -> train can accelerate before passing next signal (default off)
- added setting for not slowing down in stations. Old behavior is more real, but slow trains in stations can be annoying and can create huge traffic jams.. It's up to players what they want. (default is slowing down)
v7 changes:
- when train design speed is lower than double yellow speed and yellow speed, it extends only 2 blocks and 1 block
- settings check to forbid double yellow speed value lower than yellow speed value
- speed limits for maglev are multiplied by 2 (idk.. maybe this should be configurable too, but 3 settings in this patch are enough for me...)
- when loading "old" savegame, converting pbs states into new format, no more green/random colors on every pbs after loading trunk/stable saves.
- fixed same overflow bug when yellow pbs disabled
v6.01 changes:
- fixed byte overflow bug causing 255 reservations in some cases
v6 changes:
- lost trains can extend their paths too
- on pbs - block signals interface trains don't slow down anymore. It was pointless and it would force players to use only block signals or only path signals. However keep in mind, that both way PBSs make their surrounding "PBS blocks", which slow down trains entering the block from block signal (they are then forced to make reservation from non-pbs, which leads to entering this as from yellow signal).
v5 changes:
- orders should be fixed. Generally they act as expected, it will need testing though.
- some refactoring a.k.a. let's crash the game where it previously worked fine

v4 changes:
- drawing yellow state(s) part 2 - replaced every pbs sprite with supermop's sprites
v3 changes:
- drawing yellow state(s) part 1 - electric signal variant
- block signals aren't influenced by this patch anymore (except when u make weird intersections combining block and path signals, but it's a feature, not a bug)
- fixed some bugs causing game crash
v2 changes:
- setting for turning it on/off; setting for custom speeds other than 40/100
- checking/fixing savegame compatibily
- it works with both acceleration models
KNOWN BUGS/TODO LIST:
- when using normal signals with reservation, maybe consider it??
- not yet reported bugs
OPEN QUESTIONS:
- is there better place for extending reservation than CheckNextTrainTile function?
- should be there speed limits setting for basic railtypes? [Normal+electric+unknown/monorail/maglev] Or is sufficient regular and 2x maglev?
- does it matter that "ExtendYellowReservation" and "FindExtendPbs" are recursive functios? Should they be while cycles instead?
- should be "ExtendYellowReservation" function merged with "ChooseTrainTrack"? (which will make "ChooseTrainTrack" a bit more complicated)
- has this patch noticable effect on game performance? Only performance problem can in theory appear in CheckNextTrainTile->FindExtendPbs function. However I have no idea, if it can make big enough difference to be noticable.
Here are windows binaries, linux binaries, patch files and grfs in one zip file. Please report bugs. I'm not aware of any bugs, which can crash the game. On the other hand, autosave is never bad idea
