]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouteplanner.h
Don't diverge from critical blocks
[r2c2.git] / source / libr2c2 / trainrouteplanner.h
index fa97920e4d02730469ab1d5a190377891cf63126..0ed2e118e7bb4e5ef503769f7ef3c765848752e2 100644 (file)
@@ -32,6 +32,7 @@ private:
        {
                Train *train;
                float speed;
+               Block *first_noncritical;
                TrainRouter *router;
                const TrackChain *destination;
                std::vector<const TrackChain *> waypoints;
@@ -69,7 +70,8 @@ private:
        {
                TrainRoutingInfo *info;
                TrackIter track;
-               unsigned path;
+               unsigned char path;
+               bool critical;
                OccupiedTrack *occupied_tracks;
                float offset;
                float back_offset;
@@ -98,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;