sigc::signal<void, const std::string &, float> signal_control_changed;
sigc::signal<void, unsigned, bool> signal_function_changed;
sigc::signal<void, const Route *> signal_route_changed;
+ sigc::signal<void, Block &> signal_advanced;
sigc::signal<void> signal_arrived;
sigc::signal<void, const std::string &> signal_status_changed;
std::string name;
int priority;
const Train *yielding_to;
+ const Train *preceding_train;
std::vector<Vehicle *> vehicles;
BlockList blocks;
BlockList::iterator cur_blocks_end;
void set_priority(int);
void yield_to(const Train &);
int get_priority() const { return priority; }
+ const Train *get_preceding_train() const { return preceding_train; }
Controller &get_controller() const { return *controller; }
void add_vehicle(const VehicleType &);