float speed;
Block *first_noncritical;
TrainRouter *router;
- const TrackChain *destination;
std::vector<const TrackChain *> waypoints;
std::vector<const TrainRouteMetric *> metrics;
bool has_duration;
TrainState state;
Msp::Time::TimeDelta delay;
Msp::Time::TimeDelta duration;
- int waypoint;
+ unsigned waypoint;
float distance_traveled;
float remaining_estimate;
Msp::Time::TimeDelta wait_time;
void advance(const Msp::Time::TimeDelta &);
void advance_track(unsigned);
void update_estimate();
+ bool is_viable() const;
};
struct RoutingStep
Result plan();
void plan_async();
Result check();
- Result get_result() { return result; }
+ Result get_result() const { return result; }
const std::list<Route *> &get_routes_for(const Train &) const;
const std::list<TrainRouter::SequencePoint> &get_sequence_for(const Train &) const;
private: