Train *train;
float speed;
TrainRouter *router;
+ const TrackChain *destination;
+ std::vector<const TrackChain *> waypoints;
+ std::vector<const TrainRouteMetric *> metrics;
+ bool has_duration;
std::list<Route *> routes;
- Track *track_history[3];
+ Track *track_history[2];
std::list<TrainRouter::SequencePoint> sequence;
TrainRoutingInfo(Train &);
float back_offset;
TrainState state;
Msp::Time::TimeDelta delay;
+ Msp::Time::TimeDelta duration;
int waypoint;
float distance_traveled;
float remaining_estimate;
struct RoutingStep
{
Msp::Time::TimeDelta time;
+ Msp::Time::TimeDelta penalty;
Msp::Time::TimeDelta cost_estimate;
std::vector<TrainRoutingState> trains;
const RoutingStep *prev;