summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r--src/openttd.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp
index e09a8501b..31f175fcb 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -2504,6 +2504,20 @@ bool AfterLoadGame()
}
}
+ /* Reserve all tracks trains are currently on. */
+ if (CheckSavegameVersion(101)) {
+ Vehicle *v;
+ FOR_ALL_VEHICLES(v) {
+ if (v->type == VEH_TRAIN) {
+ if ((v->u.rail.track & TRACK_BIT_WORMHOLE) == TRACK_BIT_WORMHOLE) {
+ TryReserveRailTrack(v->tile, DiagDirToDiagTrack(GetTunnelBridgeDirection(v->tile)));
+ } else if ((v->u.rail.track & TRACK_BIT_MASK) != TRACK_BIT_NONE) {
+ TryReserveRailTrack(v->tile, TrackBitsToTrack(v->u.rail.track));
+ }
+ }
+ }
+ }
+
GamelogPrintDebug(1);
return InitializeWindowsAndCaches();