float result = 0;
while(t_iter && has_track(*t_iter))
{
- int path = -1;
- if(t_iter->get_turnout_id() && route)
- path = route->get_turnout(t_iter->get_turnout_id());
- if(path==-1)
- path = t_iter->get_active_path();
-
+ unsigned path = (route ? route->get_path(*t_iter) : t_iter->get_active_path());
result += t_iter->get_type().get_path_length(path);
t_iter = t_iter.next(path);