+ std::vector<Elevator*>::iterator idle_it;
+ bool found = false;
+ float distance = INT_MAX;
+ Elevator *e;
+
+ /* Try to send the closest IDLE elevator */
+ for (idle_it=idle_elevators.begin(); idle_it!=idle_elevators.end(); idle_it++)
+ {
+ if ((*idle_it)->distance_from (requested_stop) < distance)
+ {
+ found = true;
+ distance = (*idle_it)->distance_from (requested_stop);
+ e = *idle_it;
+ }
+ }
+
+ if (found)
+ {
+ e->stop_at (requested_stop);
+ return;
+ }
+
+ /* No closest IDLE elevator was found, so choose one randomly */