]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/timetable.h
Handle the case of a train being late
[r2c2.git] / source / libr2c2 / timetable.h
index 17a418ebab2b7c4da358a7a0e5fd78623b67936a..67e5ad4ecb8d8684006bf5a1a31d15eaf6711424 100644 (file)
@@ -44,7 +44,8 @@ public:
                private:
                        void block(unsigned);
                        void time(Msp::Time::RawTime);
-                       void zone(const std::string &, unsigned);
+                       void zone(const std::string &);
+                       void zone_numbered(const std::string &, unsigned);
                };
 
                RowType type;
@@ -75,6 +76,8 @@ private:
        std::list<Row>::iterator current_row;
        bool update_pending;
        bool sync_to_clock;
+       bool late_arrival;
+       std::list<Row>::iterator next_depart;
 
 public:
        Timetable(Train &);
@@ -88,7 +91,10 @@ public:
        const Row &get_row(unsigned) const;
 
        virtual void tick(const Msp::Time::TimeDelta &);
+private:
+       bool passed_row(const Row &, const Msp::Time::TimeDelta &) const;
 
+public:
        void save(std::list<Msp::DataFile::Statement> &) const;
 
 private:
@@ -97,6 +103,7 @@ private:
        void update_route();
        void event(TrainAI &, const Message &);
        void record_time();
+       void clock_discontinuity();
 };
 
 } // namespace R2C2