From 5b71cb905051d654c150cb0e098cade0cb502105 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Mon, 23 Feb 2015 16:41:02 +0200 Subject: [PATCH] Use cached path length from occupied_tracks TrackType::get_path_length is not only a function call but also loops through all parts to calculate the length. --- source/libr2c2/trainrouteplanner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libr2c2/trainrouteplanner.cpp b/source/libr2c2/trainrouteplanner.cpp index 97f1cf6..ad97cf7 100644 --- a/source/libr2c2/trainrouteplanner.cpp +++ b/source/libr2c2/trainrouteplanner.cpp @@ -363,7 +363,7 @@ TrainRoutePlanner::TrainRoutingState::~TrainRoutingState() Time::TimeDelta TrainRoutePlanner::TrainRoutingState::get_time_to_next_track() const { - return ((track->get_type().get_path_length(path)-offset)/info->speed)*Time::sec+delay; + return ((occupied_tracks->path_length-offset)/info->speed)*Time::sec+delay; } Time::TimeDelta TrainRoutePlanner::TrainRoutingState::get_time_to_pass(Track &trk) const @@ -520,7 +520,7 @@ void TrainRoutePlanner::TrainRoutingState::update_estimate() TrackIter iter = track.reverse(path); remaining_estimate = info->metrics[waypoint]->get_distance_from(*iter.track(), iter.entry()); if(remaining_estimate>=0) - remaining_estimate += track->get_type().get_path_length(path)-offset; + remaining_estimate += occupied_tracks->path_length-offset; } bool TrainRoutePlanner::TrainRoutingState::is_viable() const -- 2.43.0