Train *train;
float speed;
TrainRouter *router;
- Route *route;
+ std::list<Route *> routes;
+ Track *track_history[3];
std::list<const TrainRoutingState *> waits;
TrainRoutingInfo(Train &);
TrainState state;
Msp::Time::TimeDelta delay;
int waypoint;
- Msp::Time::TimeDelta remaining_estimate;
+ float remaining_estimate;
int blocked_by;
TrainRoutingState(TrainRoutingInfo &);
bool is_occupying(Track &) const;
bool check_arrival();
void advance(float);
+ void advance(const Msp::Time::TimeDelta &);
void advance_track(unsigned);
void update_estimate();
};