]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouteplanner.h
Don't diverge from critical blocks
[r2c2.git] / source / libr2c2 / trainrouteplanner.h
index c4850d46a61c00185f9630b8259885d0582b5f5e..0ed2e118e7bb4e5ef503769f7ef3c765848752e2 100644 (file)
@@ -32,7 +32,12 @@ 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;
                std::list<Route *> routes;
                Track *track_history[2];
                std::list<TrainRouter::SequencePoint> sequence;
@@ -65,7 +70,8 @@ private:
        {
                TrainRoutingInfo *info;
                TrackIter track;
-               unsigned path;
+               unsigned char path;
+               bool critical;
                OccupiedTrack *occupied_tracks;
                float offset;
                float back_offset;
@@ -94,6 +100,7 @@ private:
        struct RoutingStep
        {
                Msp::Time::TimeDelta time;
+               Msp::Time::TimeDelta penalty;
                Msp::Time::TimeDelta cost_estimate;
                std::vector<TrainRoutingState> trains;
                const RoutingStep *prev;