for(vector<TrainRoutingInfo>::iterator i=routed_trains.begin(); i!=routed_trains.end(); ++i)
start.trains.push_back(TrainRoutingState(*i));
for(vector<TrainRoutingInfo>::iterator i=routed_trains.begin(); i!=routed_trains.end(); ++i)
start.trains.push_back(TrainRoutingState(*i));
void TrainRoutePlanner::add_steps(const RoutingStep &step)
{
list<RoutingStep> new_steps;
step.create_successors(new_steps);
new_steps.sort();
void TrainRoutePlanner::add_steps(const RoutingStep &step)
{
list<RoutingStep> new_steps;
step.create_successors(new_steps);
new_steps.sort();
{
OccupiedTrack *occ = occupied_tracks;
for(unsigned n=occ->n_tracks; n>0; --n, occ=occ->next)
{
OccupiedTrack *occ = occupied_tracks;
for(unsigned n=occ->n_tracks; n>0; --n, occ=occ->next)
int TrainRoutePlanner::RoutingStep::get_occupant(Track &track) const
{
for(unsigned i=0; i<trains.size(); ++i)
int TrainRoutePlanner::RoutingStep::get_occupant(Track &track) const
{
for(unsigned i=0; i<trains.size(); ++i)