+ if(blocks.empty())
+ return 0;
+
+ float margin = 0;
+ TrackIter next = blocks.back().next().track_iter();
+ if(next->get_type().is_turnout())
+ margin = 15*layout.get_catalogue().get_scale();
+
+ return max(get_reserved_distance_until(0, false)-margin, 0.0f);