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;