12 #ifndef  FOLLOW_TRACK_HPP 
   13 #define  FOLLOW_TRACK_HPP 
   16 #include "../roadveh.h" 
   17 #include "../station_base.h" 
   19 #include "../tunnelbridge.h" 
   20 #include "../tunnelbridge_map.h" 
   21 #include "../depot_map.h" 
   29 template <TransportType Ttr_type_, 
typename VehicleType, 
bool T90deg_turns_allowed_ = true, 
bool Tmask_reserved_tracks = false>
 
   58     Init(v, railtype_override, pPerf);
 
   64     Init(o, railtype_override, pPerf);
 
   69     assert(!IsRailTT() || (v != NULL && v->type == 
VEH_TRAIN));
 
   88     m_railtypes = railtype_override;
 
   96   inline static bool Allow90degTurns() { 
return T90deg_turns_allowed_; }
 
   97   inline static bool DoTrackMasking() { 
return Tmask_reserved_tracks; }
 
  146       if (IsRoadTT() && !IsTram() && 
TryReverse()) 
return true;
 
  155     if (!Allow90degTurns()) {
 
  165   inline bool MaskReservedTracks()
 
  167     if (!DoTrackMasking()) 
return true;
 
  349       if (!
HasBit(m_railtypes, rail_type)) {
 
  351         m_err = EC_RAIL_TYPE;
 
  428     if (IsRoadTT() && !IsTram()) {
 
  450     int max_speed = INT_MAX; 
 
  455       if (IsRoadTT()) spd *= 2;
 
  456       if (max_speed > spd) max_speed = spd;
 
  461       if (rail_speed > 0) max_speed = 
min(max_speed, rail_speed);
 
  465     if (pmin_speed != NULL) *pmin_speed = min_speed;