]> git.tdb.fi Git - r2c2.git/commitdiff
Allow queueing multiple routes for a train
authorMikko Rasa <tdb@tdb.fi>
Fri, 4 Apr 2014 16:40:10 +0000 (19:40 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 4 Apr 2014 16:40:10 +0000 (19:40 +0300)
source/libr2c2/trainrouter.cpp
source/libr2c2/trainrouter.h

index 93dbedf544c27b029a56dc352f1f9e6e502be4ad..508a7b19651a4835206a0c76f1b2d8e9c90eeaaa 100644 (file)
@@ -80,6 +80,17 @@ bool TrainRouter::set_route(const Route *r)
        return true;
 }
 
+bool TrainRouter::add_route(const Route &r)
+{
+       if(routes.empty())
+               return set_route(&r);
+
+       // TODO Check that it can be reached from previous routes
+       routes.push_back(&r);
+
+       return true;
+}
+
 void TrainRouter::add_wait(Block &block, Train *tr)
 {
        Wait wait;
index c69d28c9389057c3ea37cb14fd5ed3ed5ad0a52a..c1b6977f3734d45b19f615146c899d0ef22dedc0 100644 (file)
@@ -58,6 +58,7 @@ public:
        int get_priority() const { return priority; }
 
        bool set_route(const Route *);
+       bool add_route(const Route &);
        void add_wait(Block &, Train *);
        const Route *get_route() const;