create_successor(next, train_index, i, new_steps);
}
create_successor(next, train_index, i, new_steps);
}
if(entry_ep.paths!=train.track->get_type().get_paths() && !train.critical)
{
/* Create a waiting state before the track if there's at least one path
if(entry_ep.paths!=train.track->get_type().get_paths() && !train.critical)
{
/* Create a waiting state before the track if there's at least one path
for(vector<TrainRoutingState>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
if(i->remaining_estimate>=0)
cost_estimate += i->wait_time+i->estimated_wait+((i->distance_traveled+i->remaining_estimate)/i->info->speed)*Time::sec;
for(vector<TrainRoutingState>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
if(i->remaining_estimate>=0)
cost_estimate += i->wait_time+i->estimated_wait+((i->distance_traveled+i->remaining_estimate)/i->info->speed)*Time::sec;