diff --git a/src/pathfinder/follow_track.hpp b/src/pathfinder/follow_track.hpp index 4c0fa7805a..6fdebc3e6d 100644 --- a/src/pathfinder/follow_track.hpp +++ b/src/pathfinder/follow_track.hpp @@ -428,12 +428,17 @@ public: int min_speed = 0; int max_speed = INT_MAX; // no limit - /* for now we handle only on-bridge speed limit */ + /* Check for on-bridge speed limit */ if (!IsWaterTT() && IsBridgeTile(m_old_tile)) { int spd = GetBridgeSpec(GetBridgeType(m_old_tile))->speed; if (IsRoadTT()) spd *= 2; if (max_speed > spd) max_speed = spd; } + /* Check for speed limit imposed by railtype */ + if (IsRailTT()) { + uint16 rail_speed = GetRailTypeInfo(GetRailType(m_old_tile))->max_speed; + if (rail_speed > 0) max_speed = min(max_speed, rail_speed); + } /* if min speed was requested, return it */ if (pmin_speed) *pmin_speed = min_speed;