X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftimetable.h;h=cbbb49b3d9e3d357fa9e24780f834c752ee69123;hb=1efb7d0debe9e6e9b480eb16381c1b90d0fb7d17;hp=86b4ae2944c8e21ebb207d49e27e54a946d62dbf;hpb=7e27b311e33beda1746eb63e0945633f262427f6;p=r2c2.git diff --git a/source/libr2c2/timetable.h b/source/libr2c2/timetable.h index 86b4ae2..cbbb49b 100644 --- a/source/libr2c2/timetable.h +++ b/source/libr2c2/timetable.h @@ -31,22 +31,26 @@ public: private: void arrive(); void goto_sensor(unsigned); - void goto_sensor(const std::string &); + void goto_sensor_str(const std::string &); void goto_zone(const std::string &); void route(const std::string &); void reverse(); void speed(unsigned); - void travel(const std::string &); + void travel_to(unsigned); + void travel_past(unsigned); void wait(unsigned); void wait_train(unsigned, unsigned); + void wait_until(unsigned, unsigned); }; enum RowType { GOTO_SENSOR, GOTO_ZONE, - TRAVEL, + TRAVEL_TO, + TRAVEL_PAST, WAIT_TIME, + WAIT_UNTIL, WAIT_TRAIN, ARRIVE, SPEED, @@ -83,6 +87,7 @@ private: Block *pending_block; Train *pending_train; Msp::Time::TimeStamp wait_timeout; + bool arrived; public: Timetable(Train &); @@ -101,8 +106,11 @@ public: 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_reserved(Block &, Train *); + void train_advanced(Block &); void train_arrived(); };