void go_to(const Track &);
const Route *get_route() const { return route; }
void place(Block &, unsigned);
+ void unplace();
bool is_placed() const { return !cur_blocks.empty(); }
bool free_block(Block &);
int get_entry_to_block(Block &) const;
void halt_event(bool);
void block_reserved(const Block &, const Train *);
unsigned reserve_more();
+ float get_reserved_distance_until(const Block *, bool) const;
float get_real_speed(unsigned) const;
unsigned find_speed(float) const;
float get_travel_speed() const;