]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouteplanner.h
Fix a problem with estimated remaining distance in route planner
[r2c2.git] / source / libr2c2 / trainrouteplanner.h
index 5d52f10186d6699e709fb6c2967dcf1b3cdf5aff..47d00b8079d4f3062702ed3a040e086cb6157e77 100644 (file)
@@ -31,6 +31,7 @@ private:
        struct TrainRoutingInfo
        {
                Train *train;
+               float length;
                float speed;
                Block *first_noncritical;
                TrainRouter *router;
@@ -95,6 +96,7 @@ private:
                void advance(float);
                void advance(const Msp::Time::TimeDelta &);
                void advance_track(unsigned);
+               void set_path(unsigned);
                void update_estimate();
                bool is_viable() const;
        };
@@ -102,8 +104,8 @@ private:
        struct RoutingStep
        {
                Msp::Time::TimeDelta time;
-               Msp::Time::TimeDelta penalty;
                Msp::Time::TimeDelta cost_estimate;
+               bool preferred;
                std::vector<TrainRoutingState> trains;
                const RoutingStep *prev;
 
@@ -140,6 +142,7 @@ private:
        std::list<RoutingStep> steps;
        std::list<RoutingStep> queue;
        const RoutingStep *goal;
+       Msp::Time::TimeDelta path_switch_bias;
        Msp::Time::TimeDelta timeout;
        Result result;
        PlanningThread *thread;