]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/timetable.h
Move speed quantization into a separate class
[r2c2.git] / source / libr2c2 / timetable.h
index ea3ff0b45e78aa79fd91bced272ec0498d73cbe6..96275c9bd65df85645beedbe9f3f72e6be95957e 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of R²C²
-Copyright © 2010  Mikkosoft Productions, Mikko Rasa
+Copyright © 2010-2011  Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
@@ -31,12 +31,13 @@ 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);
@@ -46,7 +47,8 @@ public:
        {
                GOTO_SENSOR,
                GOTO_ZONE,
-               TRAVEL,
+               TRAVEL_TO,
+               TRAVEL_PAST,
                WAIT_TIME,
                WAIT_UNTIL,
                WAIT_TRAIN,
@@ -85,6 +87,7 @@ private:
        Block *pending_block;
        Train *pending_train;
        Msp::Time::TimeStamp wait_timeout;
+       bool arrived;
 
 public:
        Timetable(Train &);
@@ -103,8 +106,11 @@ public:
        void save(std::list<Msp::DataFile::Statement> &) 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();
 };