X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftimetable.h;h=b2f4fae1e2dd3ddf2cd70385dd8752b55d09817b;hb=374dc443d044f31c925342f339a628c860c08a7e;hp=96275c9bd65df85645beedbe9f3f72e6be95957e;hpb=754ac497179474d0266b55e881a084fef7d5d6a1;p=r2c2.git diff --git a/source/libr2c2/timetable.h b/source/libr2c2/timetable.h index 96275c9..b2f4fae 100644 --- a/source/libr2c2/timetable.h +++ b/source/libr2c2/timetable.h @@ -12,16 +12,16 @@ Distributed under the GPL #include #include #include -#include +#include "block.h" +#include "trainai.h" namespace R2C2 { -class Block; class Track; class Train; class Zone; -class Timetable: public sigc::trackable +class Timetable: public TrainAI, public sigc::trackable { public: class Loader: public Msp::DataFile::ObjectLoader @@ -36,6 +36,7 @@ public: void route(const std::string &); void reverse(); void speed(unsigned); + void tag(const std::string &); void travel_to(unsigned); void travel_past(unsigned); void wait(unsigned); @@ -79,7 +80,6 @@ public: }; private: - Train &train; bool enabled; std::vector rows; unsigned current_row; @@ -102,13 +102,13 @@ public: unsigned get_n_rows() const { return rows.size(); } const Row &get_row(unsigned) const; - void tick(const Msp::Time::TimeStamp &); + void tick(const Msp::Time::TimeStamp &, const Msp::Time::TimeDelta &); void save(std::list &) const; private: Track &get_sensor(unsigned); Track &get_turnout(unsigned); Zone &get_zone(const std::string &); - void sensor_event(unsigned, bool); + void block_state_changed(Block &, Block::State); void block_reserved(Block &, Train *); void train_advanced(Block &); void train_arrived();