std::map<unsigned, Train *> trains;
std::set<Vehicle *> vehicles;
Msp::Time::TimeStamp last_tick;
+ unsigned next_turnout_id;
public:
Layout(Catalogue &, Driver * = 0);
void add_track(Track &);
const std::set<Track *> &get_tracks() const { return tracks; }
void remove_track(Track &);
+ unsigned allocate_turnout_id();
void add_block(Block &);
Block &get_block(unsigned) const;
void add_route(Route &);
const std::map<std::string, Route *> &get_routes() const { return routes; }
Route &get_route(const std::string &) const;
+ void update_routes();
void remove_route(Route &);
void add_train(Train &);
void save(const std::string &);
void save_trains(const std::string &);
private:
- void check_links();
- void check_routes();
void sensor_event(unsigned, bool);
};