]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouteplanner.h
Unify destination and waypoints
[r2c2.git] / source / libr2c2 / trainrouteplanner.h
index fa97920e4d02730469ab1d5a190377891cf63126..b76d663ab5f8caea318ec2bf612bc1d4ab9d83c4 100644 (file)
@@ -32,8 +32,8 @@ private:
        {
                Train *train;
                float speed;
+               Block *first_noncritical;
                TrainRouter *router;
-               const TrackChain *destination;
                std::vector<const TrackChain *> waypoints;
                std::vector<const TrainRouteMetric *> metrics;
                bool has_duration;
@@ -69,14 +69,15 @@ private:
        {
                TrainRoutingInfo *info;
                TrackIter track;
-               unsigned path;
+               unsigned char path;
+               bool critical;
                OccupiedTrack *occupied_tracks;
                float offset;
                float back_offset;
                TrainState state;
                Msp::Time::TimeDelta delay;
                Msp::Time::TimeDelta duration;
-               int waypoint;
+               unsigned waypoint;
                float distance_traveled;
                float remaining_estimate;
                Msp::Time::TimeDelta wait_time;
@@ -98,6 +99,7 @@ private:
        struct RoutingStep
        {
                Msp::Time::TimeDelta time;
+               Msp::Time::TimeDelta penalty;
                Msp::Time::TimeDelta cost_estimate;
                std::vector<TrainRoutingState> trains;
                const RoutingStep *prev;
@@ -144,7 +146,7 @@ public:
        Result plan();
        void plan_async();
        Result check();
-       Result get_result() { return result; }
+       Result get_result() const { return result; }
        const std::list<Route *> &get_routes_for(const Train &) const;
        const std::list<TrainRouter::SequencePoint> &get_sequence_for(const Train &) const;
 private: