+
+ void set_speed(unsigned);
+ void set_reverse(bool);
+ void set_function(unsigned, bool);
+ unsigned get_target_speed() const { return target_speed; }
+ unsigned get_speed() const { return current_speed; }
+ bool get_reverse() const { return reverse; }
+ bool get_function(unsigned) const;
+ unsigned get_functions() const { return functions; }
+
+ void set_route(const Route *);
+ void go_to(const Track &);
+ const Route *get_route() const { return route; }
+ void place(Block &, unsigned);
+ bool is_placed() const { return !cur_blocks.empty(); }
+ bool free_block(Block &);
+ int get_entry_to_block(Block &) const;
+