- Locomotive &get_locomotive() const { return loco; }
- unsigned get_target_speed() const { return target_speed; }
- const Route *get_route() const { return route; }
- const std::string &get_status() const { return status; }
- const Point &get_position() const { return pos; }
+ void set_priority(int);
+ void yield_to(const Train &);
+ int get_priority() const { return priority; }
+ Controller &get_controller() const { return *controller; }
+
+ void add_vehicle(const VehicleType &);
+ void remove_vehicle(unsigned);
+ unsigned get_n_vehicles() const;
+ Vehicle &get_vehicle(unsigned);
+ const Vehicle &get_vehicle(unsigned) const;
+
+ void set_control(const std::string &, float);
+ void set_active(bool);
+ void set_function(unsigned, bool);
+ float get_control(const std::string &) const;
+ float get_speed() const;
+ bool is_active() const { return active; }
+ bool get_function(unsigned) const;
+ unsigned get_functions() const { return functions; }
+
+ void set_timetable(Timetable *);
+ Timetable *get_timetable() { return timetable; }
+
+ bool set_route(const Route *);
+ bool go_to(Track &);
+ bool divert(Track &);
+ const Route *get_route() const;