In other words, when fast train are going after slow one, it slows down it's speed to speed of slow train to prevent regular stopping and starting on signals behind slow train. If fast train finds another way, which bypass slow train, it's speeds up (or don't limiting it's speed).
Trains ARE NOT reserving path in second signal block, their path reservation rules are the same as in original game; forward pathfinding in second block and lookup for trains blocking path are done without actual track reservation.
Current version are not fully tested, I've get rid of most bugs for now, but cannot guarantee that completely. Bug reports are welcome.
CAUTION: after applying patch make sure you've changed versions in saveload.cpp and saveload.h. If you play custom build with other patches, most probably they set their own saveload version different from current trunk. You should then increment SAVEGAME_VERSION and set TRAINSPEEDLIMIT_FROM to that incremented value, otherwise you may broke your savegame compatibility.
Code: Select all
Version history:
v0.1:
Initial release.
v0.2:
Reservation bug fix.
v0.3:
Reference to train blocking path are added to save|load procedure.
Some bugfixes.
v0.4.4:
GetTrainBlockingTrack optimized to check previous value.
Fixed reference to path blocking train not being reset.
Added condition to do not limit speed when path blocking train is too slow.
I don't care for good practices of coding/patching, for merging this patch into trunk, for copyrights or their violation (yes, you may copy this piece of faeces and say that you've done this), for thanks, for curses, for your opinion, for anything but bugs, so don't even bother me with this. If you found bug, especially critical one, you're welcome.