+void TrainProperties::remove_vehicle_clicked()
+{
+ int selected = lst_vehicles->get_selected_index();
+ if(selected<0)
+ return;
+
+ lst_vehicles->remove(selected);
+
+ unsigned n_vehicles = (train ? train->get_n_vehicles()-rem_vehicles.size() : 0);
+ if(static_cast<unsigned>(selected)>=n_vehicles)
+ add_vehicles.erase(add_vehicles.begin()+(selected-n_vehicles));
+ else
+ {
+ for(set<unsigned>::const_iterator i=rem_vehicles.begin(); i!=rem_vehicles.end(); ++i)
+ if(*i<=static_cast<unsigned>(selected))
+ ++selected;
+ rem_vehicles.insert(selected);
+ }
+}
+